It is no secret thatweb projectsfail, but it is lesser
known that traditionalapplication developmentapproaches 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.