SlideShare a Scribd company logo
Agile Anti-patterns
      Andrew Cox
      @coxandrew
What is an anti-pattern?
“A pattern that may be commonly
used but is ineffective and/or
counterproductive in practice.”

— Wikipedia
See Also

• Scrumbut
• Process Smells
• Cargo Cult Agile
Why learn anti-patterns?
2 key elements:
2 key elements:

• A repeated pattern of action that appears
  beneficial, but ultimately produces more
  bad consequences than beneficial results
2 key elements:

• A repeated pattern of action that appears
  beneficial, but ultimately produces more
  bad consequences than beneficial results
• A refactored solution exists that has been
  proven in actual practice and is repeatable
“Scrum is like your mother-in-law.
It's constantly pointing out your
shortcomings.”

— Ken Schwaber
The Anti-patterns
We Tried Baseball and
  It Didn’t Work
Agile Coding Sandwich
Kitchen Sink Product
Deadlines
The Absentee
Product Owner
Customer Driven
 Development
Double Duty
Watching the Runners
    (aka “Maximizing Capacity”)
Retrospective
Actionless Items
A “Bug Fixing” Sprint
Sword of Damocles
    Standups
Layer Cake Stories
Premature Allocation
Silo People
Multitasking
Agile as Project
 Management
 (aka “Not using XP practices”)
XP Practices
• Test Driven Development
• Pair Programming
• Continuous Integration
• Coding Standards
• Simple Design
• Refactoring
The Nots
(aka Not doing these things is bad)
Not
Not
•   ... designing
Not
•   ... designing

•   ... maintaining a prioritized backlog
Not
•   ... designing

•   ... maintaining a prioritized backlog

•   ... having retrospectives
Not
•   ... designing

•   ... maintaining a prioritized backlog

•   ... having retrospectives

•   ... having a definition of “done”
Not
•   ... designing

•   ... maintaining a prioritized backlog

•   ... having retrospectives

•   ... having a definition of “done”

•   ... spiking for risky stories
Not
•   ... designing

•   ... maintaining a prioritized backlog

•   ... having retrospectives

•   ... having a definition of “done”

•   ... spiking for risky stories

•   ... prioritizing technical debt
Further reading
• Out of the Crisis by W. Edwards Deming
• Scaling Lean & Agile Development by Craig
  Larman and Bas Vodde
• The Decline and Fall of Agile by James Shore
• The Scrum Guide
• We Tried Baseball and It Didn’t Work

More Related Content

PDF
Security Process in DevSecOps
PDF
Overcome the 6 Antipatterns of Agile Adoption
PPTX
Remote PI Planning: ScrumMaster & RTE Edition
PPTX
Agile Patterns and Anti-Patterns
PPTX
Estimation and Release Planning in Scrum
PPTX
Agile Estimation & Capacity Planning
PDF
Agile antipatterns webinar august17
PDF
User Story Mapping
Security Process in DevSecOps
Overcome the 6 Antipatterns of Agile Adoption
Remote PI Planning: ScrumMaster & RTE Edition
Agile Patterns and Anti-Patterns
Estimation and Release Planning in Scrum
Agile Estimation & Capacity Planning
Agile antipatterns webinar august17
User Story Mapping

What's hot (20)

PPTX
Agile estimation
PPTX
Top 10 Agile Metrics
PPTX
How to estimate in scrum
PPTX
Introduction to CI/CD
PPTX
Agile Maturity Assessments
PDF
User Story Sizing using Agile Relative Estimation
PPTX
Introduction to Agile Estimation & Planning
PPTX
Introduction to story points
KEY
Agile Estimating & Planning
PPT
Agile Metrics
PPTX
Strategies for Large Scale Agile Transformation
PDF
How to do effective pi planning
PPTX
Agile estimation
KEY
Intro to Lean Software Development
PDF
Shift Left Testing: Going Beyond Agile
PPT
Scrum retrospective
PDF
Kubernetes Security with Calico and Open Policy Agent
PDF
Large Scale Scrum: More with LeSS
PPTX
Agile Metrics 101
PDF
Agile Performance Metrics
 
