You have decided to create your own product: you have already chosen a team, issued ideas, and are ready to start development. But first of all, it is important to solve the question of how the process of working on the project will be organized.
Till recent time all projects were conducted according to a single Waterfall methodology, it has been known since 1970, when Winston Walker Royce invented and described it. Later, flexible Scrum and Kanban approaches appeared. All three methodologies are successfully applied in practice at YuSMP Group, and this article is about how we conduct projects not in a canonical form, but in an outsourcing environment where the project manager fully manages the processes.
Waterfall
The methodology was named for the sequence of actions: the process is like a stream of water moving from one stage to another. Another name is the cascade model. An important difference of the approach is that it is not flexible. Development takes place step by step: until one stage is completed, the next one does not begin.
Waterfall Software Development Structure:
- analytics and design;
- development;
- testing;
- publication or release;
- support.
Projects with clear deadlines and budgets (Fix Price projects) are suitable for this model. When a customer is sure of all the requirements and definitely does not want to change something in the development process.
The main drawback of the waterfall model is that it is impossible to make changes to already closed stages. For example, if analytics and design have been done and development has begun, corrections are no longer possible.
It seems that such a sequence cannot have risks, however, they are: by the time of launch, the market situation may change, and the product with the current requirements will become useless.
The WaterFall method is more suitable for the development of internal corporate products, where there is no need to bring an application or other system into a constantly changing business environment.
According to the WaterFall methodology, our only project was carried out to automate the pharmacy network, the case can be viewed here.
Scrum
Scrum is a kind of Agile methodology, which has already been described in our blog.
The methodology is that tasks are divided into time intervals (sprints), which can last from a week to a month. Thus, a large project is decomposed into several small tasks. The team undertakes to complete all tasks during the sprint.
At Ucms Group, we practice weekly sprints, which allows us to quickly receive feedback from customers and adjust to the needs of the client within the next sprint.
Every week we plan tasks for a new sprint, fix features for a preview, and a week later the client can already see the result.
In the classical model, there is a product specialist and a scrum master, in custom development, the client often acts as a proctologist (if necessary, we involve our own product specialist), and the scrum master is a project manager.
For most projects to bring new products to market, we used Scrum, below is a list of some of them:
- service for medical clinics;
- an application for training employees of a chain of home appliance stores;
- internal document management system.
Kanban
Kanban is a continuous release of tasks, starting from getting on the board in the status for completion until it is fully ready.
The main tool is a whiteboard, the project manager runs the priorities of tasks and constraints in columns.
Most often we use Kanban for technical support of existing projects.
Which approach to choose
The experience of working on different projects has shown us when this or that methodology will work at its best:
- If you want to develop a corporate tool, Waterfall is more suitable.
- If you want to bring a new product to market, it's better to use Scrum.
- If you have technical support projects, Kanban will be an excellent option