Agile Eng Practices Agilesparks

1,917 views

Published on

Why Agile engineering practices are key to having a highly successful Agile project, and what exactly are they

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,917
On SlideShare
0
From Embeds
0
Number of Embeds
67
Actions
Shares
0
Downloads
2
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide
  • Scrum/Agile Projects introduce several challenges/forces that are easier to deal with when leveraging agile engineering practicesEngineering practices are key to getting high ROI on Agile adoption, and to continued improvement of the product development organization.  Scrum is an agile Project management frameworkIn Scrum, Engineering practices are up to the team to defineSince Scrum is a light-weight framework, it is easy to plug agile engineering practices into it.
  • Compressed Cycle compared to waterfallSymptom:everything slows down (“we don’t have time to develop anything, we test 50% of the time”)Done is not really Done. PSP==Potentially S#!*ty ProductNeed to minimize cost of stuff repeated per iteration – enable effective small batches
  • Symptoms:Our features/user stories are too big to fit into one iteration – we need LONGER iterations..We need a long time to nail down the design for this. Our PSP for this iteration is a high-level design…Solution?Effective User Story Analysis to create Minimum Marketable Features (MMF)DesignEither do all design up frontOr have a growing evolutionary designEveryone works on highest priority – EVEN if outside comfort zoneNeed to improve collective code ownershipDevelopers need to feel safe to work everywhere in the team’s codebase
  • Symptoms:Our features/user stories are too big to fit into one iteration – we need LONGER iterations..We need a long time to nail down the design for this. Our PSP for this iteration is a high-level design…Solution?Effective User Story Analysis to create Minimum Marketable Features (MMF)DesignEither do all design up frontOr have a growing evolutionary designEveryone works on highest priority – EVEN if outside comfort zoneNeed to improve collective code ownershipDevelopers need to feel safe to work everywhere in the team’s codebase
  • Symptoms:Our features/user stories are too big to fit into one iteration – we need LONGER iterations..We need a long time to nail down the design for this. Our PSP for this iteration is a high-level design…Solution?Effective User Story Analysis to create Minimum Marketable Features (MMF)DesignEither do all design up frontOr have a growing evolutionary designEveryone works on highest priority – EVEN if outside comfort zoneNeed to improve collective code ownershipDevelopers need to feel safe to work everywhere in the team’s codebase
  • Agile Eng Practices Agilesparks

    1. 1. Introduction to Agile Engineering Practices Yuval Yeret Agile Coach @ Agilesparks yuval@agilesparks.com Mobile: 054-4802458
    2. 2. What’s missing?
    3. 3. What is technical debt?
    4. 4. Henrik Kniberg
    5. 5. Driving Force - Change
    6. 6. Iterate / Inspect & Adapt
    7. 7. BIG Features
    8. 8. Longer iterations?
    9. 9. Agile Architecture/Design Prepare for the future Focus on the NOW / Just in Time
    10. 10. Share the work • Reach a Shared Understanding • Courage to work outside comfort zone • Make it Easy to work anywhere in the code
    11. 11. Continuous Collective Code Coding Standards Refactoring Design Patterns Ownership (CI) Integration Test Driven Design/Development Pair Programming Agile Testing
    12. 12. 45 41.33 40 35 31.03 30 % 25 Total 20 17.88 15 10 5.8 5 2.29 1.73 0 PSPsm XP Agile Scrum ISO9001 CMMI®
    13. 13. Next Steps Learn more about the engineering practices. Ask your teams questions that will engage them in this learning as well. Evaluate how YOUR engineering practices/level are affecting your agile environment Pay attention to Technical Debt, Batch cost, knowledge silos as part of your Inspect and Adapt cycle – Leverage your Scrum retrospectives Encourage teams to establish an engineering level backlog and assign capacity to work on it. Setup the right measures, communicate the right message. Consider carefully whether to pick and choose practices or adopt a methodology like Extreme Programming
    14. 14. XP and Scrum
    15. 15. Ask us how! info@agilesparks.com yuval@agilesparks.com Get the slides at http://www.slideshare.net/yyeret/agile-eng-practices- agilesparks-v2
    16. 16. Go on, Jump into the details!
    17. 17. Continuous Integration
    18. 18. Agile Testing Cost per cycle should be minimal  Automate Automate Automate!!!  Unit / Integration / Acceptance / Regression Lean test documentation –  Consider Exploratory Testing where applicable.  Focus on outline, elaborate details verbally as you go, or trust testers to do the right thing. QA Measurements should drive Agile Testing Minimize freeze/stabilization time  Aim for shorter length, and consider it a maturity sign  How? • Maximize quality delivered for regular sprints • Maximize efficiency of manual test work • Did we mention Automate?
    19. 19. Test-Driven Development/Design TDD is a method of designing software, not merely an approach to testing. Over a period of time, as a side effect, TDD will lead to suite of automated unit tests.
    20. 20. Refactoring  Refactoring increases flexibility and the product lifetime by allowing and encouraging developers to change the design of the system as needed.  Quality to market and costs are reduced because continuous Refactoring keeps the design from degrading over time and thus making it harder to modify the product correctly”
    21. 21. Design Patterns  Knowledge Management - Avoid reinventing the wheel  Improves Refactoring / TDD / Design  Deciding when to use – Experience/Skill of professional developers
    22. 22. Simplicity / Just in Time Simplicity - the art of maximizing the amount of work not done - is essential.
    23. 23. How to evolve Design/Work • Simple Design • Design Patterns • Agile Modeling
    24. 24. Simple Design Start Simple Evolve JUST IN TIME YAGNI – You Ain’t Going to Need it
    25. 25. Agile Modeling  Just enough Modeling/Documentation  Use the relevant model/artifact for the situation  Only keep models you REALLY need to maintain. Its ok to model and throw away later
    26. 26. Coding Standards  Code must be formatted to agreed coding standards.  Coding standards keep the code consistent and easy for the entire team to read and refactor.
    27. 27. Collective Ownership Collective Code Ownership encourages everyone to contribute new ideas to all segments of the project. Any developer can change any line of code to add functionality, fix bugs, or refactor. No one person becomes a bottle neck for changes.
    28. 28. Pair Programming Two team members working on the same code base and working side-by-side (Also applicable to tests/etc. – not just code)
    29. 29. Pair Programming ROI
    30. 30. Pair Programming ROI
    31. 31. Pair Programming ROI
    32. 32. Pair Programming ROI
    33. 33. Pair Programming  Very effective, if a good cultural fit for the team.  Hard to adopt, mainly due to personal space and lack of privacy issues, as well as individuality.  Try and Buy - on writing User Stories, debugging of difficult defects/code areas, for Code reviews of critical production code, etc.
    34. 34. Iterate / Inspect & Adapt Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. BUT - iterating is HARD and expensive?

    ×