GO LIVE with us
Juraj Buday

Waterfall vs. Agile methodology

Knowledge center, Project Management, Software Testing

What does ‘waterfall’ mean in process of software development

Then best way to understand what is the ‘Waterfall’ is by definition from Phillips Kruchten:

‘The traditional mindset of developing software is usually what is called the Waterfall model. Using the Waterfall model a project should not move from one phase to the next until the preceding phase is completely fulfilled and perfected. It is not possible to jump back to an earlier concluded phase.

This development model is displayed in the figure below. One problem with this approach is that risk is pushed back into the development process and can, if the software is of any significant size, cause problems later in the process. This can lead to increased cost in the project or/and may result in project termination.’

12637665_f520

The positives of Waterfall

Planning, designing, and architecture is more straightforward since the customer and the developers agree on what will be delivered early in the life cycle. Since the full scope of work is known, progress is also more easily measured.

Depending on the phase of the project all team members do not need to be locked down in the project.
As an example business analysts (BAs) can proceed work on other parts, or other projects entirely, after requirements are written and vice versa, developers do not need to be involved before the BAs actually know what needs to be delivered.

Based on requirements from BAs, testers can prepare test scripts while developers are coding along etc.

After the requirements stage, there does not exist call for customer continual presence so they can re-focus on their own business. The customer predominantly has to participate only for status reviews, approvals etc.

If multiple systems/components/software packages have to have to be unified and/or launched at the same time (internal and/or external) an early design is usually required. In this case, it is perfectly suited  to the staged approach of Waterfall.

Architecture, a trade often is forgotten or neglected in modern software development, can also be designed better for scalability, overall coherence, and completeness since there is a more thorough understanding of all parts of the entire system. The source code does not need to be rewritten over and over again, which sometimes can be the case in Scrum and which sometimes results in a piecemeal system.

Project resources are not as severe since planning and documentation then  been done, so when a developer give up, it is easy for a newly named resource to fill the position and get up to speed quickly and follow the plan.

As the Waterfall method requires planning in advance, software can be delivered promptly after development. Assessment of  timetables and budgets can be done flawlessly, which obviously influence customers’ experience.

The negatives of Waterfall

Gathering and documenting requirements so the customer understands what they mean is very difficult. Customers are usually overwhelmed by technicalities, and specific details must be contributed early in the project before progress can be made. Clients are often incapable envision the end product from a requirements document. Wireframes and mockups will help, but most end users have difficulty understanding these elements in enough detail to clearly envision the final product application.

Clients are often incapable envision the end product from a requirements document. Wireframes and mockups will help, but most end users have difficulty understanding these elements in enough detail to clearly envision the final product application.

This problem means that customer might be dissatisfied with their delivered product once it is complete. As all deliverables are based upon documented requirements, a customer may not see what will be delivered until large parts of the project are finished. At that point in time, changes are difficult and costly.

What does Agile do means?

Agile software development methodology is a process for developing software (like other software development methodologies – Waterfall model, V-Model, Iterative model etc.) However, Agile methodology differs significantly from other methodologies. In English, agile by Merriam-Webster means:

  1. marked by ready ability to move with quick easy grace

  2. having a quick resourceful and adaptable character

these  are the two key aspects of Agile software development : move swiftly and implement the change quickly.

Agile development methodology develops circumstances to evaluate the path of a project during the whole development cycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a potentially shippable product increment. By focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology is described as “iterative” and “incremental.”agile-software-development-methodology

In waterfall, development teams only have one chance to get each aspect of a project right. In an agile methodology every stage of development lifecycle (requriments analysis, design, testing, etc) is recurringly revisited throughout the whole lifecycle. When a team make a stop  and reconsider the path of a project every fourteen days, there’s always time to change it to the other way.

The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. Because teams can develop software at the same time they’re gathering requirements, the phenomenon is known as “analysis paralysis” is less likely to impede a team from making progress.

Because an Agile team’s task cycle is restricted to fourteen days, it gives stakeholders persistent freedom to fine-tune releases for success in the end.

Agile development methodology helps companies build the right product. Instead of committing to market a piece of software that hasn’t even been written yet, agile empowers teams to continuously re-plan their release to optimize its value throughout development, allowing them to be as competitive as possible in the marketplace.

Development applying an agile methodology keeps product’s crucial market relevance and ensures a team’s work doesn’t wind up on a shelf, never released.

The positives of Agile methodology

  •  The delivery of  is unremitting.
  • The customers are satisfied because after every iteration of a working feature of the software is delivered to them
  • Customers can have a look on the working feature which satisfies their requirements
  • If the customers have any feedback or any change in the feature then it can be accommodated in the current release of the product
  • In Agile methodology the very often (daily) interactions are mandatory between the business and the developers side.
  • In this methodology,  good design of the product is the most scrutinized
  • Late change requests in the requirements are accepted even in later phases  of the development

The negatives o Agile

  • In Agile methodology the documentation is less
  • In Agile methodology often the requirement is not very clear therefore it’s difficult to prognosticate the expected state of results
  • Only in minority of the projects at the starting point of the software development life cycle is clear, thus is challenging the estimation of the actual effort required
  • The projects using the Agile methodology may have challenged by some unknown risks which can impact the development of the project.

Role and Type of Testers in Agile

In Agile team, all developers and testers closely collaborate with each other to deliver business value. Every tester has to have capable of multi usable skills on board to become a cross function team member.

Agile testers  require skills in developing scripts for automation of test cases, test-driven development, and acceptance tests, manual testing both white box and black box testing  methods.

Agile methods demand better teamwork, active communication, and cooperation between team members and external service providers as well as stakeholders who can directly or indirectly lead the product development.

 Following are the few attributes that are expected out of Agile testers:

  • Great interpersonal skills with clarity in expression
  • Result oriented and positive attitude
  • Go getter and get it done attitude
  • Make test results visible to make a collective decision
  • High quality first mindset, intolerance to any imperfections
  • Someone who are good at organizing their task boards
  • Good analytical capabilities to evaluate test results
  • Understand the user stories and their acceptance criteria
  • Respond to change without impacting the business
  • Who are die-hard learners on everything related to testing
  • Who believe in team wins than individual wins
  • Constantly upgrade themselves using new tools and techniques

 

Related Posts

Software Testing BEER.EX 2023

Check the unique atmosphere of SANAE Software Testing BEER.EX 2023.

Partnership

About us

SANAE is a well-established provider of software testing and QA solutions. We believe that true success can be reached by cooperation and networking rather than through competition, therefore apart from the main area of business, we are working hard to build, maintain and enlarge a community of testers in the Bratislava region and beyond. This effort resulted into SANAE Software Testing BEER.EX.