Agile Software Development Methodologies

Preview:

DESCRIPTION

Agile Software Development Methodologies. by Saravanan Bala. General Report. 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated it. One in every 2 projects exceeds its budget by 200 % * Gartner group IT Report 2007 - PowerPoint PPT Presentation

Citation preview

byby Saravanan BalaSaravanan Bala

General Report

31 % of Software projects are cancelled

75 % of the software projects are considered failures by the people who initiated it.

One in every 2 projects exceeds its budget by 200 %

* Gartner group IT Report 2007 * The Standish Group Chaos report 2000

Dam Construction

Traditional Models Vs Agile

Traditional models - building a fairly “large system” with large amount of design involved.

Changing business environment - turn around time of the software need to be very small

Competition and rapid changes – not always possible to have a system “requirement phase” which is complete.

When requirements – changing & coming in increments Iterative delivery of software is the only wayNecessitates a model to be followed.

Concurrency & The key difference

Agile Manifesto

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Existing Agile Methods

Extreme Programming (XP)ScrumFeature Driven Development Crystal family of methodologiesThe Rational Unified Process Dynamic Systems Development Method Adaptive Software Development Open Source Software development

Extreme Programming - Process

Roles & Responsiblilities

Programmer - Writes and tests codes.Customer - Writes stories and sets implementation priorityTester – Help customer write functional test and broadcast test

results regularlyTracker – Traces the estimates made by team , evaluates whether

the goal is reachable or notCoach - Responsible for the process as a wholeConsultant – External member possess specific technical knowledgeManager – Makes the decisions , communicates with the project

team

Extreme Programming - Practices

Planning game – Programmer estimate the effort needed and customer decides the timing of releases.

Small/Short releases – A simple system is productionized 2 to 3 months

Simple design – Simplest possible solution implemented rapidlyPair Programming – Two people writing at one computer Collective ownership - cross functionalContinuous Integration – New piece of code is integrated into the

code base as soon as it is ready

Extreme Programming - Practices

40 – hour week – max ,no two over time weeks allowed. If it happens , it is treated as problem to be solved.

Onsite customer – Customer has to be present and available full time for the team.

Coding standards – coding rules exist and followedJust rules – Can be changed with common consensus

Scope of usage:XP is aimed for small and medium sized teams limited between 3

and a maximum of 20 team members.

Scrum

The term 'scrum' originally derives from a strategy in the game of rugby where it denotes "getting an out-of play ball back into the game" with teamwork.

Scrum concentrates on how the team members should function in order to produce the system flexibly in a constantly changing environment.

Scrum - Process

Scrum - Roles & Responsibilities Scrum master – Responsible for ensuring the project is carried

according to practices, values, rules of scrum. Interacts with Team, customer and management.

Scrum team – It is the project team, organize to achieve the goal of each sprint.

Customer - Participates in the product backlog items

Management – Final decision making & setting goals.

Scope of use : Scrum is best suited for small teams of less than 10 engineers.

Conclusion

In case when software development is Incremental, co operative, adaptive we can use Agile methodology.

Agile is simply the latest theory that is widely accepted will change and evolve well into the future.

References

Dyba, T, Dingsoyr, T, “What Do We Know about Agile Software Development?” Proceedings of the Software IEEE on Sep – Oct 2008 sponsored by IEEE computer society.

Tichy, W.F, “Agile development: evaluation and experience” Proceedings of the 26th International Conference on Software Engineering in 2004.

Shi Zhong, Chen Liping, Chen Tian-en, “ Agile Planning & Development Methods “ Proceedings of the 3rd International conference on Computer Research and development (ICCRD) in Mar 2011.

Ferreira, J, Noble, J, Biddle, R, “Agile Development Iterations and UI Design”, Proceedings of the Agile 2007 conference.

Xiaofeng Wang , “The Combination of Agile and Lean in Software Development: An Experience Report Analysis”, Proceedings of the Agile conference 2011.

End

Recommended