At Orange Eclipse we are experts in building web applications specializing in business process management. Depending on the customers project requirements we may use either waterfall, or more iterative agile development methodology. These two methodologies are outlined below.
The waterfall development methodology is a linear step wise approach to software development. In this approach the sequence of events is something like:
In a true waterfall development project, each of these represents a distinct stage of software development, and each stage generally finishes before the next one can begin. Between each phase there is typically a stage gate. For example requirements must be reviewed and approved by the customer before design can begin. For the next phase of development to begin, the design mock ups need to be approved by the customer.
The agile development methodology is an iterative, team-based approach to development. This approach emphasizes the rapid delivery of an application in complete functional components. Rather than creating tasks and schedules, all time is “time-boxed” into phases called “sprints.” Each sprint has a defined duration (usually in weeks) with a running list of deliverables, planned at the start of the sprint. Deliverables are prioritized by business value as determined by the customer. If all planned work for the sprint cannot be completed, work is re-prioritized and the information is used for future sprint planning.
As work is completed, it can be reviewed and evaluated by the project team and customer, through daily builds and end-of-sprint demos. Agile relies on a very high level of customer involvement throughout the project, but especially during these reviews.