AGILE flavors and start-ups Marina ShalmonVP of the Agile New England Chapter of ACM www.agilenewengland.org Director of Engineering at ROAM DATA www.roamdata.com November 25th, 2011
Main Agile concepts and how they fit in a start-up Increased customer interaction perfect fit Iterative perfect fit Change is expected and embraced perfect fit Respect for the developers’ need for focus No fit, serious challenge
What Agile is not and the fit with a start-up No speed at any cost Challenge No lack of architecture Could be a fit; depends on the start-up No lack of planning Perfect fit short term; less obvious long term No disorganization, chaos Good fit No unaccountability Good fit
AGILE Flavors Scrum – Overall methodology XP - Programming TDD - Testing Lean – avoiding waste Kanban – JIT scheduling They can be mixed and matched
Definition of “done” Designed (and documented; In code- doxygen, javadoc) Coded (submitted to SCM, compiling and building) Unit tested (J-unit, C-unit, N-unit) Test plans written Tested by QA Test automation written Integrated Release notes written Deployed
Training & Documentation Training is essential – so that all the players get on the same page – responsibility of Executive Management Requirements documentation – necessary, linked to product backlog – weak point, often missing - responsibility of Product Owners Architecture and design documentation – needed for maintaining the product, linked to code – responsibility of Engineering team Test documentation – needed for test coverage review and regression testing, no obvious universal place to recommend for keeping it, possibly with code – often missing - responsibility of Engineering team Release Notes – needed for Support, linked to Sprint backlog – responsibility of Engineering team
XP-Extreme Programming good fit in start-upsThe methodology takes its name from the idea that the beneficialelements of traditional software engineering practices are taken to"extreme" levels, on the theory that if some is good, more is better. Frequent "releases" in short development cycles (time boxing) – same as SCRUM (saS) Programming in pairs (specific to XP) or doing extensive code review and unit testing of all code avoiding programming of features until they are actually needed – can be used in SCRUM simplicity and clarity in code – can be used in SCRUM expecting changes in the customers requirements as time passes and the problem is better understood – saS frequent communication with the customer and among programmers – saS
TDD – Test Driven Development depends on the application Add a test – to a pre-existing mass of tests and code Run all tests and see if the new one fails Write some code – to satisfy the new test Run the automated tests and see them succeed Refactor code – to merge new functionality with pre- existing one, optimize, add error handling Repeat If issues, revert, rather than debug. Continuous Integration helps by providing revertible checkpoints
Lean software development good fit in start-ups From Toyota manufacturing Eliminate waste – unnecessary code, insufficient test, slow internal communication, bureaucracy Amplify learning – short feedback cycles, saS Decide as late as possible – iterative approach, saS Deliver as fast as possible – iterative approach, saS Empower the team – not micromanaging, saS Build integrity in – automated tests, refactoring, s.a.TDD See the whole - Think big, act small; fail fast, learn rapidly Use common sense
Kanban good everywhere Related to Lean and JIT, can be used with Scrum It means “signboard” or “billboard” Scheduling system based on limiting the number of work items in progress at any time Focused on work flow – on the time/steps it takes to get a work item done end-to-end – defined/coded/tested/deployed Uses Kanban cards, to signal readiness for next step (the JIRA Agile plug is a Kanban implementation)
Success stories Wind River – medium size company Small team, co-located, grass roots introduction, viral spread Accurev – start-up Four teams, geographically distributed, moving the whole company to Agile through external consultant training ROAM Data – start-up Many and varied teams, some of 2 people, some of 8, some co-located, some distributed – flexible approach
Failure stories Avaya – large company strong waterfall and MSProject biased organization, Agile not even attempted AS&E – medium size company tried to introduce Agile under the umbrella of a waterfall minded organization – no real progress possible
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.