Agile V/S Waterfall Project Management for Mobile App Development
Friday April 12, 2019
What I have learnt from more than 10 successful projects at Realmonkey
I am taking care of projects at Realmonkey from last 3 years and successfully delivered more than 10 mobile and web projects. I have experience of managing project on both Agile project management and Waterfall project management. Below I shared my experience in details.
When I founded Realmonkey with my partners, project execution was one of the many responsibilities I took and working on till date. It was very difficult for me to manage IT projects, being a Non-Technology professional.
I accidentally fall into project management as my both partners were highly occupied in their respective departments sales and design. So it was an opportunity for me to learn and get the things done.
This journey starts with mobile app development for an e-commerce company based out of Kuwait in 2016, we developed iOS and Android mobile apps for “ShopU” e-commerce.
Earlier we used to work on waterfall model for project management. In most of the cases, project requirements were clear so we didn’t find any issue working on waterfall model.
In the waterfall model we adopted following steps for project execution.
Waterfall Project Management
Research and requirement gathering
This is the initial phase of project where we discuss project in details with client and collect all information. With all the information at hand, we develop project requirement document and team work according to this document.
In this phase we design the prototype for the product and share it with client for confirmation. We take care UI and UX flows and develop designs with best tools available for design. We use Sketch for creating designs and Invision for sharing it client and team. After all iterations, we freeze designs and process it for development.
We create required functionalities and implement designs as per the UI flow. Our developers make sure client gets best of the product with high standard of coding. We adopt best practices for coding and maintain code on Git.
Once the product is ready, our testers test it for bugs. We use Jira and Asana for bug reporting and management. Within the given timeline we fix all the bugs and offer client a bug free product.
Once the product is live, we start on maintenance and assign a team to maintain it.
Here is my observation on Waterfall project management model.
Advantages of Waterfall Model:
- It is one the easiest model to manage. Because of its nature, each phase has specific deliverable and a review process.
- It works well for smaller size projects where requirements are easily understandable.
- Faster delivery of the project
- Process and results are well documented.
- Easily adaptable method for shifting teams
- This project management methodology is beneficial to manage dependencies.
Limitations of Waterfall model:
- It is not an ideal model for a large size project
- If the requirement is not clear at the beginning, it is a less effective method.
- Very difficult to move back to makes changes in the previous phases.
- The testing process starts once development is over. Hence, it has high chances of bugs to be found later in development where they are expensive to fix.
Agile Project Management
Most of the clients are not sure about the requirements and as the project execute changes in requirements are inevitable. But regular updates and changes in initial requirements increase timeline of product development and some time it becomes difficult to manage it with too many changes.
To avoid such situations, we adopted Agile methodology and chose Scrum model for project management.
Currently we are working on Gleekr and PubHub mobile applications on Scrum model. And both projects are in second phase of development after product launch.
Gleekr is an app to organize activities with your friends. Ask them to vote for their availability to organize activities. There are one to one and group chat features are available in the app. Soon we are developing more features in it like payments for activities, coupons etc. Gleekr is available on iOS and Android both platforms. You can download and enjoy it.
PubHub is an app for users who love to go Pubs and don’t want to wait in long queues at bartenders to serve their drinks. Just order it from your mobile and you will get notifications when your drink is ready to pick-up. Sounds interesting, doesn’t it? PubHub is currently available on iOS, soon we are coming up with Android app. You can download it from here.
For both projects we are working on Agile project management methodology. Both the clients regularly add and update features so it is good to work on Scrum for better project management.
Here is how we are using Scrum for project execution.
Research and requirement gathering
We start with research on product and gather maximum information from clients for requirements. We ask lot of questions and put emphasis on client to provide answers to all questions in details.
This helps us to finalize product requirements. Once the research sprint is done. We move to design sprint.
In the initial stage client always wants to see how the product is going to look, so we create one or two sprints for designs. We create prototypes of product and share it with clients to see how the app is going to look. This helps our clients to visualize product and they can easily update product requirements too.
After design sprint we start development in sprints.
Define user stories and acceptance criteria
We use Jira tool to manage projects. We create user stories for each function and feature of the product and put them in product backlog.
We discussed and define acceptance criteria for each user story.
Then we create sprints as per the Scrum methodology and follow maximum rules of it. Each sprint is of two weeks. In the first week, development team create the defined features and functions and produce builds to testing team. In the second week, testing team test it and list down bugs for development team. Then development team fix those bugs and testing team test it again. Finally, at the end of second week, we produce shippable product to client which they can check and give feedback.
Likewise, we work on sprints and produce final product to client. Normally client comes with lot of update after each sprint, we add them in product backlog and develop user story for them to implement in coming sprints.
As per my experience Agile Project Management is a better way to develop a product where requirements are not fixed.
Here is my observation of Agile Project Management model.
Advantages of the Agile Model:
- It focusses more on client process and require continuous involvement from client.
- Agile teams are more motivated and self-organized so it likely to provide a better result from Waterfall projects.
- Agile software development method assures that quality of the development is maintained
- The process is completely based on the incremental progress. Therefore, the client and team know exactly what is complete and what is not. This reduces risk in the development process.
Limitations of Agile Model:
- It is not useful method for small development projects.
- It requires an expert to take important decisions in the meeting.
- Cost of implementing an agile method is little more compared to other development methodologies.
- The project can easily go off track if the project manager is not clear what outcome he/she wants.
To conclude it, I must say Agile and Waterfall are very different software development methodologies and are good in their respective way.
However, there are certain major differences highlighted below:
Waterfall model is ideal for projects which have defined requirements, and no changes are expected. On the other hand, Agile is best suited where there is a higher chance of frequent requirement changes.
The waterfall is easy to manage, sequential, and rigid method. Agile is very flexible and it possible to make changes in any phase.
In Agile process, requirements can change frequently. However, in a waterfall model, it is defined only once by the business analyst.
In Agile Description of project, details can be altered anytime during the SDLC process which is not possible in Waterfall method. If you like this article, please share it with your friends and colleagues.
Thank you for reading.