Agile and XP

15
Software Development Methodology An Insight into “Agile” and “XP”

Transcript of Agile and XP

Page 1: Agile and XP

Software Development Methodology

An Insight into “Agile” and “XP”

Page 2: Agile and XP

Software Development MethodologyCurrent Challenges

Rapid Changes in the technology – availability of frameworks, tools technologies etc

“Change is constant” - Frequent Changes in client requirements

Increasing customer awareness about software development and

tools & technologies

Traditional methodologies (like waterfall) not scaling to changes,

focus on documentation and are predictive & prescribed

heavily regimented, regulated and micromanaged.

Page 3: Agile and XP

Software Development MethodologyGoals of Software development Organization

Responsiveness to changes

Being competitive with quality and timeliness

Sustenance and Growth

Profitability

Establish ROI

Page 4: Agile and XP

Software Development MethodologyImportance of choice of methodology

The software development methodology can be thought of mechanism to meet challenges simultaneously achieving goals

TCO (total cost of ownership) can be said to be largely depending on

methodology chosen

Different methodologies have different efficiencies (Efficiency can be

decided by the quality of ultimate software product, the number of bugs

and the development time consumed)

Page 5: Agile and XP

Software Development MethodologyAgile (Philosophy & Characteristics)

Adaptive

Iterative

Incremental

Fundamental issue is communication and not documentation

Document the stable things, not speculative things.

Evolutionary approach to documentation development (seeking and

acting on feedback)

Page 6: Agile and XP

Software Development Methodology Agile (Philosophy & Characteristics)

Preference to executable work products such as customer test over static work products such as plain old documentation

Concise documentation – product overviews/road maps preferred over

detailed documentation (describing more than nitty-gritty)

High quality source code and test suite – needing a lot less system

documentation

Documentation shall be barely just good enough.

Page 7: Agile and XP

Software Development Methodology Agile (Philosophy & Characteristics)

Primary goal is developing software , secondary goal is to enable next development efforts

The benefit of having documentation must be greater than the cost of

creating and maintaining it.

Create documentation only when you need it at the appropriate point in

the life cycle.

Page 8: Agile and XP

Software Development Methodology Agile (Philosophy & Characteristics)

Update documentation only when it hurts

It is recognized that documentation is an intrinsic part of any

system, the benefits should outweigh the increased burden on

the team. It’s important to note that sometimes the benefits

are received by someone else other than the people

experiencing the costs, e.g. the development team is impacted

by the costs of creating system documentation that the

maintenance developers benefit from.

Page 9: Agile and XP

Software Development MethodologyXP (Philosophy & Characteristics)

Enough design Up front

On-Site customer

Pair Programming

Coding Standards

Simple design

User stories, CRC cards, sketches, test suite, acceptance tests

Concrete experiments

Page 10: Agile and XP

Software Development Methodology XP (Philosophy & Characteristics)

If you need it to do it – simple artifacts (documents etc)

Collective Ownership

Travel light

Communication – open and honest communication

Page 11: Agile and XP

Software Development MethodologySummary

Traditional software development methodologies were inherited from

hardware manufacture and strategies. In these methodologies, the

production cycle progresses sequentially. The basic belief is that the

considerable time spent in initial design effort would help correcting

bugs in advance. These were successfully implemented by many

organizations but the software industry has experienced the

limitations of these methods such as low ability to embrace changes,

overall quality not in correspondence with initial design efforts and

overall cost & efficiency.

Page 12: Agile and XP

Software Development MethodologySummary

Rise of new methodologies like Agile which represents the agility

and adaptability have given new direction to software

development. Efficiency of these methodologies have been

established to be better than traditional and also its resulting in

better client communication and satisfaction. Of course all such

methodologies have benefits and limitations and many a times

the combination of these methodologies could serve the purpose.

Page 13: Agile and XP

Software Development MethodologyConclusion

Given the dynamics of current businesses, frequent changes,

increased competitiveness and awareness, the agile (and XP)

methodologies can be the best bet which would give ability to

remain ahead of the curve. Such methodologies can adapted to

specific environments and some characteristics from traditional

methodology can be combined to find a good match and

suitability. Employing such methodologies would have impact on

organization structures, architectures and employees and of

course the business.

Page 14: Agile and XP

Software Development MethodologyReferences

Wikipedia

IBM - resources

Page 15: Agile and XP

Software Development Methodology

Big Thanks