Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Agile Development.
NAUG NAUG Knowledge Evening – th February 2007.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile
6 December ’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
EXtreme Programming By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Software Development Landscape
Software Engineering Modern Approaches
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme Programming Daniel Baranowski 3/29/06. What is Extreme Programming? An agile development methodology Created by Kent Beck in the mid 1990’s A.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
EXtreme Programming: An Introduction Presentation by: Jon Banta.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
5. Planning.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
Agile
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS3100 Software Project Management Agile Approaches.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Extreme Programming (XP) XP is an agile methodology: –aims to be responsive to change Theme running through XP is the importance of communication –amongst.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Planning User stories are written.
Alexander Kanavin Lappeenranta University of Technology
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Chapter 3 – Agile Software Development
Agile and XP Development
Coming up: What is Agile?
Extreme Programming.
Agile software development
Extreme Programming (and Pair Programming)
Presentation transcript:

Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010

Coming up: XP Fundamentals eXtreme Programming (XP) »Predates Agile »XP was created by Kent Beck at DaimlerChrysler in 1996 »Kent Beck attended the conference in Utah, »Is probably the best-known and most complete “agile-method” »Very programmer-focussed »Predates Agile »XP was created by Kent Beck at DaimlerChrysler in 1996 »Kent Beck attended the conference in Utah, »Is probably the best-known and most complete “agile-method” »Very programmer-focussed so extreme he never smiles?!?

Coming up: XP Practices XP Fundamentals »Take the good things we do and turn them up to 10!  Simplicity  Communication  Feedback  Courage »Take the good things we do and turn them up to 10!  Simplicity  Communication  Feedback  Courage

Coming up: The Planning Game XP Practices »The Planning Game »Small Releases »Metaphor »On-site Customer »Simple Design »Pair Programming »Test-Driven Development »The Planning Game »Small Releases »Metaphor »On-site Customer »Simple Design »Pair Programming »Test-Driven Development »Refactoring »Continuous Integration »Collective Ownership »Coding Standards »Sustainable Pace »Refactoring »Continuous Integration »Collective Ownership »Coding Standards »Sustainable Pace

Coming up: Planning Game The Planning Game »Distinguish between business people’s decisions and developer’s decisions »Short iterations (1-2 weeks) »Each iteration satisfies a number of user- stories »Total time for user stories cannot exceed previous iteration’s user story time  Velocity is a measure of the number of stories finished during an iteration. »Distinguish between business people’s decisions and developer’s decisions »Short iterations (1-2 weeks) »Each iteration satisfies a number of user- stories »Total time for user stories cannot exceed previous iteration’s user story time  Velocity is a measure of the number of stories finished during an iteration.

Coming up: XP - User Stories Planning Game Write a Story (Customer) Spike a Story (Developer) Estimate a story (Developer) Split a Story (Customer) Sort stories by value (Customer) Declare velocity (Developer) Choose scope (Customer) Exploration Planning “too big” “don’t know how”

Coming up: The Whole Team XP - User Stories »Similar purpose as use cases  Written by customers  Estimated by developers  Replaces large requirements documents  Represents anything that is “progress” to the customer  Examples: »Students can purchase monthly parking passes online. »Parking passes can be paid via credit cards. »Parking passes can be paid via PayPal »Professors can input student marks. »Students can obtain their current seminar schedule. ・ Students can order official transcripts. »Similar purpose as use cases  Written by customers  Estimated by developers  Replaces large requirements documents  Represents anything that is “progress” to the customer  Examples: »Students can purchase monthly parking passes online. »Parking passes can be paid via credit cards. »Parking passes can be paid via PayPal »Professors can input student marks. »Students can obtain their current seminar schedule. ・ Students can order official transcripts.

Coming up: Small Releases The Whole Team (onsite customer) »Communication is key!  Developers, business analysts, QA, project management, customers, etc… all work in one room  Maximizes collaboration »Communication is key!  Developers, business analysts, QA, project management, customers, etc… all work in one room  Maximizes collaboration

Coming up: Continuous Integration Small Releases »Systems released to production (or pre-production) very frequently (2-3 months maximum, 1 month is better!) »Much easier to plan next month than the next 6 months »Systems released to production (or pre-production) very frequently (2-3 months maximum, 1 month is better!) »Much easier to plan next month than the next 6 months

Coming up: System Metaphor Continuous Integration »The whole system is built and tested several times a day »Automated testing is required (see TDD later) »The whole system is built and tested several times a day »Automated testing is required (see TDD later)

Coming up: Example System Metaphor System Metaphor »Establishes common vocabulary for the system »Consistent naming of classes and methods »Names should be easy to learn and relate to »Establishes common vocabulary for the system »Consistent naming of classes and methods »Names should be easy to learn and relate to

