SlideShare ist ein Scribd-Unternehmen logo
1 von 36
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Agile and Scrum
Introduction to Agile and ScrumIntroduction to Agile and Scrum
Introduction to Agile and Scrum
Operational Excellence Consulting
 

Was ist angesagt? (20)

Agile adoption vs Agile transformation
Agile adoption vs Agile transformationAgile adoption vs Agile transformation
Agile adoption vs Agile transformation
 
Agile transformation Explanined
Agile transformation ExplaninedAgile transformation Explanined
Agile transformation Explanined
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
Agile Maturity Assessments
Agile Maturity AssessmentsAgile Maturity Assessments
Agile Maturity Assessments
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Scrum at Scale - What's it all about?
Scrum at Scale - What's it all about?Scrum at Scale - What's it all about?
Scrum at Scale - What's it all about?
 
Agile Scrum software methodology
Agile Scrum software methodologyAgile Scrum software methodology
Agile Scrum software methodology
 
Kanban introduction
Kanban introductionKanban introduction
Kanban introduction
 
Scrum in an hour
Scrum in an hourScrum in an hour
Scrum in an hour
 
Introduction to Agile and Scrum
Introduction to Agile and ScrumIntroduction to Agile and Scrum
Introduction to Agile and Scrum
 
Agile 101
Agile 101Agile 101
Agile 101
 
Scrum 101
Scrum 101Scrum 101
Scrum 101
 
Scrum
ScrumScrum
Scrum
 
Agile Estimating & Planning
Agile Estimating & PlanningAgile Estimating & Planning
Agile Estimating & Planning
 
Agile Mindset Shifting: Agile For All
Agile Mindset Shifting: Agile For AllAgile Mindset Shifting: Agile For All
Agile Mindset Shifting: Agile For All
 
Waterfall to agile transition
Waterfall to agile transitionWaterfall to agile transition
Waterfall to agile transition
 
What Is Agile Scrum
What Is Agile ScrumWhat Is Agile Scrum
What Is Agile Scrum
 
Product backlog
Product backlogProduct backlog
Product backlog
 
Agile Fundamentals
Agile FundamentalsAgile Fundamentals
Agile Fundamentals
 
Agile (Scrum)
Agile (Scrum)Agile (Scrum)
Agile (Scrum)
 

Andere mochten auch

Risks and strategies adopting agile in medium and large organizations
Risks and strategies adopting agile in medium and large organizationsRisks and strategies adopting agile in medium and large organizations
Risks and strategies adopting agile in medium and large organizations
Agile Software Community of India
 
Bab 09 kekuatan sambungan las
Bab 09 kekuatan sambungan lasBab 09 kekuatan sambungan las
Bab 09 kekuatan sambungan las
Rumah Belajar
 

Andere mochten auch (9)

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

Ähnlich wie Agile Anti-patterns

Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
Kanban Explained Clearly
Kanban Explained ClearlyKanban Explained Clearly
Kanban Explained Clearly
Andrew Lloyd
 
Kanban Explained Clearly
Kanban Explained ClearlyKanban Explained Clearly
Kanban Explained Clearly
Andrew Lloyd
 
Agile Scrum at Double V3
Agile Scrum at Double V3Agile Scrum at Double V3
Agile Scrum at Double V3
bmasse @ Nexio
 

Ähnlich wie Agile Anti-patterns (20)

Scrum is good - but kanban is better
Scrum is good - but kanban is betterScrum is good - but kanban is better
Scrum is good - but kanban is better
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Scrum wall images by tobias mayer
Scrum wall images by tobias mayerScrum wall images by tobias mayer
Scrum wall images by tobias mayer
 
Agile intro module 1
Agile intro   module 1Agile intro   module 1
Agile intro module 1
 
Software development is hard
Software development is hardSoftware development is hard
Software development is hard
 
Scrum and Kanban - Getting the Most from Each
Scrum and Kanban - Getting the Most from EachScrum and Kanban - Getting the Most from Each
Scrum and Kanban - Getting the Most from Each
 
Introduction to scrum & agile
Introduction to scrum & agileIntroduction to scrum & agile
Introduction to scrum & agile
 
Getting rid of agile in a few simple steps
Getting rid of agile in a few simple stepsGetting rid of agile in a few simple steps
Getting rid of agile in a few simple steps
 
The Essential Product Owner - Partnering with the team
The Essential Product Owner - Partnering with the teamThe Essential Product Owner - Partnering with the team
The Essential Product Owner - Partnering with the team
 
Kanban Explained Clearly
Kanban Explained ClearlyKanban Explained Clearly
Kanban Explained Clearly
 
Kanban Explained Clearly
Kanban Explained ClearlyKanban Explained Clearly
Kanban Explained Clearly
 
Scrum shuhari
Scrum shuhariScrum shuhari
Scrum shuhari
 
Agile Scrum at Double V3
Agile Scrum at Double V3Agile Scrum at Double V3
Agile Scrum at Double V3
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
Keep Calm and Use Kanban
Keep Calm and Use KanbanKeep Calm and Use Kanban
Keep Calm and Use Kanban
 
Montreal alm-20150509-benday-good-to-great-scrum-master
Montreal alm-20150509-benday-good-to-great-scrum-masterMontreal alm-20150509-benday-good-to-great-scrum-master
Montreal alm-20150509-benday-good-to-great-scrum-master
 
Handling Waterfall Nostalgia when Moving to Agile
Handling Waterfall Nostalgia when Moving to AgileHandling Waterfall Nostalgia when Moving to Agile
Handling Waterfall Nostalgia when Moving to Agile
 
The Fundamentals of Continuous Software Design
The Fundamentals of Continuous Software DesignThe Fundamentals of Continuous Software Design
The Fundamentals of Continuous Software Design
 
Scrum workshop - September 7, 2012
Scrum workshop - September 7, 2012Scrum workshop - September 7, 2012
Scrum workshop - September 7, 2012
 

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Agile Anti-patterns

Hinweis der Redaktion

  1. \n
  2. \n
  3. 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
  4. \n
  5. Identifying bad practices can be as valuable as identifying good practices.\n
  6. 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
  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. 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
  9. \n
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. \n
  27. 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
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n