Some software projects fail, others succeed. Why is this so? Is it possible to pin-point the success criteria for successful software projects? Over the last couple of years I have participated in quite a few “agile” projects, and for the projects falling in to this category I think that I have learned a thing or two. Below is a list of 6 key criteria that I believe is important in order to be successful when doing agile software development:
- Use XP engineering practices
- Start small and design for change
- Know when you’re done
- Team size
I will not dig into the details in this posts as this would cause this post to be horrendously long. I have in fact already blogged about two of these keys in previous posts – Use XP engineering practices and Team size (How many pizzas does your team eat?) – and hopefully I´ll be able to write something sensible about the other 4 keys as well. I do realize that there are probably several other important aspects in terms of doing agile software development (if you read this post feel free to leave a reply on what you believe are the most important aspects), these keys are simply the ones that I think are most important at the time of writing this post. I would not be surprised if at least 2 of these have been replaced, say a couple of months from now. But hey, isn´t that what agile is all about? Reflecting and learning even more as we go?