Coming up: Sustainable Pace Example System Metaphor »Examples: Shared blackboard  An Expert puts a Problem on the Board.  There are a number of Experts sitting around: when anyone sees a problem they can solve (or know how to break into easier sub-problems), they do so.  There's a protocol that defines, "Who gets the chalk next?" and "When are we done?" »This metaphor suggests a few potential problems:  experts have different skills, and they may not necessarily agree on how to solve a particular problem.  The chalkboard may become a scarce resource.  The most knowledgeable person may find they're doing all the work.  We may have "experts" who aren't as good as they think they are. »Examples: Shared blackboard  An Expert puts a Problem on the Board.  There are a number of Experts sitting around: when anyone sees a problem they can solve (or know how to break into easier sub-problems), they do so.  There's a protocol that defines, "Who gets the chalk next?" and "When are we done?" »This metaphor suggests a few potential problems:  experts have different skills, and they may not necessarily agree on how to solve a particular problem.  The chalkboard may become a scarce resource.  The most knowledgeable person may find they're doing all the work.  We may have "experts" who aren't as good as they think they are.

Coming up: Pair Programming Sustainable Pace »Coding is a marathon, not a sprint. »Team works 40 hours a week - MAXIMUM! »Tired people aren’t productive »Coding is a marathon, not a sprint. »Team works 40 hours a week - MAXIMUM! »Tired people aren’t productive

Coming up: Collective Ownership Pair Programming »All code is written in pairs »One developer writes code while the other thinks about the code  Is the overall system going to work  Are there better ways of doing this  What test cases still don’t work »Pairs switch roles frequently (every two hours or so) »All code is written in pairs »One developer writes code while the other thinks about the code  Is the overall system going to work  Are there better ways of doing this  What test cases still don’t work »Pairs switch roles frequently (every two hours or so)

Coming up: Test Driven Development (TDD) Collective Ownership »No individual owns any piece of the software. All pieces may be worked on by any team member »Coding Standard - All team members must abide by a coding standard »No individual owns any piece of the software. All pieces may be worked on by any team member »Coding Standard - All team members must abide by a coding standard

Coming up: Refactoring Test Driven Development (TDD) »Write automated unit tests FIRST »Tests must run and fail before code is written »Code then written until unit tests pass »Coding must STOP when unit tests pass (no extra features/functions) »No previously working unit tests can fail »Write automated unit tests FIRST »Tests must run and fail before code is written »Code then written until unit tests pass »Coding must STOP when unit tests pass (no extra features/functions) »No previously working unit tests can fail

Coming up: XP Project People Refactoring »All code is continuously reviewed and cleaned. Working code is not enough -- must be clean! »Simple Design - the simplest working design that satisfies the task at hand is used. More complex and general designs may become useful, but not now so we don’t use them! »All code is continuously reviewed and cleaned. Working code is not enough -- must be clean! »Simple Design - the simplest working design that satisfies the task at hand is used. More complex and general designs may become useful, but not now so we don’t use them!

Coming up: Tracker XP Project People »Customer »Developers »Project Manager »Tracker »Coach »Customer »Developers »Project Manager »Tracker »Coach

Coming up: When not to use XP Tracker »Tracker  Tracks release plan  Tracks iteration plan  Tracks acceptance tests (passed/failed) »Tracker  Tracks release plan  Tracks iteration plan  Tracks acceptance tests (passed/failed) »Coach  Watches everything  Responsible for the process (keep it extreme!)  Helps with anything else needed… but stay back to let the team be self- reliant! »Coach  Watches everything  Responsible for the process (keep it extreme!)  Helps with anything else needed… but stay back to let the team be self- reliant!

Coming up: Summary When not to use XP »Customer requires a big specification »Large teams > no way! Approx 15 people max. »If your solution requires you to create complex solutions for future problems (exponential cost curve) »When you can’t get feedback immediately (space shuttle?) »When you can’t get people physically close together (same room) »Customer requires a big specification »Large teams > no way! Approx 15 people max. »If your solution requires you to create complex solutions for future problems (exponential cost curve) »When you can’t get feedback immediately (space shuttle?) »When you can’t get people physically close together (same room)

Coming up: References Summary »eXtreme Programming is a set of practices that conform to Agile principles »XP is one of many Agile methods: DSDM, Crystal, FDD, SCRUM, and others… »These processes are a logical next step from the older “prescriptive” or “heavyweight” processes »eXtreme Programming is a set of practices that conform to Agile principles »XP is one of many Agile methods: DSDM, Crystal, FDD, SCRUM, and others… »These processes are a logical next step from the older “prescriptive” or “heavyweight” processes

End of presentation References »These references were used to create these slides:   tions/agile_xp_differences.html tions/agile_xp_differences.html  Beck K., Extreme Programming Explained, 2000  Pressman R., Software Engineering: A Practitioner’s Approach, 6/e, 2005 »These references were used to create these slides:   tions/agile_xp_differences.html tions/agile_xp_differences.html  Beck K., Extreme Programming Explained, 2000  Pressman R., Software Engineering: A Practitioner’s Approach, 6/e, 2005