Many large software development companies still employ a methodology
similar to what is known in the industry as the "Waterfall"
lifecycle. This methodology requires agreement upon a very complete
specification followed by an equally complete design before development
is started.
This sounds like a good method, but in practice often results
with a customer getting what they asked for but not what they wanted
at the end of the project. To avoid this pitfall we use a more flexible,
iterative approach using a less detailed initial design and allowing
more change during the development.
Our approach is loosely based on MSF (Microsoft Solution Framework)
and RUP (Rational Unified Process) but involves more client
contact during the development phase and a slightly less rigid
adherence to design documents. This approach acknowledges the
fact that in software development - things are almost never
perfect first time - and allows us to modify the design to incorporate
improvements according to customer need.