Agile Software Development By Kshitij Limaye CSC 532
Agile Software Development By Kshitij Limaye CSC 532
Current Software Development Situation n Systems are regularly delivered late and over budget n Customer hardly works with developers after the requirements phase. n In radically changing market it is not possible to gather customer requirements that are stable and unchanging n Customer is not always sure of what he wants
Problems with Traditional Processes Concept design Product and feature specifications Coding Testing Response Time START DESIGN FROZEN END Problem: When the market/technology advances at a faster pace than you can respond [3]
Agile Method A method of software development that aims for customer satisfaction through early and continuous delivery of useful software components[1]
Uncertain Environments Stable Environments: Traditional Approach Uncertain Environments: Agile Approach (Iterative) Source [3]
Key Differences n Agile methods are adaptive rather than predictive n Agile methods are people oriented rather than process oriented.
Agile Process Philosophy n n Individuals and interactions over processes and tools. Working software over comprehensive documentation Customer collaboration over contract negotiations. Responding to change over following a plan.
Individuals & Interactions n Face to face meetings lead to faster transfer of ideas & quicker response. n Pair Programming n Individual not a replaceable part of system n Team takes technical decisions
Working Software n Source code is most important document. n Working model makes understanding better. n Simplicity approach in XP. n Maintainers normally go through source code first.
Customer Collaboration Vs Contract Negotiations n Preference to fixed price contracts. n Customer on site. n Customer has finer control over the project. n Different kind of business model needed. n Definition of Success
Responding to change n Responding to change than following laid out plan n In predictable processes, difficulty in mapping new requirement to additional cost. n Iterative approach n Teams with onsite customer produce better code.
Examples of Agile processes n Extreme Programming n Crystal n Adaptive software development n Feature driven development n Dynamic systems development method
Implementing Agile Processes n Job profiles will change, so resistance. n Management is also uncomfortable with agile processes. n agile processes decisions are not experimentation.
Conclusion: When go agile? n Uncertain & volatile requirements. n Responsible & motivated developers n Customers who understand willing to get involved.
References q Manifesto for Agile software development; http: //agilealliance. com q New methodology; Fowler; Martin; http: //www. martinfowler. com/articles/new. Methodology. html q Agile software development: Evidence from the field. Alan Mac. Cormack http: //www. agiledevelopmentconference. com/2003/ files/Alan. Agile. Software. Jun 03. ppt
Q&A
- Slides: 16