-3

Back ground:

1)

Waterfall model has it's own phases of SDLC:

Requirements -> Design -> Implementation -> Verification -> Maintenance

2)

Iterative model has it's own phases of SDLC:

enter image description here


But the term Agile does not have it's own development methodology. Agile projects are mostly iterative in sofar .

Is Agile an effort planning tool and nothing more than that? Using scrum & kanban frameworks

  • 4
    Agile is a management methodology used primarily to manage the development of software. Software developers naturally have a tendency to view things like Agile and DDD from a code perspective, but that doesn't change their essential nature. – Robert Harvey Apr 2 '18 at 15:21
  • I've seen that question asked before a few weeks ago. The answer was, that Xtreme programming (which is another agile methodology) is more related to software development directly. I'll leave it to gnat to find the dupe :-). – πάντα ῥεῖ Apr 2 '18 at 15:27
  • Possible duplicate of Agile methodology in pure technical terms – πάντα ῥεῖ Apr 2 '18 at 16:01
4

Agile did start as purely software development methodology, meant to fully replace waterfall and other process-heavy methodologies. All people who created Agile Manifesto were either SW developers or managed software development projects. It even says "Working Software over comprehensive documentation". And it's Agile Principles are clearly concerned with software development.

But then, it got taken over by Scrum, which is really just management methodology. Agile then began to be applied outside of software development.

Which is why Agile nowadays viewed as management methodology.

So answer to your question really depends on whenever you consider "Agile" as originally envisioned. Or "Agile" as it is understood and applied nowadays, which is basically just Scrum.

  • 1) Your referred agile principles does not explain the development life cycle. Looks like some recommendations. 2) Assuming Agile as originally envisioned, Is Agile a quickest waterfall? & Is waterfall a slower Agile? and that's the only difference – user1787812 Apr 2 '18 at 16:44
  • @user1787812 Agile principles do not explain "development life cycle" because Agile software development doesn't have "life cycle". All of the activities are done together, to the point it is hard to distinguish one from another. Activities like analysis, design, implementation and testing happen at the same time in true agile process. So answer to your second question is clear "No". Agile being just "repeated waterfall" is simplification meant to make it easier to explain (and sell) "Agile". – Euphoric Apr 2 '18 at 16:50
  • @user1787812 "Is Agile a quickest waterfall? & Is waterfall a slower Agile?" The original proposal introduces kind of managable micro waterfalls, yes. The key software development methodology introduced those days was TDD. – πάντα ῥεῖ Apr 2 '18 at 16:51
  • @πάνταῥεῖ What proposal are you talking about? – Euphoric Apr 2 '18 at 16:52
  • @Euphoric The Agile Manifesto as linked in the answer. – πάντα ῥεῖ Apr 2 '18 at 16:53
2

Saying that waterfall has one set of SDLC phases and agile methods have their own phases is incorrect.

Both plan-driven and adaptive methods are ways of looking at systems development. Regardless of which methodology you are using, you are going to do the same thing - you're going to initiate an effort or team, you're doing to define some concept of what it is you are developing, you're going to plan out work, you're going to elicit and manage requirements, you're going to design solutions, you're going to integrate and test your solutions, you're going to deploy solutions and maintain them.

The difference between plan-driven methodologies and the agile or adaptive methodologies is when these things occur. The agile methods acknowledge the fact that it's not possible to fully plan out and specify a project up-front. By using short iterations and incrementally building a solution rather than creating a plan up-front and executing a project against it, you are able to adapt to changing needs.

Even characterizing Agile as "miniwaterfalls" is likely to be incorrect. The idea of a waterfall is that you, early in your project, have a fixed set of requirements. Taking Scrum as a specific example, your Sprint backlog isn't fixed at the beginning of a Sprint. You discover work, you negotiate with the Product Owner as new information is learned, and you work toward goals. You don't have a fixed set of requirements and design up-front and you don't have a test and integration period at the end.

The Agile methods are a different perspective on managing the work that goes into a project and a different set of principles that have been found to, generally speaking, work well when delivering software (and other types of products or services, in some cases).

  • "Taking Scrum as a specific example, your Sprint backlog isn't fixed at the beginning of a Sprint." Well, please note that "Kanban" won't work well with the essential "Kaizen", which introduces at least a temporary limitaiton. – πάντα ῥεῖ Apr 2 '18 at 18:05
  • @πάνταῥεῖ Uhm...what? Kaizen is an improvement activity. The Kanban Method (or Kanban Methodology) introduces WIP limits. Do note that Kanban and the Kanban Method are different. – Thomas Owens Apr 2 '18 at 18:15
  • Sorry, I meant to write without the essential "Kaizen". I only argued this should have been mentioned. – πάντα ῥεῖ Apr 2 '18 at 18:29
  • @πάνταῥεῖ You can use Kanban without Kaizen. However, Kaizen is part of the Kanban Method and various Lean methods. Note the difference between Kanban, the lean manufacturing practice and Kanban, the methodology popularized by David J. Anderson and others. – Thomas Owens Apr 2 '18 at 18:35
0

"Agile" is an adjective; not a noun. We want to write applications in an effective fashion, but that doesn't mean "Effective" is a software development model. Likewise, "Agile" isn't one either. So no, "Agile" is not a software development methodology.

The most common way of developing an application in an agile fashion is to use an iterative development model. However, not all iterative development models are particularly agile. Scrum for example is a highly proscriptive model if followed to the letter, which is ironic as "Scrum" and "Agile" are often mistakenly assumed to be synonymous.

The less rules a model has, and the more it can be readily changed to adapt to circumstances, the more agile a model is. So models can be agile (or not), but there is no "Agile model".

  • Iterative development encompasses pretty much all development methodologies. You can add multiple waterfalls back to back and suddenly you have an iterative development process. The difference between agile methodologies and others is that it is also incremental, which paired with iterative process is not sustainable in other methodologies. – Aleksander Apr 3 '18 at 12:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.