Agile estimation
Top 10 Agile Metrics
How to estimate in scrum
Introduction to CI/CD
Agile Maturity Assessments
User Story Sizing using Agile Relative Estimation
Introduction to Agile Estimation & Planning
Introduction to story points
Agile Estimating & Planning
Agile Metrics
Strategies for Large Scale Agile Transformation
How to do effective pi planning
Agile estimation
Intro to Lean Software Development
Shift Left Testing: Going Beyond Agile
Scrum retrospective
Kubernetes Security with Calico and Open Policy Agent
Large Scale Scrum: More with LeSS
Agile Metrics 101
Agile Performance Metrics
 
Ad

Viewers also liked (9)

PDF
SUGSA JHB 10 Agile anti-patterns in distributed teams 2014 - Pavel Dabrytski
PPT
Coaching Anti-Pattens and common smells
PDF
ScrumDay Vietnam 2012 - Agile adoption - Nhan
PDF
User Story Smells & Anti-patterns
PPTX
BDD - Keep love alive
PPTX
Agile Anti-Patterns. Yes your agile projects can and will fail too.
PDF
Risks and strategies adopting agile in medium and large organizations
PDF
Agile Adoption Patterns And Antipatterns
PDF
Bab 09 kekuatan sambungan las
SUGSA JHB 10 Agile anti-patterns in distributed teams 2014 - Pavel Dabrytski
Coaching Anti-Pattens and common smells
ScrumDay Vietnam 2012 - Agile adoption - Nhan
User Story Smells & Anti-patterns
BDD - Keep love alive
Agile Anti-Patterns. Yes your agile projects can and will fail too.
Risks and strategies adopting agile in medium and large organizations
Agile Adoption Patterns And Antipatterns
Bab 09 kekuatan sambungan las
Ad

Similar to Agile Anti-patterns (20)

PDF
Audrys Kažukauskas - Introduction into Extreme Programming
PDF
I don't do Agile, I AM Agile!
PDF
Agile software development principles patterns and practices Martin
PDF
Agile adoption tales from the coalface
PDF
"Lean software development: discovering waste" by Mary Poppendieck
KEY
Agile product development
PPTX
Agile Development Product Delivery For Successful Organizations
PDF
Secrets of Agile
PDF
Agile By The Numbers - Scott Ambler
PPT
Arch factory - Agile Design: Best Practices
PDF
How to Adopt Agile at Your Organization
PDF
Introduction to agility
PPT
Agile software modelling
PPTX
Scrum in One Day
PDF
Agile in a Nutshell - Portia Tung
PDF
Objective agility
PPTX
Secrets of Scrum
PDF
Agile Software Development Principles Patterns And Practices 1st Edition Robe...
PPTX
Dc20 james birnie - agile is a dirty word
PPTX
Introducing Agile to the Enterprise
Audrys Kažukauskas - Introduction into Extreme Programming
I don't do Agile, I AM Agile!
Agile software development principles patterns and practices Martin
Agile adoption tales from the coalface
"Lean software development: discovering waste" by Mary Poppendieck
Agile product development
Agile Development Product Delivery For Successful Organizations
Secrets of Agile
Agile By The Numbers - Scott Ambler
Arch factory - Agile Design: Best Practices
How to Adopt Agile at Your Organization
Introduction to agility
Agile software modelling
Scrum in One Day
Agile in a Nutshell - Portia Tung
Objective agility
Secrets of Scrum
Agile Software Development Principles Patterns And Practices 1st Edition Robe...
Dc20 james birnie - agile is a dirty word
Introducing Agile to the Enterprise

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
Teaching material agriculture food technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Modernizing your data center with Dell and AMD
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Cloud computing and distributed systems.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation theory and applications.pdf
PPTX
A Presentation on Artificial Intelligence
PPTX
Understanding_Digital_Forensics_Presentation.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Teaching material agriculture food technology
Unlocking AI with Model Context Protocol (MCP)
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Modernizing your data center with Dell and AMD
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
Chapter 3 Spatial Domain Image Processing.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Per capita expenditure prediction using model stacking based on satellite ima...
Network Security Unit 5.pdf for BCA BBA.
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Empathic Computing: Creating Shared Understanding
Encapsulation theory and applications.pdf
A Presentation on Artificial Intelligence
Understanding_Digital_Forensics_Presentation.pptx

