What is Agile and Why Do Development Companies Use It?

Introduction

With over ten years of experience in software development, ESK Solution has identified agile as the most productive form of project execution. We combine several agile approaches, such as Kanban and SCRUM, and select the most suitable one for each specific client.

Let's explore why we advise many of our clients to abandon the common waterfall approach and turn their attention to agile development methodologies.

What is the difference between agile and waterfall?
What is the waterfall methodology?

The waterfall methodology involves careful planning and sequential definition of major phases before development begins. It is best suited for projects with a clear execution plan, extensive project documentation, and a well-detailed roadmap. Although the waterfall model looks great on paper, it has one major drawback—rigidity: after planning is complete, situational and minor changes to requirements become a difficult, almost impossible task. Conversely, every change entails re-planning the entire project, including all phases.

What are the advantages of waterfall?

  • The full scope of the project is known from the start and cannot be changed during development.
  • The project includes detailed documentation that clearly describes each development phase.
  • The start and end dates of development are fixed. The methodology does not allow schedule changes.
  • Almost complete absence of client involvement. This method is particularly suitable for industries where clients do not want to dive into the development process but prefer to receive a finished product without their participation.

What are the disadvantages of waterfall?

  • Requirements must be clearly defined from the very beginning, as it is impossible to make changes after the planning phase is complete.
  • Any failures, such as incorrect documentation or development errors, will delay the project because the phase will have to start over.
  • The waterfall methodology does not involve any client participation except for exchanging documentation between the development team and the product owner.
  • Project testing is performed only at the end of the entire project, not periodically throughout the timeline.
  • The sequential approach is not suitable for a large-scale project when the delivery deadlines are too far away. Any changes in business strategy, inevitable in the long term, contradict the very essence of the waterfall method—the inability to go back to a previous step and make corresponding changes.

What exactly is the agile methodology?

Agile, on the contrary, is suitable for projects with a dynamic structure due to its flexibility. Agile is oriented toward adaptive, concurrent workflows and breaks down the workload into iterative phases called sprints. Sprints are well-suited for products that require regular review during the development cycle.

At the beginning of each sprint, the requirements list is prioritized based on client feedback. At the end of the sprint, developers and the client review and evaluate the work done, drawing key takeaways for future sprints. The various agile methodologies we use:

  • Kanban – a variant of the agile methodology named after the Kanban board, a tool used to split the backlog into stages. Each task is written on a piece of paper and placed in columns with statuses from "To Do" to "Done" as the task progresses. This helps the production team coordinate, distribute, and balance development efforts. Today, this process is, of course, fully online.
  • SCRUM – another agile methodology. It aims to quickly complete a large amount of work. The SCRUM backlog is broken down into one- or two-week stages called sprints. The specific task of each sprint is defined at its start. After completing a sprint, its success is analyzed and evaluated. A Burnout Chart is used to track progress and distribute the backlog among team members. The SCRUM Master plays an important role in helping other team members control the entire process: he sets tasks for them and conducts stand-ups. However, the SCRUM Master never takes full control of the project.

What are the advantages of agile?

  • Faster software development lifecycle. True strength comes from rapid learning and discovery.
  • The workload in a sprint is completely clear.
  • Focus is on continuous communication with the client, ensuring satisfaction.
  • Upon delivery, the result will better match expectations – even if requirements changed during the process.
  • Flexibility in embracing changes – any aspect of the project can be changed at any time.
  • Stimulates engagement of each team member and allows teams to manage projects effectively.
  • Team members have the opportunity to observe and test throughout the project.

What are the disadvantages of agile?

  • Agile requires a high degree of client involvement, which not every client is ready to provide.
  • A large number of new revisions followed by repeated iterations can lead to budget and schedule reductions.
  • Agile assumes that each project team member has a sense of personal responsibility; without it, the principle of self-management weakens.

Why do we choose agile development?

As mentioned above, ESK Solution chooses agile methodologies for most of its development lifecycles. This choice is based on years of experience working with various types of clients – from small startups to large enterprises and government agencies. In the process of collaborating with ESK Solution's business analysts and programmers, our clients often expand the initial project requirements, which completely contradicts the essence of the waterfall methodology. To better illustrate this, we'll share the story of one of our projects where agile and waterfall methodologies collided.

In the digital world, even the simplest projects often become an opportunity for growth and change, although the client may not even suspect it at first. This is exactly the kind of seemingly simple idea that one of our Italian clients brought to us, asking us to implement it using the waterfall methodology. We usually prefer not to stick to this methodology, but the client's company was a large and established business, so we decided to accommodate the client's wishes.

