We came to this conclusion after experimenting with various methods. For example, we used the iterative lifecycle in one of our projects. We used short iteration driven development architecture and software operation algorithm in the early stages of the development.
Despite frequent releases and reports to the customers, the mistake was insufficiently detailed architecture and analysis. Just one programming error in architecture could have disrupted the entire logic of the system.
Reducing the rate of uncertainty and, therefore, reducing the product risks are the primary objectives for us and our customers. The iterative-incremental approach was a solution in our case.
Finding a compromise with the customer and communicating the need for increased terms in the first phase was crucial to our project. Putting more time into development of the architecture and writing software algorithms is not a fiasco. An especially important point using this method is the transparency between our team and the customers. Regular releases, where we show real progress, are a fundamental point for ensuring an effective process and monitoring the progress of the development.
Read more technical details and specific conclusions in the next part of the project life cycle stories.