If you have never heard of the terms Waterfall or Agile, I suggest you keep on reading.
When building a startup, you will have to bring your idea to life. First, you will need to validate your business idea, then you will have to build a team that will help you with the development of your MVP. If you haven’t validated your idea yet, I got you covered, just visit this article.
There are two main methodologies for managing your project and your team: Waterfall and Agile. So, now you know that they are just fancy names of project management methodologies.
It is absolutely key to know which methodology suits you best, depending on you.
The reason this methodology is called waterfall is because there is only one way down. Waterfall methodology requires you and your team to follow these steps in this specific order:
This is the book of specifications that describes your product. In waterfall methodology, there’s no room for doubt so everything must be specified before your developer actually start coding. You will have to think of all the possible scenarios and use cases around the solution that you plan on providing.
Requirements have to be as detailed as possible.
Depending on the complexity of the project, this task might need to be handled by a CTO or a senior developer. He will indeed work on the architecture of the software and the prerequisite. This can involve:
- Choice of operating system
- Choice of language
- Choice of framework
- Choice of database
During this phase, he will also have to design the database structure, the different views of the software that will enable interaction with the different types of users.
If you don’t have a CTO yet, make sure to checkout this article.
This is the coding part where the developer will just implement what has been previously designed. If the developer and the architect are different people, the developer may ask the architect for clarification.
This phase is about testing and validating the implementation. It is a good idea to prepare a spreadsheet that describes the possible use cases and behaviours of your software. Basically, you will be looking for bugs here, and report them to the developer.
Between each iteration, you will have to re play your tests all over again in order to ensure that there is no regression.
After the testing and verification phase, your software is ready for production. It is very likely that at this stage, most bugs are fixed, but there will always be hidden bugs that you may not have seen during the your tests. This is why you have to ensure that someone in your team can take care of the maintenance.
Who is it for?
Waterfall methodology is best for highly organized people. It is also suitable for people who have very clear ideas in mind right from the beginning.
Agile methodology is the opposite of the Waterfall methodology because it has a circular process that are composed of the following phases:
It enables you to see progress of the software as you go and also allows you to tweak and change your ideas along the way.
This is about defining the features that have to be present in the first or next version of your software. It is usually a good idea to give a higher priority to features that bring huge added value to your solution. But it can also include bugs that need to be fixed depending on their criticality.
Each feature that is planned will have to be properly designed so that it does not break the compatibility with what was deployed in previous iterations.
The design process of the first iteration is usually longer because major choices have to be made before the developer can start coding.
This phase is about developing the features.
A testing environment is necessary here, because this is where the latest work of the developer will be tested and validated.
When the new features are tested and validated, the code is deployed to the production environment, then you can go back to phase 1 again in order to add more features and values to your product.
Who is it for?
Agile methodology is best for people who have an idea in mind but don’t know exactly how to fully shape it until the software is being used by real people. If you are the kind of person who changes his minds quite often, then Agile methodology suits you more.
Both methodologies have their pros and cons but if you are starting out with just an idea in mind, I would recommend the Agile way.
Mainly because it’s easier and faster to get started, it also requires less effort when writing the specifications.
It also enables you to see progress faster, which is a huge boost when it comes to building your momentum. You can start communicating on your solution sooner and get some hype from your potential users.
The greatest pitfall I see is when entrepreneurs use the Agile methodology is that they do not manage their costs well enough. Even though the Agile principles ask you to embrace changes, this comes with a cost. This is why it is very important to define your goals and know when your goals have been reached.
It is also a good idea to take the time to analyze the feedbacks and build a strategy that makes your next iteration more valuable.