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:

  1. Define requirements
  2. Design (both visual and architecture)
  3. Implementation
  4. QA and testing
  5. Deployment / release
  6. 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.

AgileWaterfall
Feature ChangesChanges are encouraged – and can be accommodated and prioritisedDefined at the start, little flexibility to change these (without adding to the scope and cost)
Client InvolvementClient (often known as the ‘project owner’) needs to be closely involved regularlyClient is most involved at the start and during key milestones
Feedback SpeedFirst feedback is fairly early during development and then regularly then onwardsFeedback at key milestones only. First feedback is often fairly near the end of the development
Testing Done throughout the development, easier to fix when found earlierOften done at the end, can be harder to fix at that stage
Cost / FundingUses a time-based approach – e.g. 10 man-days / weekFixed cost, based on features and requirements s defined at the start. Any changes require quoting and additional cost

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.