Introduction to Agile Software Development EECS 690 Agile Software Development
Agenda Research Consent Forms Problem with Software Engineering Motivation for Agile Methods Agile Manifesto Principles into Practice Team Assignment Requests
Problem Statement How do you successfully develop working and reliable software, within budget and on time, given ever changing requirements?
Problems with Software Engineering Software Engineering coined at NATO Science Conference (1968) Waterfall Model (1970) Industrial Age approach Spiral Model (1986) Risk-based, iterative approach
Motivation for Agile Methods In 1990s, current software development models could not handle changing requirements.
Agile Manifesto Developed by proponents of various agile methods in Utah in February 2001. Purpose to find common ground among diverse agile approaches. Result development of document that articulates common agile values and principles (http://agilemanifesto.org/).
Agile Manifesto Signatories Kent Beck (XP) Mike Beedle (Scrum) Arie van Bennekum (DSDM) Alistair Cockburn (Crystal) Ward Cunningham (XP, Wiki) Martin Fowler (XP) James Grenning (TDD) Jim Highsmith (ASD) Andrew Hunt (Pragmatic) Ron Jeffries (XP) Jon Kern Brian Marick (Agile Testing) Robert C. Martin (Patterns, XP) Steve Mellor (Executable UML) Ken Schwaber (Scrum) Jeff Sutherland (Scrum) Dave Thomas (Pragmatic)
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.
Agile Manifesto Principles 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Agile Manifesto Principles 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Agile Manifesto Principles 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility.
Agile Manifesto Principles 10.Simplicity--the art of maximizing the amount of work not done--is essential. 11.The best architectures, requirements, and designs emerge from self-organizing teams. 12.At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Principles in Practice extreme Programming (XP) developed by Kent Back in late 1990s. XP is one of the most popular agile software development methods. Underlying principle of XP: flatten the cost curve of changing requirements.
Principles in Practice XP has 4 values: 1. Communication 2. Simplicity 3. Feedback 4. Courage
Principles in Practice XP has 13 Practices: 1. Whole Team 2. The Planning Game 3. Small Releases 4. Customer Tests 5. Simple Design 6. Pair Programming 7. Test-Driven Development http://xprogramming.com/what-is-extreme-programming
Principles in Practice XP has 13 Practices: 8. Design Improvement 9. Continuous Integration 10.Collective Code Ownership 11.Coding Standard 12.Metaphor 13.Sustainable Pace http://xprogramming.com/what-is-extreme-programming
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.
In preparing for battle I have always found that plans are useless, but planning is indispensable. - General Dwight D. Eisenhower
QUESTIONS?