Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Introduction to
Agile Engineering Practices

           Yuval Yeret
    Agile Coach @ Agilesparks
     yuval@agilesparks.c...
What’s missing?
What is technical debt?
Henrik Kniberg
Driving Force - Change
Iterate / Inspect & Adapt
BIG Features
Longer iterations?
Agile Architecture/Design
                                Prepare for
                                 the future




Focu...
Share the work


• Reach a Shared Understanding

• Courage to work outside comfort
  zone

• Make it Easy to work anywhere...
Continuous
Collective Code  Coding Standards
                Refactoring
Design Patterns
Ownership (CI)
 Integration




 ...
45

         41.33

    40



    35

                 31.03
    30



%   25
                                            ...
Next Steps

Learn more about the engineering practices. Ask your teams questions
that will engage them in this learning as...
XP and Scrum
Ask us how!




                     info@agilesparks.com
                    yuval@agilesparks.com
Get the slides at http...
Go on, Jump into the details!
Continuous Integration
Agile Testing
Cost per cycle should be minimal  Automate Automate Automate!!!
 Unit / Integration / Acceptance / Regress...
Test-Driven Development/Design

TDD is a method of designing software, not
merely an approach to testing.
Over a period ...
Refactoring
 Refactoring increases
  flexibility and the
  product lifetime by
  allowing and
  encouraging
  developers ...
Design Patterns
 Knowledge
  Management - Avoid
  reinventing the wheel
 Improves Refactoring
  / TDD / Design
 Decidin...
Simplicity / Just in Time


Simplicity - the art of
 maximizing the amount of
 work not done - is essential.
How to evolve Design/Work


• Simple Design
• Design Patterns
• Agile Modeling
Simple Design
Start Simple

Evolve JUST IN TIME

YAGNI –
You Ain’t Going to Need it
Agile Modeling
 Just enough Modeling/Documentation
 Use the relevant model/artifact for the situation
 Only keep models...
Coding Standards


 Code must be formatted
  to agreed coding
  standards.
 Coding standards keep
  the code consistent
...
Collective Ownership
Collective Code Ownership
 encourages everyone to
 contribute new ideas to all
 segments of the proje...
Pair Programming
Two team
 members
 working on the
 same code base
 and working
 side-by-side
 (Also applicable
 to tests/...
Pair Programming ROI
Pair Programming ROI
Pair Programming ROI
Pair Programming ROI
Pair Programming
 Very effective, if a good cultural fit for the team.
    Hard to adopt, mainly due to personal space a...
Iterate / Inspect & Adapt

Our highest priority is to satisfy the
 customer through early and continuous
 delivery of valu...
Agile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
Prochain SlideShare
Chargement dans…5
×

Agile Eng Practices Agilesparks

2 123 vues

Publié le

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

Publié dans : Technologie
  • Soyez le premier à commenter

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?

×