200 likes | 408 Views
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
E N D
Agile Software Development Methodologies bySaravanan 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
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 way • Necessitates a model to be followed.
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) • Scrum • Feature Driven Development • Crystal family of methodologies • The Rational Unified Process • Dynamic Systems Development Method • Adaptive Software Development • Open Source Software development
Roles & Responsiblilities • Programmer - Writes and tests codes. • Customer - Writes stories and sets implementation priority • Tester – Help customer write functional test and broadcast test results regularly • Tracker – Traces the estimates made by team , evaluates whether the goal is reachable or not • Coach - Responsible for the process as a whole • Consultant – External member possess specific technical knowledge • Manager – 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 rapidly • Pair Programming – Two people writing at one computer • Collective ownership - cross functional • Continuous 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 followed • Just 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 - 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.