It is no secret that web projects fail, but it is lesser known that traditional application development approaches are the single biggest factor in this failure. Why? And what straightforward steps can be taken to reduce time to market, increase quality and save money while delivering a product that is exactly what the business requires?
1. Have a clear mission statement, not a set of requirements, from the outset.
By defining a mission statement for the web project, agreed by all stakeholders, the project will have the flexibility to evolve successfully towards its completion. At the outset, project teams should be asking questions such as "What is the end goal of this project?" and "What results are we looking for?", as opposed to "What are the functional requirements of this project?" The end goal is to deliver business value, not deliver against a set of requirements. Rigid requirements make it difficult to react to the changes that inevitably occur as knowledge and environments evolve, and requirements that have been omitted are generally picked up late in the process - by which time they are awkward and costly to implement. By rigidly defining schedule, budget and scope at the outset, the only variable left is quality - and sacrificing quality is never the sensible option.
2. Involve key business stakeholders throughout the whole process.
Development should take a collaborative approach. By sharing ownership of the project, the expectations of the business and the final product will be aligned. Traditionally, the business is only involved in initial meetings and at the testing and acceptance phase. The disconnect between the developers and the business can only lead to applications being developed out of context. An agile methodology is particularly suited for complex projects and is based around objective metrics, stakeholder involvement, feedback, and managed processes.
3. Understand that the best ideas will appear during development.
By involving key business stakeholders in the project, the cross-functional teams are able to brainstorm new ideas and functionality throughout the development process. The process should be interactive and enable the best ideas to be incorporated, be they from internal teams, business stakeholders or external specialist developers.
4. Release working software throughout development and conduct regular user testing.
By adopting a dynamic, iterative approach that involves regular meetings with key stakeholders and end-user testing of working software, the project is constantly kept on course for success.
5. Review the completed project.
When the project has gone live, development teams should schedule a review, with a view to optimisation. Technology moves so fast that new functionality may be available that was not anticipated during the early phases, that would enhance the project yet further.
It is not that traditional development methods are intrinsically ineffective - they can work very well when the outcome of a project can be defined precisely. However, it is often not possible - or desirable - to set these kinds of requirements when developing sophisticated, user-focussed applications. In these instances, a more flexible, iterative approach is needed.