prev next

Selecting the development approach

The right development approach for your project depends entirely on the product the project is going to create. The preferences of the team, project manager, organization, and customer have nothing to do with the choice of development approach.

So, do you have to adapt to the environment to understand what the final output should be, or can you predict it? More importantly, can you use an adaptive development approach at all?

In adaptive projects, we must focus on subsets of the product and specify, design, and build them without the rest. It must be done without the rest because if you design everything, then your choices for the future will be limited and you won’t be able to adapt. Finally, the output has to be in increments that people can actually use, because that’s the only way we can collect reliable feedback.

Now, think of a construction project. Can you specify, design, and build subsets of it without the rest? No. For example, you can’t design a foundation without designing all the other elements, because their design determines their load, which is your input for designing the foundation. Also, what do you want to discover about a building that you can’t predict?

On the other hand, if you’re going to build a new piece of software for the public and rely on prediction, your chances of success would be extremely low, because we simply can’t know how people will react to various products without carefully testing them in an adaptive environment.

Not every “IT project” needs to be adaptive. For example, if you’re going to upgrade a data center, there’s no human perception involved and it’s best to have a predictive project. Also, if you’re going to develop a software application for hospital equipment, aeroplanes, or the next rover that will be sent to Mars, there’s no room for the trial and error that forms the backbone of adaptive methods, and so you must work with a completely predictive method.

Remember that what we do in adaptive projects is use the feedback to discover what the best path is for the next iteration of the project. Using feedback to adjust what was done before is not adaptive development. Moreover, the adaptation we talk about here is within the boundaries of a single project/product. If you run one project, learn from it, and use that to run the next project better, that would be a form of adaptation, but not the adaptive development approach for your second project.

Next: Project life cycle