• Save
Agile Eng Practices Agilesparks
Upcoming SlideShare
Loading in...5
×
 

Agile Eng Practices Agilesparks

on

  • 2,209 views

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

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

Statistics

Views

Total Views
2,209
Views on SlideShare
2,153
Embed Views
56

Actions

Likes
4
Downloads
2
Comments
0

7 Embeds 56

http://www.agilesparks.com 30
http://agilesparks.wordpress.com 11
http://agilesparks.com 8
http://yuvalyeret.com 4
http://iscrum.ning.com 1
http://www.slideshare.net 1
http://www.agilesparks.co.il 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Agile Eng Practices Agilesparks Presentation Transcript

  • Introduction to Agile Engineering Practices Yuval Yeret Agile Coach @ Agilesparks yuval@agilesparks.com Mobile: 054-4802458
  • 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 Focus on the NOW / Just in Time
  • Share the work • Reach a Shared Understanding • Courage to work outside comfort zone • Make it Easy to work anywhere in the code
  • Continuous Collective Code Coding Standards Refactoring Design Patterns Ownership (CI) Integration Test Driven Design/Development Pair Programming Agile Testing
  • 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®
  • 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
  • XP and Scrum
  • Ask us how! info@agilesparks.com yuval@agilesparks.com Get the slides at http://www.slideshare.net/yyeret/agile-eng-practices- agilesparks-v2
  • Go on, Jump into the details!
  • Continuous Integration
  • 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?
  • 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.
  • 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”
  • Design Patterns  Knowledge Management - Avoid reinventing the wheel  Improves Refactoring / TDD / Design  Deciding when to use – Experience/Skill of professional developers
  • 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 you REALLY need to maintain. Its ok to model and throw away later
  • 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.
  • 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.
  • Pair Programming Two team members working on the same code base and working side-by-side (Also applicable to tests/etc. – not just code)
  • 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 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.
  • 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?