Most companies learn how to execute a project correctly after finishing it.
The biggest risk in software development are not the technical risks and resources, it's knowing what to build. Most projects begin with a set of requirements that was gathered from the perspective of knowing about the problem, not from having envisioned the correct solution. As a result, there is a stream of continuous changes to the project throughout its implementation. Often the project goes over the allocated budget and scope creep is introduced, but even if these factors are controlled there is still a substantial amount of wasted effort in the project or it is not done to the stakeholders' satisfaction.
The traditional way of dealing with these risks is to use agile development. Agile development teaches its practitioners to stay flexible, not to overcommit, embrace iterations and assume that not having the right starting point for a project is acceptable.
At Dartamon we have recognized the benefits of agile development, however its drawbacks are much greater. Instead we have created our own version of a unified process for software development that allows for more stable development. We work from the solution backwards, encouraging our clients to think in the world where the solution already exists and envision its impact on the surrounding system. Our software process is called the Impute process, because it involves first envisioning the final impact and then working out the final implementation details.
The process lifecycle is as follows:
- Gathering requirements
- Envisioning
- Prototyping
- Construction
- Testing
- Implementation
The key step that differs from other unified development cycles is the envisioning and prototyping stage. We strongly believe in having capable prototypes that will simulate the experience of the final product. If the client has difficulty working backwards from an envisioned solution, instead the agile methodology can be applied to the iterative prototyping process instead of the entire project. The benefits and impact of this approach are as follows:
- Drastically lower budgets - the exploration and envisioning happens with limited resources instead of project-wide iteration
- Stable project forecasting and project management - the execution of the project is much smoother due to the greater stability of the process and fewer changed requirements
- Feature stability and better product launches - the stability of features to be implemented in the product allows other functional teams such as sales and marketing to properly prepare for the launch of the product with maximum impact
To learn more about our Impute process, please contact us.