Agile Software Development By Kshitij Limaye CSC 532.

16
Agile Software Development By Kshitij Limaye CSC 532

Transcript of Agile Software Development By Kshitij Limaye CSC 532.

Page 1: Agile Software Development By Kshitij Limaye CSC 532.

Agile Software Development

By

Kshitij Limaye

CSC 532

Page 2: 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

Page 3: Agile Software Development By Kshitij Limaye CSC 532.

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

Page 4: Agile Software Development By Kshitij Limaye CSC 532.

Agile Method

A method of software development that

aims for customer satisfaction through

early and continuous delivery of useful

software components[1]

Page 5: Agile Software Development By Kshitij Limaye CSC 532.

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]

Page 6: Agile Software Development By Kshitij Limaye CSC 532.

Key Differences

Agile methods are adaptive rather than predictive

Agile methods are people oriented rather than process oriented.

Page 7: Agile Software Development By Kshitij Limaye CSC 532.

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.

Page 8: Agile Software Development By Kshitij Limaye CSC 532.

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

Page 9: Agile Software Development By Kshitij Limaye CSC 532.

Working Software

Source code is most important document.

Working model makes understanding better.

Simplicity approach in XP.

Maintainers normally go through source code first.

Page 10: Agile Software Development By Kshitij Limaye CSC 532.

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

Page 11: Agile Software Development By Kshitij Limaye CSC 532.

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.

Page 12: Agile Software Development By Kshitij Limaye CSC 532.

Examples of Agile processes

Extreme Programming

Crystal

Adaptive software development

Feature driven development

Dynamic systems development method

Page 13: Agile Software Development By Kshitij Limaye CSC 532.

Implementing Agile Processes Job profiles will change, so resistance.

Management is also uncomfortable with agile processes.

agile processes decisions are not experimentation.

Page 14: Agile Software Development By Kshitij Limaye CSC 532.

Conclusion: When go agile?

Uncertain & volatile requirements.

Responsible & motivated developers

Customers who understand and willing to get involved.

Page 15: Agile Software Development By Kshitij Limaye CSC 532.

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

Page 16: Agile Software Development By Kshitij Limaye CSC 532.

Q & A