Michael Nichols's profile

FBombMedia Development Methodology Blog Post

Agile vs. Waterfall: A Look at Different Mobile Software Development Methodologies
 
When it comes to developing mobile software, there isn’t a one-size-fits-all developmental process that will fit every single project. Different types of mobile apps can have a wild variety of features and requirements that will influence the organization and direction of the workflow it takes to create them.
 
However, there are two major methodologies that typically dictate the direction in which an app is developed; waterfall and agile. Both of these approaches have their advantages and disadvantages, and are usually chosen based off the nature of work involved and the type of client who’s requesting it.
 
Here’s an in-depth look at the two different development methods:
 
Waterfall
Waterfall is a linear method of development that is done by planning every single facet of the app in advance, then following a strict set of guidelines in a sequential order as it’s created from the ground up. During this time, the client has no ability to change the scope or suggest new features for the product.
 
The app isn’t completed until every line of code has been finalized. If production of the app stops 3/4ths of the way through, the result could be a non-functioning block of code.
 
The advantage of using this methodology to develop mobile applications lies in the strictness of the scope and forethought in planning. If all elements of the application have been considered, and the guidelines are adhered to, it allows you to create an accurate estimate of the cost and timeframe of the project. This, in turn, allows developers to create detailed financial forecasts for their businesses, and lets them give their clients solid numbers in terms of billing and completion dates.
 
However, the sequential nature of this approach means that there is no going back to change or enhance a previous step without eliminating all of the work that came after it. For instance, when developing an app using the waterfall method, if step A through P have been completed, but the client wants to change step F, then all steps between steps F and P have to be changed, which in turn alters the initial cost and time frame estimate. Additionally, steps A through E might have to be altered to accommodate the new step F, which means the entire project may have to be restarted.
 
This also means that there is an extremely heavy dependence on accurate initial requirements for a project. Essentially, the initial scope is set in stone, and cannot be changed. If a requirement was missed or omitted, the entire project must be reassessed and planned from the beginning.
 
For example, let’s say a client wants to create a skateboarding app that would inform its users of all the best skateboarding parks in the area. If, halfway through the project, the client contacts the developer and explains that he forgot to tell them that he wanted the app to be GPS-capable so it could alert its users of nearby skate parks, it can’t just be added in on the fly. The scope of the entire project has to be completely changed, and new requirements have to be drawn up.
 
Agile
The agile method of development starts by creating a minimum viable product (or MVP) and then slowly fleshing it out by adding on additional features, modules, and graphical components until the app is complete.
While agile development can be a little more unpredictable, you start out with a working app, however rudimentary it may be, and then continue to add to it until it’s a fully fleshed out program. This means the the app can be launched quickly and any unfinished features can be added along the way.
 
The main advantage of using this development methodology is its flexibility. Take the previous example of the client with the skateboarding app. If midway through development, the client wanted to add in a feature that would alert users to local skateboard shops, agile development would allow that aspect of the app to be created without scrapping any work or starting from scratch.
 
Another advantage of using agile development is that, each time a feature, module, or update it completed, it is tested for bugs and stability issues. This thorough testing can result in a much more stable product at the end of the development cycle. The client is also closely involved with every aspect of the app’s development, and gives continuous feedback. These feedback loops make it easier for the developers to scrap or modify a feature before having to wait until the entire project is completed, which saves both the client and the developers time and money.
 
Additionally, agile development makes it much easier to push out updates and new features after the app has been released to the general public.
 
Why we use agile development
At FBombMedia, we favor the agile development methodology because it affords our clients the opportunity to switch gears, pivot, or change their mind entirely on what they want the app to look like or accomplish.
 
The mobile market changes very quickly, and a developer needs to be able to stay on their toes if they want to make sure their client’s app can competently compete with similar apps in the marketplace.
 
For instance, let’s go back to the skateboard app analogy. Imagine that, during the skateboard app’s development, an identical app gets published on the app store first. Not wanting to compete with a duplicate app, the client decides to pivot their idea and instead change their app to focus on user-generated ratings and ranking of local skate parks. If the client’s app was being developed using the waterfall methodology, the entire project would have to be rethought and changed. If the app was being developed using the agile methodology, the relevant and useful modules of code could be kept in tact as the priorities and function of the app are shift, decreasing the delay to the final release date.
 
Contact FBombMedia today
We’re always happy to hear from people and small businesses who have new, exciting ideas for useful, creative mobile apps. We can discuss your vision, talk about branding and marketing, and discuss how your app can make you and your business money.
 
Even if you’re not ready for development, we can give you some helpful ideas to point you in the right direction, and give you a quote so you have an idea about what you can be expecting in terms of cost.
 
Contact us today!
FBombMedia Development Methodology Blog Post
Published:

Owner

FBombMedia Development Methodology Blog Post

This blog was written to help explain the difference between agile and waterfall development methodologies, and to urge readers to contact FBombM Read More

Published:

Creative Fields