Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Agile Myths and Misconceptions [closed]

People also ask

What are the 3 principles of agile?

Transparency, Iteration and Empowerment – The 3 principles behind agile tools. The jungle of agile methods is so big that you can easily get lost in it. Some methods such as Scrum, Design thinking, OKR are better known and used more often.

Why is agile flawed?

The fundamental problem with agile, as many companies use it, is that its relentless pace biases developers. They want to get out a minimum viable product in only a few weeks, so they skimp on scoping out just what the product should accomplish. Or worse, in our experience, they make two kinds of compromises.


"Working software over comprehensive documentation" means you do not need a functional spec...

Wrong!!! It just means that you can iron out the wrinkles iteratively with the users - speaking as a vendor, you still need good documentation to assist with the QA and sign-off phases...


  1. "We're doing Scrum - so we don't need to (pair | refactor | do TDD | ...)" Actually the Scrum founders - Ken and Jeff have been saying that all the high-productivity scrum teams implement the full range of Extreme Programming practices.

  2. Test-driven development won't find all the bugs / isn't easy to apply to everything - so we're not going to try! - Learning TDD isn't an "all or nothing deal" and you get better at judging what to test and how to do it efficiently. I've been doing it for ten years now and I'm still finding better ways to do it and new things to consider.

  3. I can learn all I need to apply agile methods from a book. - You need to learn by doing and that often means coaching and meeting other people that can help. Lots of things go wrong when people just try to learn it from a book.

  4. Hysterical (and quite real) "The candidate must take direction from, and support the scrum master" (From a job spec I was sent last week...) - The scrum master isn't supposed to tell people what to do. He/She is there to facilitate - i.e. to help the team learn to sort things out themselves. It's a massive failure mode - having a scrum master that "commands" people!

  5. Talking about "the agile methodology" - big cluelessness indicator. Firstly, talking about "agile" like it's a specific thing whereas it's a very vague umbrella terms for many different things. Secondly, use of "the" agile methodology - there are loads of them, and loads of different ways of doing many of them! Thirdly, a lot of people in the agile community got here in the backlash against the big, heavy UML-laden methods of the nineties. These people don't tend to use the word "methodology"...

  6. You need especially talented people to develop software the agile way. Jeff Sutherland says that they considered using the "chief programmer team" model for managing teams in banks - but found they didn't have anything like enough "chiefs". Scrum is designed to get best productivity out of a lot of moderately able programmers. In fact removing one, disproportionately productive team member that doesn't want to help the others can "unblock" the mediocre team members and bring their combined productivity up to more than compensate for the super-productive former team member... That's what Jeff says anyway...

There are quite a few other XP-related ones that we came up with in an open space workshop that I led recently: http://xpday-london.editme.com/WhereHasXpGone


Myth: using Agile development practices is a silver bullet solution to software engineering problems.


Myth: Test-first development forces your project to have adequate unit testing.

Fact: Many developers get lazy, and the unit tests they write before their code are often weak and inadequate.

Myth: Pair programming always results in better code.

Fact: Programmers tend to be slightly anti-social and to have significantly different thought processes from one another. Having someone breathing down your neck as you code is very unpleasant, and the result is often a tense work atmosphere with a reduction in both code quality and quantity.


Myth: Agile means no documentation

Fact: Agile value working software more than comprehensive documentation but this doesn't mean no documentation at all. Documentation should be written just in time, and just enough. And no, Agile doesn't say one should always using user stories. Use them if, and only, if they are appropriate!

Myth: Agile means no plan

Fact: Agile does not support development without planning. Agile uses continuous planning and estimating to maximize the ROI. Actually, Agile is about scope management.

Myth: Agile means no discipline

Fact: Agile developers must be more disciplined for success.

Myth: Agile only works for trivial projects

Fact: Agile (actually Scrum here) has been used for

  • FDA-approved, life-critical software for x-rays and MRIs,
  • Financial payment applications,
  • 24x7 with 99.99999% uptime requirements,
  • Multi-terabyte database applications,
  • etc

Myth: Agile doesn't scale

Fact: Sutherland used Scrum in groups of 500+, Cohn used Scrum in groups of 100+


Myth: "No Big Design Up Front" means no design.


Myth: Waterfall always fails.

Reality: Most of the software you're using on your agile project was developed with waterfall. Even BDUF waterfall, in many cases.