Agile Software Development Methodologies

18
by by Saravanan Bala Saravanan Bala

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

Transcript of Agile Software Development Methodologies

Page 1: Agile Software Development Methodologies

byby Saravanan BalaSaravanan Bala

Page 2: Agile Software Development Methodologies

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

Page 3: Agile Software Development Methodologies

Dam Construction

Page 4: Agile Software Development Methodologies

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.

Page 5: Agile Software Development Methodologies

Concurrency & The key difference

Page 6: Agile Software Development Methodologies

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

Page 7: Agile Software Development Methodologies

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

Page 8: Agile Software Development Methodologies

Extreme Programming - Process

Page 9: Agile Software Development Methodologies

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

Page 10: Agile Software Development Methodologies

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

Page 11: Agile Software Development Methodologies

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.

Page 12: Agile Software Development Methodologies

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.

Page 13: Agile Software Development Methodologies

Scrum - Process

Page 14: Agile Software Development Methodologies

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.

Page 15: Agile Software Development Methodologies

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

Page 16: Agile Software Development Methodologies

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.

Page 17: Agile Software Development Methodologies

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.

Page 18: Agile Software Development Methodologies

End