Why do some people distrust agile software development? Should you distrust agile software development? How can you possible trust people who say that they will “take your money and deliver something” after a month or so? How can you possible trust people who have a rubber bird as part of their continuous integration process? After my recent post on trust in agile software development, Mike Lehr asked me why people distrust agile software development.
Software development success is organization dependent. Which organizations are successful in developing and delivering software? Which projects will be successful? That is a crucial question in an industry with an annual turnover of over 400 billion USD and only a 50% success rate. Is it enough to be agile or is there something else needed?
I was thrilled to read “Agile Principles and Achievement of Success in Software Development: A Quantitative Study in Brazilian Organizations” by Paulo Henrique de Souza Bermejo et al. Why is it so exciting? Because the authors use a novel approach to quantitatively and statistically evaluate what software development organizations do and how that is linked to success.
Continue reading Software Development Success
In Agile projects, when a set of requirements are received from Clients, it may consist of (a mix of) A few needs, objectives, goals and some partial stories (even though it would have come in a structured document). Re-organizing (re-arranging) those into a requirements breakdown structure (RBS) helps ask right questions to client to come out with what they expect to achieve from a Project.
Image above depicts the Fibonacci series, which is used as one of the sizing techniques for User stories.
As a consultant and as an agilist I have a vested interest in trust. Trust might be seen as one of the top two factors for success in software development projects . Most of us have a vague idea of what is needed to create trust. Charles H Green of The Trusted Advisor has come up with “the trust equation“. I first learned about the trust equation in one of Joe Dager‘s excellent podcasts. Continue reading Can you trust agile software development?
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 What is the proper size and time for an Agile Retrospective?
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?
Laurie Williams has presented a “top thirty” list of key agile practices. The list defines what you need to do to be seen as being agile. Continuous integration, short iterations and done criteria are at the top of the list. Continue reading Key Agile Practices You Need
So people keep talking about the Agile – Waterfall dichotomy. About agile and un-agile practices. I decided to have an unscientific look at what Agile isn’t. If there is a true dichotomy between Agile and Waterfall, then things opposite of Agile should be either entirely out of scope for projects and software development or they should be characteristic of Waterfall methods. And since anyone would bother to mention them in the context of Agile, one would assume that this would be because they are distinguishing between Agile and Waterfall. Continue reading Agile is NOT new and not enough