Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Paying Technical Debt: A Top-Down Approach @Scd16

Paying Technical Debt: A Top-Down Approach @Scd16

Having developers do TDD and Agile places an enormous pressure on them, as TDD mindset is difficult to get accustomed to. Many people strongly dislike it when they first approach it like this, and there are better strategies to do that. Introducing some of the Agile practices (stories, sprints) in conjunction with BDD to an ongoing project enables developers to notice their mistakes early on and buys them on the testing side. After they get familiar with the approach, and feeling comfortable running test suites, it’s much easier to get the same people who initially were reluctant to TDD to embrace the bottom-up design emerging from unit tests.

Georgiana Gligor

May 20, 2016
Tweet

More Decks by Georgiana Gligor

Other Decks in Technology

Transcript

  1. PAYING TECHNICAL DEBT: A TOP-DOWN APPROACH SHOPWARE COMMUNITY DAY
 MAY

    2016 image source GEORGIANA GLIGOR
 TEKKIE CONSULTING
  2. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 Georgiana Gligor ✓ Geek. Mother. Do-er. ✓ Crafting LAMP enterprise- level apps since 2003 ✓ Architecture and DevOps consultant ✓ PHP Cluj Meetup Organizer
  3. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 Agenda ✓ What is technical debt? ✓ Team roles ✓ Bottom-up approach ✓ Top-down approach ✓ Getting things done
  4. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 Technical Debt Quadrant source: Martin Fowler Reckless Prudent Deliberate Inadvertent “We don’t have time for design” “We must ship now and deal with consequences” “Now we know how we should have done it” “What’s Layering?”
  5. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ July 31st 2012 ✓ lost everything in 45 minutes ✓ SMARS routing algorithm ✓ Power Peg functionality Knight Capital Group
  6. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ June 4th 1996 ✓ losses: > $370 million ✓ guidance system shut down after 37s ✓ reused inertial reference platform Ariane 5
  7. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 Team Roles Role Mentality Approach Level project manager trace system UX / UI usable & nice user software engineer build (sub)system tester break system DevOps maintain system
  8. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 Team Distribution developers UX / UI testers managers DevOps
  9. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ requires discipline ✓ tests cross the boundary of a single class ✓ collaborators: dummies / stubs / mocks ✓ dependencies can be slow ✓ tests become slow as they grow ✓ refactoring => removing unit tests TDD
  10. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 V-Model source: PA Consulting Group case study
  11. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ Release acceptance testing (RAT) / smoke testing ✓ Functional acceptance simple testing (FAST) ✓ Compliance acceptance testing ✓ Deployment acceptance testing Acceptance Testing
  12. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ Task-oriented functional tests (TOFTs) ✓ Forced-error tests (FETs) ✓ Exploratory testing ✓ etc. Feature-Level Testing
  13. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ each independent component is a different system ✓ kickstart makes a big difference Think System Level
  14. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ Where to start in the process ✓ What to test and what not to test ✓ How much to test in one go ✓ What to call the tests ✓ How to understand why a test fails Behaviour-Driven Development
  15. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 ✓ varies greatly, depending on project ▸ your product ▸ reseller ▸ outsource ✓ using BDD significantly lowers TCO Total Cost of Ownership
  16. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 Systematic Testing Methods component KPRWVU QWVRWVU UKFGGHHGEVU
  17. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 1. Conway, Melvin E. (1968). How Do Committees Invent? 2. Cook, Richard I. (1998). How Complex Systems Fail 3. Emery, Dale H. (2009). Writing Maintainable Automated Acceptance Tests 4. Nguyen, Hung Q., Bob Johnson, and Michael Hackett (2003). Testing Applications on the Web: Test Planning for Mobile and Internet-Based Systems. Wiley Publishing Inc. ISBN: 0-471-20100-6 5. North, Dan (2006). Introducing BDD Recommended Reading (1)
  18. Paying Technical Debt: A Top-Down Approach @ Shopware Community Day,

    MAY 2016 6. Fowler, Martin (2009). Technical Debt Quadrant 7. Gleick, James (1996). A Bug and A Crash 8. Martin, Robert Cecil (2009). A Mess is not a Technical Debt 9. Securities and Exchange Commission (2013). Administrative Proceeding File No. 3-15570 10. Seven, Doug (2014). Knightmare, A DevOps Cautionary Tale 11. PA Consulting Group (2011). Major UK water utility - Architecture and design assurance Recommended Reading (2)