Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Seven Deadly Sins


Published on

Software projects accumulate many kinds of debt. Each debt comes in the form of small qualitative shortcomings we (knowingly or unknowingly) choose to ignore in the name of shipping. They cause friction -- and over time they can combine to easily grind momentum to a halt if left unchecked. While these kinds of debt can in fact be useful (if not necessary) to creating software - teams need to understand the nature of their shortcomings to prevent "velocity bankruptcy."

In this talk we'll discuss the nature of process antipatterns by using classical ideas related to "unproductive behavior" as a guide: hitting on shortcomings in culture, empathy, discipline, morale, organization, preparedness, and requirements. We'll discuss examples, tips on identifying the risks in your own projects, and how to decide when to avoid, mitigate, or accept and track these risks.

Presented at:
- Abstractions ii
- RubyConf 2019
- PhillyRB Meetup - December 2019

Video available here:

Published in: Software
  • Be the first to comment

  • Be the first to like this

Seven Deadly Sins

  1. 1. Seven Deadly Sins Process Anti-Patterns and Project Failure HindsightHindsight
  2. 2. Brian McElaney (he/him) Senior Vice President, Technology
  3. 3. Things Go Wrong Size, Shape, Industry, Funding, Process… doesn’t seem to matter
  4. 4. A Tale of Tech Debt
  5. 5. • Improved Conversion Rates • Massive Revenue Increase • Lower Cost • Improved Content Governance
  6. 6. Debt is a Good Thing Until It’s Not Debt Only Works For You When Managed Vietnam Telecom by Shawn Harquail from Flickr
  7. 7. Project Debts are a Friction Problem No single debt is likely to destroy a project – but friction compounds
  8. 8. Seven Deadly Sins • Anger • Desire • Envy • Gluttony • Greed • Pride • Sloth The Seven Deadly Sins and the Last Four Things by Hieronymus Bosch from Wikipedia
  9. 9. Anger Strong or hostile response to a perceived provocation
  10. 10. A Tale of Six Teams
  11. 11. Parallel Works But things need to stay in sync DSC_1735 by @usarmyband
  12. 12. Coordination Debt Trading clarity of communication for “speed”
  13. 13. Watermelon by Rafael Moreno Watermelon Effect Tasks reported as ok when inside they are not ok
  14. 14. Schrödinger’s Scope No one knows the cost until long after the work is done
  15. 15. Get In Sync Visual Feature Documentation Iterative Prototypes Well Documented APIs “North Star” Design
  16. 16. Get In Sync Check Out: - Ivan Nemytchenko – “Less Abstract” - Keavy McMinn – “Principles of Awesome APIs”
  17. 17. Desire Intense longing for a fulfilling of emotion
  18. 18. A Tale of Impossible Tasks
  19. 19. Some Efforts Require Extra Effort You Don’t Sprint Triathlons 140504-M-QH615-097 by @DOD
  20. 20. Glorifying Martyrdom “But for some, ‘hustle’ is just a euphemism for extreme workaholism.” -- Dan Lyons “In Silicon Valley, Working 9 to 5 is for Losers” (NYT 2017)
  21. 21. Morale Debt Risking Emotional Safety in the Name of Shipping
  22. 22. Ernesto Tagwerker :: Escaping The Tarpit
  23. 23. Hope Creep Allowing Aspiration Estimates to Hide the True Cost of an Effort Popular Meme: Original Source Unknown
  24. 24. Plan More Granularly Pair/Mob Programming Reduce Planned Velocity Ship We do pair programming in the class by Brandon Carson from Flickr
  25. 25. Go Home We do pair programming in the class by Brandon Carson from Flickr
  26. 26. Envy Pain at the sight of another’s good fortune
  27. 27. Ignoring Real World Workarounds
  28. 28. Limit Scope We Can’t Make Everyone Happy Macaroons by Olga Khomitsevich from Flickr
  29. 29. Empathy Debt Training Teams to Think of Real-World Users as Stress Cases
  30. 30. Context Is More Than Just Permissions
  31. 31. Build Diverse Teams Build User Validation in to Schedule Devs Participate in User Testing Meet Your Users
  32. 32. Gluttony Over-Indulgence Particularly as a Status Symbol
  33. 33. Tale of The Next Great Thing
  34. 34. Always Be Improving Great is Almost Always Iterative Pecan-smoked Chocolate Tarts w/jalapeño jam - photo and plating by @krooooop
  35. 35. Velocity Follows Patterns Avoid Mismatches
  36. 36. Contentment Debt Always Reaching for the Next Best Tool
  37. 37. Define Patterns and Stick To Them Leave Refactor Time Bring Entire Team in on Architecture Find Your Patterns
  38. 38. Breakfix Satisfies A Ticket Resolves a Code Smell Introduces New Architecture Young’s Hierarchy of Pull Requests
  39. 39. Greed Inordinate or insatiable longing for material gain
  40. 40. A Tale of Saving Too Much
  41. 41. Cost Cutting Not the same as making money
  42. 42. Politics-Oriented Development “Why Can’t We Just” feature planning
  43. 43. No Budget is Limitless
  44. 44. Prioritize Business Value Measure Impact Stay Agile Stay Lean
  45. 45. Pride Irrationally corrupt sense of one's personal value Peacock by Mathias Appel from Flickr
  46. 46. Tale of the 10X Engineer
  47. 47. Fast is Great Every relay race has an anchor 2015 Inter-Agency Games by ITU Pictures
  48. 48. It’s Not “Brave” To Embrace Anti-Patterns Fast Context Changes Bad Behavior Code Review Exemptions
  49. 49. Show Your Work Code Reviews as Education Education-Oriented Culture Value Simplicity
  50. 50. Easy Enough For All Processes should be repeatable by everyone on the team
  51. 51. Sloth ”Without Care”
  52. 52. It’s Not About “Slow” “Don’t Move Faster Than The Speed of Good Ideas” -- @MrkPlt
  53. 53. A Tale of Orientation Debt A Plan Without a Goal
  54. 54. It Can Be OK to Cut Corners to Hit a Budget
  55. 55. When it’s a Problem Putting off the wrong decisions Exclusive focus on short term cost Popular Meme: Original Source Unknown
  56. 56. Move With Purpose Tackle Biggest Risks First Continuous Refactor Defer Hard to Change Decisions
  57. 57. In conclusion
  58. 58. Thank You Slack: Mac @ RailsConf2019 Mac @ PhillyDev Company: @ThinkCompany Twitter: @McElaney Instagram: mac_in_philly