Agile and XP Development

Slides:



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

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
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.
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Agile
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
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.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
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
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
CS3100 Software Project Management Agile Approaches.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Extreme Programming Based on and
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
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)
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.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Agile Methods SENG 301.
Agile Methodology and Scrum
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Extreme Programming.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Planning User stories are written.
Rapid software development
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
What do you need to know about XP?
Agile Process: Overview
Agile and XP Development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 3 – Agile Software Development
Agile and XP Development
Coming up: What is Agile?
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Introduction to XP.
Appendix B Agile Methodologies
Extreme Programming.
Agile software development
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Agile and XP Development Dan Fleck 2008 Coming up: What is Agile?

What is Agile? Software development practice aimed at: Individuals and interactions over processes and tools 
 Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on 
the right, we value the items on the left more. - Excerpt from The Agile Manifesto Coming up: What is Agile?

What is Agile? A classification of methodologies that adhere to the agile principles Developed at a conference in Utah in 2000 Agile Manifesto (agilemanifesto.org) documentation Coming up: An Agile Process

An Agile Process Is driven by customer descriptions of what is required (scenarios) Recognizes that plans are short-lived Develops software iteratively with a heavy emphasis on construction activities Delivers multiple ‘software increments’ Adapts as changes occur Coming up: eXtreme Programming (XP)

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

XP Fundamentals Take the good things we do and turn them up to 10! Simplicity Communication Feedback Courage Simplest thing that could possibly work All problems are a result of poor communication Feedback - constant, objective feedback on how the system is doing (automated!) Coming up: XP Practices

XP Practices The Planning Game Refactoring Continuous Integration Small Releases Metaphor On-site Customer Simple Design Pair Programming Test-Driven Development Refactoring Continuous Integration Collective Ownership Coding Standards Sustainable Pace Coming up: The 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. Coming up: Planning Game

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

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. Coming up: The Whole Team

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

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 Coming up: Continuous Integration

Continuous Integration The whole system is built and tested several times a day Automated testing is required (see TDD later) Coming up: 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 Coming up: Example System Metaphor

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. Coming up: Sustainable Pace

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

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) Coming up: Collective Ownership

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 Coming up: Test Driven Development (TDD)

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 Coming up: Refactoring

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! Coming up: XP Project People

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

Tracker Tracker Coach Tracks release plan Watches everything 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! Coming up: When not to use XP

When not to use XP Customer requires a big specification Large teams > 100 -- 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: Summary

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 Coming up: References

References These references were used to create these slides: http://xp123.com/xplor/xp0004/ http://www.objectmentor.com/omSolutions/agile_xp_differences.html Beck K., Extreme Programming Explained, 2000 Pressman R., Software Engineering: A Practitioner’s Approach, 6/e, 2005 Coming up: References