Should the agile development methodology be the ultimate goal of both the client and the supplier? Or, is the waterfall method with a fixed price better? Read our article on the advantages and disadvantages of developing mobile applications using these two methods.
The goal of both every supplier and client is not to get burned by the constantly changing project requirements and subsequent extra work. We all know that correctly pricing an FTFP project is very complicated. At first glance, an agile development methodology may seem like the ideal solution to this situation - when is its use really appropriate?
“Every software product that has its scope defined at the start, will always change. Always. When both parties are inexperienced in software development, sooner or later the mistakes made by both the client and the supplier merge, and the result could be a disaster.”
The waterfall methodology and beginner software studios
Why do virtually all agencies want to take an agile approach? Because in their early days, a large number of them working FTFP contracts were burned and their projects ended in failure. Development using the waterfall method - is very difficult to calculate without previous experience, and as a result, the project can be up to easily twice as expensive. However, this is due to suppliers, who are not able to estimate the volume of work at the beginning. Clients are not very enthusiastic about being requested to pay for extra work at the end 🙂
A typical example is when young programmers start doing their first freelance work after finishing school. they come up with a price, a contract is signed, but then it is discovered that there are a lot of gray zones that have not been specified and it is unclear where they came from. Certainly, there will also be things that should have been thought about in advance and haven’t been… Subsequently, in a waterfall style project, the client and the supplier come into conflict over what was originally specified. We have already addressed this topic in another article Mobile Application Development step by step.
Seasoned software companies are not afraid to create some projects using the waterfall method. They price according to their previous experience and define it as fixed time, fixed price, fixed scope. Thanks to this, a certain amount of work is created for several months, which doesn’t change and at the end the result is handed over.
Of course, during this process, the agency finds things that were not known about at the beginning and cannot be estimated. It is as if you were building a house and had to decide at the outset whether the painting would be placed in the bedroom 7 cm from the door or 10 cm from the window.
Trouble on the horizon
“Anyone on the client’s side who has ever seen a software product, feels that they can comment on the development of mobile applications. But that’s how problems arise. ”
Unfortunately, it is not possible to simplify the situation in this way without being disrespectful to our clients. Clients often do not understand how websites, mobile applications, or (in the extreme case) posters differ as advertising formats. They often take into account only the visual side of things and look at the outcome as if it was a picture. Therefore, if it is necessary to move the button a little higher in the application, they do not realize that it is an intervention in the code, instead they see it as simple as a matter of two mouse clicks…
Why use the agile development methodology?
An agile approach is much safer - for both parties. Agile project management is about iterations, 14-day sprints, during which the team is fully occupied working for the client and paid for this time. At the end of the sprint, the iteration is always evaluated and another is started.
However, it takes participation from the client’s side, who needs to be included in the process by the agency, so that the client can begin to understand the operation of the application and the development process through regular development meetings .
Thanks to this, the client then begins to see the benefits. For example, when you find out during development that it would be better for the users of the application to modify some functions, leave out some and add others.If such a thing happened in a project priced with the waterfall method, it would eventuate in huge sums owing for the extra work, exceeding the agreed upon price. This way, it is not a problem to focus on what is important for now and what needs to be adjusted in the next sprint.
So why don’t we use agile development more?
Many may fear that the cost of developing a mobile application using agile development, will take away their control and the result will be much more expensive. This is not true either.
You can develop agile with a fixed budget. But then it is necessary to prioritize the most important things and fine-tune the less important ones gradually.
Agile development guarantees a successful achievement of the goal
However, there is another advantage of agile development. A hypothetical example (unfortunately in practice this happens all the time) - A client and an agency agree upon an FTFP project. The agency works on developing it for 4 months, but the client does not like the result. This means lost time and money for both parties. Statistically, only 13% of FTFP projects will reach a successful target. This is not the case with agile development.From the very beginning, the client has full control over the development of the project.
“The main tenant of agile development is ‘people over processes’. You talk with your client about building a functional team, focused on the end user and the usability of the product. If you agree that the team you have assembled can find the best way towards a functional product that solves the problem of the end user, you’ve done it. You have won. ”
Even agile development also has its downfalls
Just as young agencies end up losing out when working with the waterfall method, we are not afraid to admit that we, on the contrary, did not know how to work with agile at the beginning. When we started developing mobile applications, we provided our capacities for a certain amount of time, which is the typical agile sprint. Without a precisely defined contract, however, it sometimes happened that the client asked us to do things differently, outside the pre-defined timing. We did what was asked, going above and beyond, which actually resulted in the project not paying off financially.
Agile development is therefore a good choice when both parties are experienced and have maximum confidence in each other(the client respects application development as a process, while the company does everything they can no matter how much time it takes).
How about a universal solution?
Frankly, it doesn’t exist. Although we are big fans of agile development, if the client cannot be part of the development process, such an approach does not make sense.
It is interesting that, for example, in America, most developers work using the agile method. There they have confirmed that the waterfall method does not work, so they immediately rush to agile development in the style of 3-4 months of cooperation - and if everything works well, they continue further. However, it often happens that after a given period of time, the client says goodbye to the supplier and someone else takes over the project.
At SYNETECH, we also recommend starting work with MVP to show the client our pace and abilities, then we can move to a model where we provide the client with a dedicated team for a certain period of time and the application can be completed.
P.S. If you want to find out more about agile development or the waterfall method, take a look at the ASWA website, which we co-founded and thanks to which, the culture of software in the Czech Republic will hopefully improve for all of us.
Are you interested in developing a mobile application or do you just want to ask us anything?