Agile Anti-patterns

Editor's Notes

  • #2: \n
  • #3: \n
  • #4: The term was coined in 1995 by Andrew Koenig,[3] inspired by Gang of Four's book Design Patterns, which developed the concept of design patterns in the software field. \n\nIn the old days, they just called these 'bad ideas'. The new name is much more diplomatic.\n
  • #5: \n
  • #6: Identifying bad practices can be as valuable as identifying good practices.\n
  • #7: There must be at least two key elements present to formally distinguish an actual anti-pattern from a simple bad habit, bad practice, or bad idea:\n
  • #8: There must be at least two key elements present to formally distinguish an actual anti-pattern from a simple bad habit, bad practice, or bad idea:\n
  • #9: Ken Schwaber at an Agile Vancouver conference in 2008. \n\nKen Schwaber is the cofounder of Scrum (w/ Jeff Sutherland) and a founder of the Agile Alliance.\n\nThe trick is that you're supposed to learn from that feedback and fix your problems.\n\n\n
  • #10: \n
  • #11: Or, “Premature rejection of process”. See: http://xprogramming.com/xpmag/jatBaseball\n\nSmells: \n* “It won’t work here”\n* “We tried it and it didn’t work”\n\nThis is often the case of not understanding the underlying philosophy behind a process or not implementing it correctly. If you find yourself in this situation for a practice that other development teams seem to get a lot of value out of, you should examine how you’re doing the practice more closely.\n\nOf course, it might *not* work for you and you should never just do a practice because it’s prescribed by a book, blog article, or your local agile user group :)\n\nAntidote: \n\n* Learn as much as you can about the practice\n* Give it a try for at least 2 sprints\n* Retrospect on whether the practice is worth continuing\n* Try it again several weeks or months down the road\n\n\n
  • #12: Smells: \n\n* Design > Coding > Testing > Documentation > Release\n* Requirements don’t change\n* A “bug fixing” sprint\n\nAntidote: \n\n* JIT design\n* Integrate QA and Docs into your Definition of “Done”\n* Cross-functional teams\n
  • #13: Smells: Everything is a must-have.\n\nThis usually arrises out of a fear that if features don’t make it in the initial release, they’ll never get in. This fear is natural since that’s the way waterfall development taught us that software development works.\n\nWhy bad:\n\nYou don’t learn about your product from real world use. See: Lean Startup\n\nAntidote: \n\nThe MVP - release before you’re ready to small group and listen to their feedback to inform your next moves.\n
  • #14: Specifically, deadlines with fixed scope (sometimes deadlines are unavoidable).\n\nSmells:\n\n* “Bug fixing” sprints\n* Lots of bugs\n* Scrimping on tests\n\nWhy bad:\n\n* Deadlines force you to compromise on quality\n\nAntidote:\n\n* If you must have deadlines, flex on scope rather than quality\n* Don’t use hard deadlines (challenge assumptions)\n
  • #15: Smell: \n\n* Developers establish priority of stories\n\nAntidote:\n\n* Get a product owner that can be accessible - even if it means making one of your developers be the official Product Owner.\n\nSomeone needs to be responsible for the priority of the stories and talking with customers. Your project needs that “single wringable neck” that has the appropriate information and authority to make decisions on priority.\n
  • #16: Smell:\n\n* Prioritizing customer requests above all other work.\n* Checklist product\n\nWhy Bad:\n\nYou’re always reactive. The customer doesn’t always know what they want. Feature checklists lead to complex, cluttered design that doesn’t please anyone.\n\nAntidote:\n\n* Say “thank you for your feedback”!\n* Don’t be afraid of your customer becoming too advanced for your product (37Signals philosophy)\n
  • #17: Smells:\n\n* Developer as Product Owner\n* Manager as Scrum Master\n* Scrum Master + Product Owner\n\nWhy bad:\n\nConflict of interest\n\nAntidote:\n\nDon’t :)\n
  • #18: Smell: Management concern over idle developers\n\nWhy bad: \n\nIn an agile project, you want to watch the baton, not the runners.\n\nMaximizing capacity will skew the stories toward your available skills rather than toward the most important stories for your product.\n\nAntidote: \n\n* Allow slack time\n* Encourage pair programming\n* WIP limits\n* Establish “shave the yak” time where people can add items to their list of things to do when they’re idle\n\nSee also:\n\n* Silo People\n* Layer Cake Stories\n
  • #19: Smells: \n\n* Not following through with action items\n* More than 2 action items from a retrospective\n\nAntidote:\n\nDecide on only 1 or 2 things you want to improve with your process and make sure to evaluate the effectiveness of the change(s) at the next retrospective.\n
  • #20: Smell: You need time for your product to stabilize before a release\n\nAntidote:\n\n* Continuous Integration\n* Demo your product at the end of each sprint\n
  • #21: Background for “Sword of Damocles”:\n\nThe Damocles of the anecdote was an obsequious courtier in the court of Dionysius II of Syracuse, a fourth century BC tyrant of Syracuse, Italy. Pandering to his king, Damocles exclaimed that, as a great man of power and authority surrounded by magnificence, Dionysius was truly extremely fortunate. Dionysius then offered to switch places with Damocles, so that Damocles could taste that very fortune first hand. Damocles quickly and eagerly accepted the King's proposal. Damocles sat down in the king's throne surrounded by every luxury, but Dionysius arranged that a huge sword should hang above the throne, held at the pommel only by a single hair of a horse's tail. Damocles finally begged the tyrant that he be allowed to depart, because he no longer wanted to be so fortunate.[2][5]\n\nDionysius had successfully conveyed a sense of the constant fear in which the great man lives. Cicero uses this story as the last in a series of contrasting examples for reaching the conclusion he had been moving towards in this fifth Disputation, in which the theme is that virtue is sufficient for living a happy life.[6] Cicero asks:\n\n Does not Dionysius seem to have made it sufficiently clear that there can be nothing happy for the person over whom some fear always looms?\n\nSmells:\n* Management tracks hours worked\n* Standups are for accountability rather than communication\n* Scrum Master is your manager\n\nAntidote:\n* Watch the baton\n* Have a team member lead the standups\n
  • #22: Smells: Integration stories\n\nWhy bad: \n\n* Front-end and back-end get out of sync\n* You often aren’t in a releasable state\n\nAntidote: Slice stories vertically\n
  • #23: Smells: Assigning users to individual stories at the start of an iteration.\n\nWhy bad: \n\n* Bottlenecks\n* Bus factor\n* Silo People\n\nSee also: \n\n* Silo People\n
  • #24: Smells:\n\n* Premature Allocation\n* Prioritizing stories based on team skills\n\nWhy bad:\n\nAlso known as “stove pipe”. What are the dangers of having developers that are overly specialized?\n\n* Stories will be prioritized based on the skills of the developers - not customer need\n* Low “bus factor”, which means bottlenecks when specialized developers are unavailable\n\nAntidote:\n\n* Prioritize stories based on product / market needs\n* Pair program to share knowledge\n
  • #25: Smells:\n\nOne developer is working on many stories at once\n\nWhy bad:\n\n* Bottlenecks\n* Not finishing stories in a sprint\n\nAntidote: \n\n* WIP limits\n
  • #26: Agile is a holistic process. It is tempting to take the rituals of Agile like sprints, standups, story points and retrospectives, but not implement the engineering practices described in eXtreme Programming.\n\n> the solid agile engineering practices included in Extreme Programming pay for themselves within the first few months. Without XP's agile engineering practices, code quality and productivity asymptotically decreases over time. With them, productivity starts lower, but then it asymptotically increases. I can't prove it, but my sense is that the two curves cross at about the eight-week mark. Maybe sooner. Agile engineering practices aren't only important--they pay for themselves! Doing anything else is pure negligence... if you understand your options. Scrum is silent on the matter.\n
  • #27: \n
  • #28: These don’t fit the formal definition of an anti-pattern, but are worth an honorable mention.\n\nThese are things that are often easy to neglect in an agile project, but I think are fundamental to a well-functioning agile team.\n
  • #29: \n
  • #30: \n
  • #31: \n
  • #32: \n
  • #33: \n
  • #34: \n
  • #35: \n