Projects are unique by nature, and organizations each have their own specific needs when it comes to managing systems projects. In addition, there is never a superior SDLC methodology, but rather SDLCs that will fit certain projects better than others.

Compare and contrast Agile and waterfall SDLCs. Based on your personal and work experiences, why might an organization opt to choose one SDLC over another? Can an organization make use of both types of SDLCs, and why? Reference a project you have personally worked on (at home or at work) and integrate that experience into your response.

Post your answers to the discussion forum.

Respond to at least three of your peers. In your response, consider providing further suggestions on using the SDLC of choice.

PEER 1

sequential order, and so project development team only moves to next phase of development or testing if the previous step completed successfully.

Agile methodology is a practice that helps continuous iteration of development and testing in the software development process. In this model, development and testing activities are concurrent, unlike the Waterfall model. This process allows more communication between customers, developers, managers, and testers.

Agile and Waterfall are very different software development methodologies and are good in their respective way.

However, there are certain major differences highlighted below –

Agile and Waterfall are very different software development methodologies and are good in their respective way.

However, there are certain major differences highlighted below –

  • Waterfall model is ideal for projects which have defined requirements, and no changes are expected. On the other hand, Agile is best suited where there is a higher chance of frequent requirement changes.
  • The waterfall is easy to manage, sequential, and rigid method.
  • Agile is very flexible and it possible to make changes in any phase.
  • In Agile process, requirements can change frequently. However, in a waterfall model, it is defined only once by the business analyst.
  • In Agile Description of project, details can be altered anytime during the SDLC process which is not possible in Waterfall method.

Guru99. (2019). Waterfall Vs. Agile: Must Know Differences. Retrieved from Guru99: https://www.guru99.com/waterfall-vs-agile.html

PEER 2

In my experience no matter what SDLC you chose you will always deliver the highest value IT software solutions possible. Agile is a mindset not a process.

1. Individuals and Interactions Over Processes and Tools

The first value in the Agile Manifesto is “Individuals and interactions over processes and tools.” Valuing people more highly than processes or tools is easy to understand because it is the people who respond to business needs and drive the development process. If the process or the tools drive development, the team is less responsive to change and less likely to meet customer needs. Communication is an example of the difference between valuing individuals versus process. In the case of individuals, communication is fluid and happens when a need arises. In the case of process, communication is scheduled and requires specific content.

2. Working Software Over Comprehensive Documentation

Historically, enormous amounts of time were spent on documenting the product for development and ultimate delivery. Technical specifications, technical requirements, technical prospectus, interface design documents, test plans, documentation plans, and approvals required for each. The list was extensive and was a cause for the long delays in development. Agile does not eliminate documentation, but it streamlines it in a form that gives the developer what is needed to do the work without getting bogged down in minutiae. Agile documents requirements as user stories, which are sufficient for a software developer to begin the task of building a new function.

The Agile Manifesto values documentation, but it values working software more.

3. Customer Collaboration Over Contract Negotiation

Negotiation is the period when the customer and the product manager work out the details of a delivery, with points along the way where the details may be renegotiated. Collaboration is a different creature entirely. With development models such as Waterfall, customers negotiate the requirements for the product, often in great detail, prior to any work starting. This meant the customer was involved in the process of development before development began and after it was completed, but not during the process. The Agile Manifesto describes a customer who is engaged and collaborates throughout the development process, making. This makes it far easier for development to meet their needs of the customer. Agile methods may include the customer at intervals for periodic demos, but a project could just as easily have an end-user as a daily part of the team and attending all meetings, ensuring the product meets the business needs of the customer.

4. Responding to Change Over Following a Plan

Traditional software development regarded change as an expense, so it was to be avoided. The intention was to develop detailed, elaborate plans, with a defined set of features and with everything, generally, having as high a priority as everything else, and with a large number of many dependencies on delivering in a certain order so that the team can work on the next piece of the puzzle.

PEER 3

Waterfall SDLC follows phases in strict sequential order, so the project team only moves to the next phase once the previous step is completed. It mimics the manufacturing of physical objects like an assembly line for car manufacturing or a house being built.

Agile SDLC follows a continuous iteration of development and testing – i.e. these activities can be concurrent, allowing and requiring for more engagement and communication between customers/end users, developers, and testers, all through out the software development life cycle.

Over the years, my high level formula of a project in any given organizational situation is: people, process and tools. And the primordial factor on each of this variable/parameter is maturity and capability. The level of maturity and capability of each determines the success rate of the overall result of the project or software deliverable.

A smart organization will choose which SDLC to follow based on the maturity and capability of the people, processes, and tools involved. A smart organization does not necessarily need to stick to just one SDLC over another. One can have different SDLCs in the company at the same time, Agile on project 1, Waterfall on project 2, etc. again depending on the capability maturity model of the organization.

17 years ago, I had the chance to work in an agile project when it was still a fledging technology both in the industry and in the company. The customers and end users looked at the project manager like he had 6 heads when the PM was reciting all these terminologies. It was just a major disconnect between the user coomunity and the IT team involved. While the IT team were trained on Agile, the user base was still used to waterfall. Alas, the project failed in delivering the software expected by the end users. This was due to the imbalance between business team’s maturity in the technology and process that the IT team is using. and the PM was adamant and not flexible in adapting the project. Ironically, Agile should be flexible and yet in this case, the rigidity of the PM contributed to the failure of the project.

Which is why I think there is no 100% right or wrong SDLC – waterfall can be good if there is some flexibility in its rigidity. And Agile should be tempered with disciplined approaches all through out such that good project management principles are still followed.

Similar Posts