Software effort estimation is an important part of the daily lives of many software professionals. I have joined the #noestimates debate on Twitter because there is a lot to learn from a discussion on estimates. I’m not ready to fully abandon estimates but I am interested in discussing where, when and how to apply them — or not… Continue reading
I’m a strong believer in learning by doing. I also believe that learning will be better when supported by an agile community of practice (CoP). Communities of practice allow self-selected members to develop their “capabilities, build and exchange knowledge”. In my professional life, I am involved in several communities including larger associations such as IEEE and ACM but also more focused communities at work including on Enterprise Architecture, E-health and Agile.
Can you combine traditional and agile estimation? There is nothing magical about “classical” estimation. There are a few basic concepts to keep track of:
- Bottom up versus top down
- Expert estimation versus parametric estimation
- Best – worst – expected case
I think the most common method for traditional estimation is to go top-down using successive estimation which means that when something is to big or uncertain, you break it down into component tasks and estimate them recursively. If you are familiar with Planning Poker you can easily combine it with this approach:
- Start with your user stories + other backlog items then FOR EACH
- Estimate it with PP, if too big or to wide spread it is an Epic. Break it down into smaller stories (this creates your WBS) and GOTO 2
- Now that your item is sufficiently small, think about the worst case and estimate it again
- Now think about the best case, estimate again
- Calculate the weighted average as (best + 4* “normal” + worst) / 6
Not so different from “pure” Planning Poker, is it? There are a few improvements you can do though — instead of using three estimates for each item, you could use the spread of estimates you already have from PP as a basis for your probability distribution.
I often hear the same complaint about Agile Retrospectives: They are not held at the right level in the organization! Or, at least, that is the conclusion that people draw from one fact: Many issues brought up in the Retrospective need resolution at a much higher level in the organization. There is no one in the room who can address or resolve them. Continue reading
Is it possible to do controlled process experiments in software? That was the question asked in the Kanbandev group over at Yahoo groups. We need evidence to support the practices we use in software development. After all we are talking about a serious business with an annual value of about 500 TUSD.
I sort of remembered a very interesting article about one-liner test cases at testzonen.se. I have blogged about it before, but perhaps it is worth repeating myself? The idea is that detailled (manual, scripted) test cases are uninteresting, limit creativity and are expensive to maintain. The solution is to create “one liner” test cases instead. What about test documentation? If testing actions are recorded during execution then the documentation can be created afterwards.
I guess this goes to show that there is no one size fits all in testing. The right tool should be used at the right time to reach the right goal – which of course is to find bugs early rather than late.
Sometimes, people tell me that “Agile is not appropriate” in this or that context. I believe that’s plain wrong. Agile, as seen from the basic principles, is always appropriate. That doesn’t mean that all versions of agile are appropriate in all situations. And it doesn’t mean that you will be sucessful just because you use agile. And saying that you are agile doesn’t mean that you are. Are you agile? Perhaps this is the source of the confusion?
In 2000, I worked on upgrading our laptops and desktops from Windows 95 to Windows 98. The project was completed in 2001. By that time it would have been much better to have moved directly to Windows 2000. That was my first but certainly not my last encounter with corporate inertia. Why do corporations accumulate this kind of inertia? Why don’t they strive to remain agile at all costs? Continue reading