Agile or Waterfall: How to Choose a Development Methodology

Agile or Waterfall: How to Choose a Development Methodology

If developed without a methodology, a product may not work, and resources will be wasted. In this article, we’ll explain why OrbitSoft uses Agile and Waterfall methodologies.

What is a Methodology

When we say methodology, we mean a work planning tool for a development team. Two popular methodologies are Agile and Waterfall. There are others, but they are less often used, so we won’t discuss them in this article.

Waterfall is project management methodology that involves a sequential transition, from one stage to another, without skipping or returning to previous stages.

Waterfall does not imply active participation of a customer (making changes to the work) during the process of development.

Agile is a system of ideas and principles of flexible project management. The key principle is development in short iterations. The project is divided into several functions, with each function being developed in parallel.

Agile allows you to adjust requirements and test hypotheses. This reduces the risk of ending up with an unusable product at the end of the process.

Methodology Selection Criteria

Customers who outsource development don’t always have a preference in methodologies. In this case, we consult with the client and ascertain the needs of their business. We choose a methodology based on the following criteria:

Criterion 1: Are clear technical tasks defined? The technical tasks are needed so that the developers understand precisely what kind of product the business wants to realize. An architect, designer, or analyst asks the customer what tasks the product should handle, and then describes the functions in the form of these requirements. Next, the time frames and budget are calculated, and the project is sent to the customer for approval

Waterfall requires an exact technical task. The customer formulates the task just once, describes the requirements in detail, and sets deadlines. There’s no need for them to get further involved in the process.

An example of detailed terms of reference for product development

Agile allows you to get started on a project with just a rough understanding of the finished product. But with each iteration, the customer evaluates the results.

Instead of a technical assignment, Agile uses a User Story: the customer’s expectations and preferences about how the product should work.

To understand the degree of uncertainty in the requirements, we ask the customer the following questions:

  • How would you describe the project? As a startup, or a ready-made system?
  • What functions do we need to create?
  • Are there documented business requirements?
  • Is it possible that the requirements may change?
  • Will feature improvements be needed?
Project DescriptionExample of a technical assignmentWhich methodology to use
Fintech Start-upDevelop an application for different types of platforms for transferinbg money to foreign partnersAgile
Functioning system, banking applicationConnect an additional payment gateway for receiving payment via mobile phoneWaterfall

Criterion 2: The importance of timing, and the required level of quality. When choosing a methodology, you need to understand which is more important to the customer right now: launching the product by a specific date? Or qualitatively finalizing the functions (without a strict time limit)?

Waterfall helps a team create a complete product, as well as adhere to deadlines, as long as there are few development functions, and they are detailed. If the product is complex, and the implementation takes a long time, there is a risk that the project could become outdated and irrelevant at the end of the process.

Agile allows you to launch a project with a short time frame, but with truncated features. It’s assumed that the refinement of functions will occur in the process of use. The methodology forces you to prioritize which functions are more important than others, and which can be developed later.

The developers and the customer prioritize in the backlog, an archive of tasks. The priority of the task can be raised or lowered, or the task can be put in «ready» status, or deleted.

To understand which more important, timing or quality, we ask the following questions:

Do you need to develop the product by a specific time?

  • What exactly should work by a specific deadline?
  • Without which functions is it impossible to start the project?
  • Which features can we sacrifice for quick launch?
  • What is a completely finished product for you?
Project descriptionExample of ratio of timing and qualityWhich methodology to use
Application for ordering cleaningIt’s important that, after a month, customers can order cleaning. The function of choosing a cleaner can be added later.Agile
Flower shop appThe function of placing an order by phones of florists by March 8Waterfall

Criterion 3: Customer development budget. The budget includes the cost of services of specialists and development tools, i.e., renting servers, clouds, purchasing licenses, paying for consulting, etc.

Waterfall can be more cost-effective for the customer than Agile. Usually, tasks are well described and understandable. A specialist won’t need to frequently switch between different tasks, making changes in the process. Initially, it’s clear what kind of specialists will be required to complete the tasks at hand.

Agile is more demanding on the customer’s budget than Waterfall. Developers must not only be able to program, but also follow the rules of the system, participate in meetings, and conduct retrospectives. As product requirements can change, there’s a chance that the customer may have to hire new specialists during the development process.

This is what a Scrum board with project tasks looks like. Specialists should be able to use this tool.

To calculate a budget estimate, we ask the following questions:

  • Will your specialists participate in development?
  • Do your specialists know how to work in Agile?
  • Are you ready to hire specialists during the development process?
  • Are you ready to describe the product in detail?

The choice of methodology depends on the requirements that the business and users have for the future product. For some projects, Agile is appropriate. For others, Waterfall.

CriteriaAgileWaterfall
ProjectFor startups and products with a high degree of uncertaintyFor small projects with a low degree of uncertainty
Functional requirementsNo need to describe in detailDetailed terms of reference required
Product testingSeparate, ready-made features are tested every springAfter completion of development, the product is tested comprehensively
DocumentationUpon completion of the project, during the development process, instead of documenting, Scrum, and Kanban boards, are usedDocumentation at the design stage
TeamNeed a high-level, cross-functional teamMid-level developers
ReleaseViable tools are released after each springThe product is fully released after all functions have been implemented

Whatever your needs, we can help!

Tell us what problems you’re facing with your business. We look forward to hearing from you.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.