Agile vs Waterfall – Which Is The Right Strategy For Mobile App Development?

By | August 4, 2016
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

In a recent IT sector survey, nearly 67% of the respondents revealed that the business methodologies they followed were either ‘leaning towards agile’, or ‘purely agile’. Of course, there is a fairly large section of entrepreneurs who still favour the ‘Waterfall’, or the sequential, production strategy. From the very outset, a mobile app company has to take a stand on whether to follow the waterfall or the agile development method. Over here, we have done a pointwise comparative analysis, to find which strategy comes out on top in the agile vs waterfall study:

  1. Revisions and feedback loops – For professional app developers, client feedback and suggestions are critical. The development method followed has to be such that revisions and changes can be done at any stage after the initial planning and wireframing. This is where agile wins big over the waterfall methodology. The latter is a unidirectional process, with developers having to ‘close’ one stage before moving on to the next – leaving them with no scope to make changes, as and when required. For implementing client suggestions and feedback, agile is certainly the way to go.
  2. The risk factor – Another major disadvantage of the waterfall development method is the lack of visibility of projects to clients. In this method, the overall process of making a mobile app is linear, and there is no concept of a Minimum Viable Product (MVP) – that can be changed later on. Instead, the software is churned out at the final stage, when it is no longer possible to implement changes (one of the key reasons why the last 20% of waterfall projects often take up 80% of the total project time). This, in turn, makes projects much riskier than what is the case with agile projects – in which feedback can be implemented at any stage. The higher visibility brings down the risk factor.
  3. Structured planning – This is a point where the waterfall technology trumps agile development. In-depth planning and upfront framing of visions are key elements of the linear development model. The documentations are also more detailed and extensive than in agile, where there is always room for flexibility at later stages. Although somewhat rigid, the waterfall method can potentially lead to shorter app development cycles too – since all the planning have been done at the beginning itself.

Note: The fact that changes have to be made almost invariably during app development process negates the last-mentioned advantage somewhat.

  1. Projects with not specified goals – There are many instances when a client has an overall idea of the type of iPhone or Android application (s)he wants, but is not entirely sure of all the features it should have and goals it should serve. In such cases, the agile development method is easily the more suitable one. As the development advances, new goals and functionalities can evolve, and they can then be implemented in the app with ease.
  2. Adapting to technology changes – Mobile technology is in a constant state of flux. Good app and game developers need to have the resources and the knowhow to make use of the latest development tools and frameworks. While the static waterfall technology is hardly ideal for this, the agile methodology fits perfectly here. In particular, the ‘agile sprints’ and iterations are extremely useful when app updates are released. If an app is supposed to have frequent updates, the agile development method has to be followed for it. In all, the method is way more responsive to technology changes than the waterfall strategy.
  3. Ease of testing – In the top-down waterfall framework, mobile app testing is done at the very last – just before the app store submission and subsequent release. This makes the task of testers more complicated, particularly if glitches and bugs were present from an early stage of coding. Finding and rectifying the error can be troublesome, and developers might even have to do the entire process all over again (waste of time and manpower resources – not to mention the dissatisfaction of clients). In the agile environment though, testing is done at every stage, and bugs are ironed out. The final testing, hence, becomes a lot simpler and quicker.
  4. Quality of developers – As already mentioned in an earlier point, agile development practices involve less documentation. Android/iOS app developers working on agile projects, hence, have to make up for this with their knowledge about app-making in general, and the project they are working on in particular. New programmers would be better off following the waterfall methodology, enhance their knowledge pools, and then make the switch to agile.

Note: App development teams following agile practices are typically small in size, and are fully dedicated to the project they are working on. In addition they should ideally be working from the same physical location.

  1. Teamwork and collaboration – An agile development environment requires all members to constantly interact and communicate with each other. This, understandably, takes the overall team spirit and productivity levels to an altogether higher level. In addition, those who make apps also have to work in close collaboration with clients. This level of fluid, two-way communication is absent in the waterfall strategy. Here, things are more sandboxed, and the need for interaction is lesser.

Note: To be fair, the waterfall method of developing does have an advantage related to this. Since documentation is a lot more extensive here, the process can handle employee turnover (in case that happens in the middle of a project) a lot more easily. In an agile scenario, if a member leaves midway, that can lead to communication breakdown and inordinate delays as a result.

  1. The importance of iterations – Irrespective of whether it is an iPhone or an Android development project, the importance of iterations can hardly be overemphasized. Apart from allowing developers to implement changes as per client recommendations, it also lets them do a lot of experimentation with their codes (to see the effects on the download time, overall app size, data usage requirements and the like). There are many factors that can lead users to uninstall apps frequently, and the agile reiterations are ideal to check whether a new app indeed has some lingering problems. Iterations are not possible in the waterfall technology, and that puts it at an immediate disadvantage. User-experience, the factor on which the success or failure of a new application hinges, is considered in agile methods. Waterfall does not take that into account.
  2. Initial idea vs final product – In the sequential methodology for making mobile applications, clients and developers have a very clear idea about the final deliverable product from the start. Since everything is documented and closely followed (with hardly any changes), the app in its final form is the same as initially conceptualized. With agile though, evolving ideas of clients are deployed, designs are revised and re-revised, additional functionalities are added on the fly – and the final deliverable can end up looking a lot different from what the app was envisioned as at first.

Note: This, however, is not essentially a point against agile development. Many mobile app developers report that the needs and preferences of clients change during the course of development – which makes changes necessary.

         11. The quality factor – Agile has successive iterations, small, dedicated and highly knowledgeable teams (hopefully) who are completely dedicated, and takes into account feedback from both clients as well as app-users. Not surprisingly, this allows developers to come up with more high-quality software outputs (particularly since the iterations generally divide the overall process in shorter, customizable units). Once again, the traditional waterfall method comes up short in this regard.

12. Launching a basic version of the app – Keeping the intense competition in the field of app development in picture, releasing a basic version of the product (i.e., the MVP) is often very important. The full version, with all the features can be scheduled for later. This is possible when developers are following agile practices to create apps. With waterfall, the final product (app) is obtained only at the last stage, and there is no concept of an ‘intermediate’ or ‘basic’ release. Agile methods can run into trouble in cases of employee turnover or delays due to the constant interactions required – but it promises higher quality, and allows a quicker arrival of apps at the store (time-to-market of a MVP can be very short).

Our analysis makes it fairly clear that agile has many additional advantages over waterfall, for mobile app entrepreneurs. The traditional method is not bad per se, but in the context of app-making, it can be used only when there are zero uncertainties about final goals, and changes are not required in the later stages of development (conditions that are hardly ever fulfilled in the real world). All things considered, the agile strategy is by far the more suitable one for the mobile app industry.

 

 

Hussain Fakhruddin
Follow me

Hussain Fakhruddin

Hussain Fakhruddin is the founder/CEO of Teknowledge mobile apps company. He heads a large team of app developers, and has overseen the creation of nearly 600 applications. Apart from app development, his interests include reading, traveling and online blogging.
Hussain Fakhruddin
Follow me
 

Leave a Reply

Your email address will not be published. Required fields are marked *