One of the first decisions we needed to make at The Masters was: “Which development methodology should we use?”. As I have been working in project management for quite some time, I knew that methodologies are a really big deal.
Most of the software houses and IT companies follow the Agile methodology. Drawing from our company’s experience, I wanted to outline what I see as the pros and cons of Agile in comparison to the more traditional software development methodology.
Types of contract
Agile is an interactive, team-based approach to project management, in which the project is divided into small parts. At The Masters we work in two-weeks sprints. It allows us to often review projects with our clients and control the project at every stage. We follow Agile to ensure that you have full control and insight into your project.
The financial aspect of Agile is one of the most important reasons why many software houses have moved towards Agile and abandoned waterfall approach.
If we take a look at some of the most common ways to approach software development, we can distinguish 3 types of contract:
- Flexible price, fixed scope
- Fixed price, flexible scope
- Fixed price, fixed scope
Each of these approaches have their pros and cons:
1. Fixed scope - at the beginning of the collaboration the specification of the system has to be defined. After that we determine the scope of work, which is based exactly on clients’ requirements. Next, we estimate how long the project is going to take. We put a lot of attention to making estimations. We always find out as much as possible about the project, to make them accurate.
Especially when building large systems, a company needs to bear in mind that things can change in the scope and there could be much more work to be done than previously expected.
What exactly can change? For instance: laws applying to personal data security may change. If you want the users of your app to log in with e.g. Facebook, Twitter or Google, the way to integrate that with external apps can change, and we might have to adjust to that. When the scope is fixed, clients need to realise that the price is flexible. They agree to pay for the exact amount of hours that our developers spent working on the defined scope of work.
2. A fixed price - you tell us what your budget is and we verify whether the it’s possible to develop your app within this price range. If not, we go through the scope and select the most important features of your system that will be sufficient to release the first version of it.
That way, the application in a simpler form will be ready to launch it onto the market. We determine which features are crucial to the first version of the application to gather the first users. This is how your application start making money giving you more resources to further develop it. What is not possible to be done, can be extended later, basing on the essential version of the app.
Keep in mind that systems are usually developed for several months. A lot can change during this time. In the case of a fixed price, the client also pays only for the developers' hours of work, and they write code as long as the budget permits.
3. Fixed price and scope - it’s like you tied your own hands. Technologies are very dynamic and many changes can occur on a regular basis. It’s beyond anyone’s control, which can have influence on the development of your project. It’s something you can’t predict.
Therefore, flexible price or scope is much better because it gives you room to adapt to the dynamic situation.
Medical application applications are a good example. The law regulating the security of patients' personal data can change during the development of your system. Then, we are forced to adapt the entire system to new requirements. We could not have predicted it while signing a contract and planning out the work.
In order not to be forced to pause the work and be able to continue the development, it is better if the price or the scope are flexible. Imagine your investors have increased financing and you want to spend the surplus on the development. With the scope and the price fixed, you will have to alter the contract, thus delaying the execution of the project.
In that case, when the price and the scope are fixed, the work has to be interrupted, the new features have to be estimated, and an annex to the contracts has to be signed. After all, it all takes time, and time is money, right? That's why you always have to keep this in mind - if the price or the scope are flexible, the development process goes smoothly and it’s much easier to adapt it to the changing environment.
Agile = success
Agile allows you to update your plans, make frequent reviews and check if the project is heading towards the right direction.
This methodology is often implemented using Scrum. Little steps, short deadlines with everything under control – this guarantees an efficient workflow. That means planning, executing, monitoring and – most importantly – closing the project. The progress is easier to measure and the client has full insight in it.
Why exactly are scrum and agile so important to us? You only pay for the job that has been done by our developers. This solution gives you full control over the development process. We do our best to make our work meet the clients needs and wants. :)
What about waterfall?
One of the main drawbacks with the Waterfall methodology is the real possibility that the customer may be dissatisfied with the delivered software.
Traditionally, waterfall treats analysis, design, writing code and testing as discrete phases within a software project. A delay in one step of the process may cause the further steps to fail. For instance, when a project starts running out of time and money, not much attention is being put to testing. This leads to good projects being forced to cut testing short and it can have influence on the overall quality of the system. Waterfall doesn’t handle change well, whereas Agile does it well.
In my opinion, only projects with a big reserve of money are best suited to waterfall.
Why do we prefer flexible scope or flexible price? Because it allows us to quickly respond to changes taking place both in technology and in your ideas. This method also reduces the risk of project delays. Thanks to Agile, we know that we always deliver.
From our experience over the last few years, the fixed price & flexible scope as well the flexible price & fixed scope models work well, and we strongly recommend it to our client. I believe, using these methods, you’ll be able to achieve the highest quality outcomes on time.