App Development – Mobile Apps and Web-Based
If you’d like to have a mobile app or web-based system, the most important part of that is getting it developed. The development includes working out the functionality, implementing that functionality, testing it and releasing so it is available to use. Historically, the most common approach was a ‘waterfall’ approach, however in more recent times an approach using ‘agile’ methodology is often preferred.
What is Agile Methodology?
Agile methodology is an iterative approach to development, that uses ‘sprints’ – typically 1 or 2 weeks long. During each sprint a number of work items are worked on, each of which is prioritised. Once a sprint is complete, the customer is able to feedback. This is then used to plan the next sprint – reprioritising, adjusting or creating new work items as required. The agile approach is often implemented using what is known as SCRUM.
What is Waterfall?
The waterfall approach to development is a more traditional sequential approach. As the waterfall name suggests, it breaks the project into a number of phases. It is not possible to go to the next until the previous has been completed. These phases are typically:
- Define requirements
- Design (both visual and architecture)
- QA and testing
- Deployment / release
- Supports and maintenance
Agile vs Waterfall for App Development
Agile and waterfall are quite contrasting approaches, with some significant differences. Each approach has a number of advantages and disadvantages.
Which Approach is Best for App Development?
For app development (including both mobile apps and web-based software), the best approach depends on the size of the project. For very small project with fixed requirements the waterfall approach can work best. However for the majority of projects, the agile approach works better. Overall the agile approach would prove to be lower cost than waterfall and deliver a better quality product faster. Agile has a key advantage in that the detail of requirements are not needed at the start – these can be discovered and refined as the project progresses.
We use agile for the majority of our developments. The exception is for very small developments with few requirements, where we use a waterfall approach. Even for developments using the agile approach, we do however provide a top level ballpark estimate (based on what we know) to help with overall cost / budgeting.