According to the client, for a project as simple as theirs (simply copying an existing platform), waterfall would be the most suitable project management approach. However, the client did not consider that completely new software would give them significantly more business opportunities. Soon after the project started, we received the first request to change functionality, which contradicted the initial tasks. By choosing the waterfall methodology, the client hoped to control the project timeline and budget, but in this case, it was this development methodology that led to an increase in project scope. In the middle of the project, there was confusion about priority tasks and a misunderstanding of how to implement new features before the deadline. Neither we nor the client knew when the project would end or what the expected total cost would be. It became pointless to deny that the waterfall methodology was the anchor dragging the project into chaos. Our team convinced the client to switch to an agile methodology to better accommodate the dynamic requirements. We rethought the backlog and broke down all tasks into several phases and sprints.

As a result, the client got something more than just a copy of an existing system built on modern technologies. The client gained the ability to eliminate many bottlenecks in their business and obtain new growth opportunities.

All these opportunities became available to the client because they timely assessed the risks and opportunities and abandoned the waterfall method, which was limiting the entire development potential.

How to use Agile in our workflow?

It may seem that agile only describes the specifics of developers' workflows, but that is not entirely true. Agile is just a methodology that can be applied at any stage and area of a project – even at the very beginning! As is known, one of the four values of agile software development is responding to change over following a plan. Let's look at how ESK Solution uses agile methods to identify requirements for a new project and its initial phase:

  1. At the very beginning, we hold several discussions with the client to clarify the project scope, as well as timeline and budget constraints. Our sales and analytic specialists understand that the client may change the scope after this introductory call. Additionally, after a successful first meeting, discussion of preliminary project requirements begins. These can be presented in various forms – as a technical specification, presentation decks, functional or technical specifications. Experience shows that each client has their own understanding of what technical documentation is and in what form it should be compiled – and we study all the documentation sent to us.
  2. After each call, our team prepares a preliminary estimate of the project timeline and budget. After each conversation with the client, we return to the documentation and make changes to produce the most accurate estimate for the specific project. Following the principle of prioritizing individuals and interactions over processes and tools, we do not bother the client by presenting each version of the estimate; instead, we wait until we have gathered enough knowledge to send the final estimate.
  3. The principles of agile development allow us to move not only sequentially but also in parallel with project tasks. For example, the discovery phase, where a business analyst describes the platform's functionality and helps shape market analysis, and the design phase, based on a design brief – a form to be filled out that the client receives from us – are completely independent of each other. Agile allows us to work on implementing these two tasks simultaneously.

As can be seen from the description, agile allows moving back and forth between different tasks and phases, as well as making revisions and changes that are unexpectedly required during product development. In the waterfall methodology, such a possibility does not exist because its essence is to follow the plan directly without the ability to return to previous stages.

In the development phase, ESK Solution also adheres to agile methodology tools: while implementing various functions simultaneously, we listen to the client's wishes and have the ability to change or add desired functionality at any stage of the development process. Our project managers prefer to break development cycles into sprints lasting 2-3 weeks. ESK Solution believes that the client is not a passive spectator but an equal partner; thus, the involvement of both partners in the development process is the key to project success.

What payment model is used in agile methodology?

At the dawn of development outsourcing, when waterfall was the only way of working, the payment method was not even discussed. It was fixed price and nothing else. Over time, alternatives to this payment model emerged, including its main opponent—"Time and Materials" (abbreviated T&M). Choosing the right pricing is directly related to the choice of development methodology and must align with the project's requirements and goals, as well as the overall costs incurred by the developer. Many companies allow some hybrids between fixed price and T&M in their practice, but we at ESK Solution do not consider such options.

A fixed-price contract is a contract with a single cost, under which the service provider is responsible for completing the project within the agreed amount specified in the contract. It is a convenient choice when requirements, specifications, and rates are clearly defined from the start, and the client cannot make any changes to the project. Thus, fixed price is most convenient when using the waterfall method.

ESK Solution prefers to use the T&M model because we believe that fixed-price models in projects with high uncertainty are deceptive. We either deceive ourselves by overlooking some nuances and underestimating the project, or we deceive the client by quoting a higher price and ultimately creating large risks for them. Neither of these situations appeals to us. Therefore, we use the T&M method, which involves billing the client for actual work performed on an hourly basis. Clients pay only for the actual number of hours worked—no more, no less. Since in agile we plan sprints for 2-3 weeks, the client understands what a particular sprint includes and how much time will be spent on tasks during that period. If something is not to their liking, they can, for example, ask to remove a low-priority but costly task from the sprint, replacing it with a more important but less expensive one. Thus, the project budget becomes flexible, and the client can better control the budget.

The T&M method does not plunge the client into unpredictability, as it might seem. Even though there is no fixed final amount in the contract, ESK Solution still provides the client with an estimate of the number of working hours required to complete the project. Detailed terms of cooperation and penalties for violation are stipulated in the contract signed by both parties—the client and ESK Solution.

Our team values T&M for its flexibility and transparency of the payment method. Combined with the agile methodology, this allows our client to obtain a modern product in the shortest time and make changes to the technical specification at any time—without negatively affecting the development process.

Conclusion

Regardless of which methodology development teams use, the result largely depends on implementation. At ESK Solution, we believe in our project managers and developers, so we enjoy watching them progress through agile methodologies as they see fit.