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