240 likes | 422 Views
Introduction to Agile Methodologies and Concepts. Roy Osherove Principal, Team Agile www.TeamAgile.com Blog : ISerializable.com. Methodology. Code – and – fix (long test/debug phase) Methodology (more predictable, efficient) Detailed process, big on planning Engineering methodologies
E N D
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile www.TeamAgile.com Blog: ISerializable.com
Methodology • Code – and – fix (long test/debug phase) • Methodology (more predictable, efficient) • Detailed process, big on planning • Engineering methodologies • Successful? popular? criticized? • Lightweight methodologies (agile) Process Cowboy Agile
Engineering Predictive Process-Oriented Agile Adaptive People-Oriented Agile properties
Predictive vs. adaptive • Separation of Design and Construction • Comparative cost • The Unpredictability of Requirements • Is Predictability Impossible? • Pretending • Controlling an unpredictable Process
Predictive vs. adaptive (2) • The Adaptive Customer • Different relationship • Fixed price? • Needs stable requirements (predictive) • Customer loses more even if 0$ paid • Success = On time & on cost • Can fix time & budget, but not scope • Finer grained control by the customer • Responsive development • Visibility (manage risks early) • Success = Customer value > cost
Putting People First • Plug Compatible Programming Units • Predictable process requires predictable parts • Good with machines ~= bad with people • Careful what you wish for • Programmers are Responsible Professionals • Managing a People Oriented Process • Accepting the process • Equal part for management and team
Putting people first (2) • The Difficulty of Measurement • Measurement based management is good for simple things • We can’t measure software • Delegatory management • The Role of Business Leadership • Teams need contact with business expertise (customer) • Not occasional communication, but constant • The self adaptive process
The Methodologies • XP • The Crystal family • MSF- Agile • Highsmith's ASD (Adaptive Software Development) • Scrum • Feature Driven Development • DSDM (Dynamic Systems Development Method) • Rational Unified Process? (dX)
The Agile Manifesto “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. “
Stepping towards Agile Development • Daily Stand Up Meetings • Daily Build (CI) • Unit Testing (+ TDD?) • Customer Testing • Mixed Teams • Smaller Iterations
What is XP? A brief introduction Communication, Simplicity Feedback, Courage
When to use XP • dynamically changing requirements • Risky projects • Small dev groups (up to 100) • Non-fixed scope(price) contract
Planning Release Planning Iterations Planning User Stories Small Releases Measure Project Velocity Move People around Stand up meeting Designing Simplicity System Metaphor CRC cards Spike solutions YAGNI Refactor Simple rules and practices
Coding Customer available Code standards Test-Driven Pair Programming Sequential change integration Integrate often Collective code ownership Don’t optimize early No overtime Testing Unit test everything All tests pass before release Bug== new test Acceptance tests Simple rules and practices
Thank You! Roy@TeamAgile.com www.TeamAgile.com