Extreme Programming Kent Beck, Ward Cunningham. Software Development History During the 1970s, it was discovered that most large software development.

Slides:



Advertisements
Similar presentations
Extreme Programming Patrick Mattis Alana Trafford Akarsh Sakalaspur.
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Agile Processes: eXtreme Programming
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Agile development By Sam Chamberlain. First a bit of history..
Agile
March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.
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.
Agile Software Development Matt Rice November 27, 2006.
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.
EXtreme Programming (XP) By: Alayna McBride Jason Young.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Agile Processes: eXtreme Programming Data taken from SDLC 3.0 book; Google; Scattered.
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 Engineering Modern Approaches
Agile Programming Principles.
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.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Agile Modeling Theory. 2 Agile Modeling (AM) AM is a chaordic, practices-based process for modeling and documentation AM is a collection of practices.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
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.
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.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Page 1 Copyright © 1999, RoleModel Software, Inc. An Introduction to Extreme Programming Ken Auer
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
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.
Confidential and Proprietary 1 Project Management using Scrum at Wachovia.
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.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Testing under the Agile Method CSCI 521 Software Project Management based on the book Testing Extreme Programming by Lisa Crispin and Tip House.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Presented By : Prima Business Solutions. Agile Software Development Process.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
Agile Methods SENG 301.
Agile Project Management and the yin & yang of
Software Development.
Valuable Project Management Tools and Techniques
Agile and XP Development
Agile and XP Development
Agile and XP Development
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Agile software development
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Extreme Programming Kent Beck, Ward Cunningham

Software Development History During the 1970s, it was discovered that most large software development projects failed. During the 1980s, many of the reasons for those failures began to be recognized. In the 1990s, experiments and measurements were used to validate individual methods to prevent failure. The current decade is characterized by complete processes to improve success.

Schedule Failure One of the primary causes of project failure was the extended period of time it took to develop a system. Costs escalated and requirements changed. Agile methods were developed to develop systems more quickly with limited time spent on analysis and design.

What are the Agile Methodologies? –FDD –dX (agile RUP) –Open Source –Agile Modeling –Pragmatic Programming eXtreme Programming has received the most attention, but here is a list: –XP –SCRUM –DSDM –The Crystal Family –ASD Since Larman is based on RUP, dX might be interesting.

What is Extreme about XP? A rheostat is a common electrical control. Most volume controls on audio devices are rheostats. It you want silence, turn the knob all the way to one side. For maximum volume, turn the knob all the way to the other side. XP treats good practices in programming as if they had rheostats, and turns all of them all the way up. See examples on next page?

Some eXtreme Practices Are code inspections good? Then code in pairs—all code is inspected all the time! Is testing good? Then write the unit test before the code, automate testing, and run all tests all the time. Is customer contact good? Then locate a customer representative in the team, so that you have access to them all the time.

Extreme Programming Explained

Four principles of XP Communication Simplicity Feedback Courage

Key Ideas in XP Code in Pairs Stay in Contact with the Customer Create Tests before Coding then Test Heavily Short Iterations Keep it Simple Don’t Anticipate: Code for Current Needs Collective Ownership

Update (Fall 2008) At this time, it seems that very few organizations are using eXtreme Programming as a methodology. However, the ideas within it, including test first and pair programming, short iterations, customer contact, no anticipation, and collective ownership have gone mainstream, and are widely practiced by many organizations.

Most "software development" books focus on one of two things: "Big Design Up Front" (BDUF) or "Nitty Gritty Details of Programming" (Hacking). This book does neither. It challenges the idea that disciplined software development implies lots of drawings and a CASE tool. Review by Ken Auer

It challenges the idea that "design" is a waste of time and you just need a good code hacker which you slide pizza to under the crack in the door. It speaks for the quietly successful minority of software developers who believe software that is worth anything is built by teams who communicate, and constantly pay attention to all the details necessary to make sure software development is successful in the eyes of both the customer and the software developer.

It speaks to those who know "there's got to be a better way" than the way typical software is developed, whether BDUF or hacking. And, oh, how it does it. Kent Beck masterfully makes the developer understand the concerns of the sponsor. He also masterfully makes the sponsor aware of what is necessary to get quality software that meets their changing needs.

If you think software is already done right, and refuse to allow this notion to be challenged, ignore this book... you'll hate it. Everyone else having anything to do with software, read it NOW. It will change the way you look at everything you do.

Description by Kent Beck Software development projects can be fun, productive, and even daring. Yet they can consistently deliver value to a business and remain under control. Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements.

Description by Kent Beck This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned.

Fundamentals of XP Distinguishing between the decisions to be made by business interests and those to be made by project stakeholders. Writing unit tests before programming and keeping all of the tests running at all times. Integrating and testing the whole system- several times a day.

Fundamentals of XP Producing all software in pairs, two programmers at one screen. Starting projects with a simple design that constantly evolves to add needed flexibility and remove unneeded complexity. Putting a minimal system into production quickly and growing it in whatever directions prove most valuable.

Why is XP so controversial? Don't force team members to specialize and become analysts, architects, programmers, testers, and integrators-every XP programmer participates in all of these critical activities every day. Don't conduct complete up-front analysis and design-an XP project starts with a quick analysis of the entire system, and XP programmers continue to make analysis and design decisions throughout development.

Why is XP so controversial? Develop infrastructure and frameworks as you develop your application, not up-front-delivering business value is the heartbeat that drives XP projects. Don't write and maintain implementation documentation- communication in XP projects occurs face-to-face, or through efficient tests and carefully written code.

Quotes from Book Jacket You may love XP or you may hate it, but Extreme Programming Explained will force you to take a fresh look at how you develop software. Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new lightweight methodology challenges many conventional tenets, including the long- held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned.

Extreme Programming Installed

Doing Extreme Programming While Kent Beck’s Extreme Programming Explained is a good resource for explaining Extreme Programming, it is not very helpful in actually trying to use the practices. Extreme Programming Installed, by Ron Jeffries, Ann Anderson, and Chet Hendrikson is a very good tool for teams that want to start using Extreme Programming.

Web Resources This Web Site has excellent materials on Extreme Programming: Students are required to understand XP. I have used material from this site on exams, so I suggest that every class member review it.