Waterfall and agile methodologies theme has become pretty sensational (a short while ago), and we think it is pretty understandable. It was described by many specialists, inspired tons of books, opened more than one certification authority etc. Still, there are some questions and doubts about the choice of a particular approach to the development and management of this process.
No wonder, because even we can not always determine which method to use approximately. Of course, this is a joke, but every joke has its own truth, so we decided to write our vision of the topic. We want to tell the difference between agile and waterfall when it is better to use the first or the second approach.
We hope that this article will help you understand how we work and answer the question “agile vs waterfall for mobile development”.
Waterfall methodology is fairly simple and standard development process management system. Most often it is used on the long-term projects where it’s possible to establish clear terms of delivery and project completion. As well as final demand remained virtually unchanged. This approach can be easily adapted to different needs. For example, such method can be used in the machinery manufacturing, shipbuilding, and even the space industry. But the system easily adapts for software development as well, when it comes to, for example, the introduction of ERP systems, or developing a new version of the popular and large software or operating system.
Read also: Dedicated team model
But what to do if the product specificity involves frequent changes in approaches to the development, use of different (and often trendy) technologies? After all, there are industries that are developing rapidly and new frameworks arise almost every six months. And just for such cases we have come up with a flexible approach to development. And yes, we meant the mobile industry so far.
Speaking about an Agile development methodology, we increasingly understand the use of Scrum. As the most intuitive way of what Agile is. Why? Simple – it’s almost an ideal solution for the situation described above, which can be seen everywhere nowadays. In fact, this method is an analysis and adaptation of internal processes for external requirements. In some kind.
Work on the project goes through some iterations, several teams may participate in the development (eg in the development of different parts of the application or testing), and after the end of each iteration, it’s becoming possible to check up ready solution. What is undoubtedly more convenient for the end user, and many customers as you can watch the process of development and have time to make adjustments. This is great motivation command to perform tasks, and the customer can trust the team.
Benefits and Disadvantages
In summary, we want to highlight pros and cons of Waterfall vs Agile to draw a slightly more visual line between one and the other.
1. Simplicity. Waterfall project management model is simple, understandable and suitable for the majority of companies (of course with a few reservations);
2. High requirements to the product. It has a strict distinction and rules on the technical task / input data as well as the practice is aimed at the implementation of the quality of the product. Quality is a priority above time and cost;
3. Stable. Product requirements defined and virtually unchanged;
4. Low level of entry due to the good adaptability and structuring;
5. It is not always necessary to involve the end user in the development processes.
1. Most of these disadvantages are the result of above-described advantages. For example, the development process using waterfall is usually longer and more expensive than using opposite method;
2. This method is like trying “to bite its own tail” because its high level of declaring all of the necessary requirements, functions, and quality often lead to a large amount of documentation. Moreover, technical documentation which unfortunately can be somewhat incomprehensible to the end user;
3. But before you deal with the previous point, you must first determine the requirements, strictly and meticulously draw up the technical design specification (or its equivalent, if this part is not performed by the customer);
4. This methodology is not flexible and expand the project in substantially the opposite direction is almost not possible;
However, using agile for mobile application development is also worth remembering about its characteristics and patterns of use.
Read also: How to build a remote development team?
1. Variability, interactive and creative development. Using such weekly sprints (or sprints every 2 weeks), you can adjust “the path” of the development of the project, making some changes. Or use a scenario in which connects additional team or developers or quality control specialists. For example, when the project is unexpectedly changing its way or technology – the first team can continue to finish their part, and the second – to work on new features;
2. From the above, it follows that customization is a part of this methodology and laid in the workflow itself but does not violate it;
3. This is probably one of the fastest ways to get the first prototype (or the first working version) of the product for further evaluation and testing;
4. It is possible to communicate with the end user and involve him into the development process;
5. Usage of time boxes that allows inspecting the development process more transparently and production growth as a whole.
1. Agile methodology has serious advantages that have long proven practice. But also this approach is not deprived of drawbacks. For example, the frequent changes in the project can be worth the loss of quality of the final product due to a large number of different technologies and their implementations. It’s quite a serious problem for beginners or companies that try to deal without the project manager;
2. Moreover, such approach may also limit the scalability of the project in the future when the need arises. Or will lead to the project rebuild almost from scratch;
3. In conditions of constant adjustments or changes of technologies, there is a risk not to complete the project. Insufficient representation of what should the product be after delivery or do not understand how to reach desired result often leads an inexperienced team to stagnation.
Is the conclusion obvious? We believe that the agile and waterfall methodologies have a lot of different advantages and some minor disadvantages. Essentially, the same product can be realized as with one or with the other method. Speaking globally, the choice is most often affected and provided by the requirements of the project and input data. And in fact, the choice of methodology depends on the level of qualification of developers, deadlines and quality requirements of the final product.
Can we say what is the best project management methodology for mobile development and how to choose one? Yes, we can, based on the specific project and its requirements, because the choice of a particular method of interaction of developer’s company team and the business depends on the input data and the client’s preferences. And, naturally, the magnitude and the “seriousness” of the developed product. We at BD prefer to combine Waterfall and Agile for the best results.