Transitioning to XP or The Fanciful Opinions of Don Wells.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

Diane Pozefsky. Extreme Programming Flowchart
NAUG NAUG Knowledge Evening – th February 2007.
Tietojärjestelmien peruskurssi Software engineering Malin Brännback.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
EXtreme.NET Dr. Neil Roodyn. eXtreme.NET Who is Dr. Neil? MISSION: To increase the value of your Software Business Working with software for way too long.
Extreme Programming Collaboration in Software Development Process.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
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.
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.
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
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.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready Joe Bergin * Fred Grossman * David Leip **
Describing Methodologies PART II Rapid Application Development* Systems Analysis and Design II.
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
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
EXtreme Programming: An Introduction Presentation by: Jon Banta.
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.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
XP – Extreme Programming
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.
December Using Software Development Methodology (SDM) in the Third Teaching Unit (laboratory) CS Teachers Conference Dr. Orit Hazzan & Yael Dubinsky.
DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
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
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Copyright 2002 by RoleModel Software, Inc. Extreme Programming: So What? Roy W. Miller RoleModel Software, Inc.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
EXtreme Programming and Open Source engineering paradigm A comparison
CSC 480 Software Engineering Extreme Programming.
Software projects can be managed in terms of 4 variables ● Time ● Scope ● Resources ● Quality.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Software Development.
Planning User stories are written.
Alexander Kanavin Lappeenranta University of Technology
Extreme Programming.
Waterfall and Agile Quality Techniques
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Coming up: What is Agile?
Refactoring.
Agile Development – a new way of software development?
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Transitioning to XP or The Fanciful Opinions of Don Wells

XP Through the Ages The illusion of making promises to the customer and then keeping them More of what helps, less of what hinders Dials to ten The short list The 12 practices Agile methodologies

Are you doing XP? (The short List) Paradigm - Do you recognize change as the norm? Values - Do you work toward communication, simplicity, feedback, and courage Power sharing -- business makes business decisions and development makes technical decisions Distributed responsibility and authority -- people make commitments they will be accountable for Optimizing process -- Are you aware of what doesn’t work? Are you trying to fix it?

The 12 Practices The planning game Small releases Metaphor Simple design Testing Refactoring Pair Programming Collective ownership Continuous integration 40-hour work week On-site Customer Coding standards

Agile Methods Less emphasis on process, more emphasis on team work Greater emphasis on running code Work with your customers Greater emphasis on enabling change Fix the process when it breaks

Transitioning to XP Take care of your customer relationship first! Take stock of where your process is now. What is good about it? Change the process based on your findings Develop a set of values and goals Look at the mechanics of your process. Can you get more from less? Generalize about what you have

What Is So New? Attitude! Team work, real team work Testing as a part of development Less documentation

Team Work, Real Team Work Stand up meetings Pair programming Collective Code Ownership The customer is here with us Tell the truth

What Makes a Team Everyone contributes at their own level Everyone is in the yoke Everyone is of equal value to the project’s success If you miss something, your team will not

Testing As a Part of Development Get your hands on the unit testing framework and refactor it, make it your own. Unit tests help you decide what the public interface should look like. Unit tests help make the code more testable and thus more reliable. The coverage you need for legacy code is not as much as you think, black box tests boost your coverage quickly.

Less Documentation Planning instead of a plan User Stories instead of requirements CRC cards instead of design documents Tests instead of specifications The code speaks for it self instead of comments Metaphor instead of class diagrams You still need to create a User Manual

User Stories Stories must be backed up with a conversation Separate business and technical decisions Knowledge doesn’t fit on paper “These customers don’t know what they want” You must dig deep and ask questions

What Makes it So Hard? Social activities (communication) Rapidly spinning tight loops (feedback) Subjective criteria for success (simplicity) No fall back excuses (courage)

Social Activities (Communication) Pair programming CRC cards Talking to the customer Stand up meetings Iteration planning Release planning

Starting Pair Programming People who are willing Equal level Mix everyone with everyone else Have a teacher You can teach programming, and you can teach pair programming, but not at the same time

Three modes of Pairing Mentor-student Side by side True pair

Rapidly Spinning Tight Loops (Feedback) Continuous planning Iterative development Continuous integration Test first development

Iterative Development Take your deadlines seriously

Subjective Criteria for Success (Simplicity) How do I know a good metaphor? What is simple? How do I know what to refactor? Is this enough tests, or too many?

Simple Testable Browsable Understandable Explainable

Simplicity is a Balance Simplicity and complexity are the yin and yang of software As complexity is added to a system you must add simplicity in the right measure to balance.

Increasing Simplicity Good names Design patterns Refactoring Abstractions Object Oriented Programming Distributed Objects? Yes, but...

What is a good Metaphor? Story –Memorable –Based on knowledge –Guessable Code –The actors in the story –A few easy to read objects –Sweep them clean often

Knowledge is Compiled Information Information + Your brain (compiler) + Time Knowledge

No Fall Back Excuses (Courage) You don’t have time to cover your ass

What Makes it Successful? Social activities (communication) Rapidly spinning tight loops (feedback) Subjective criteria for success (simplicity) No fall back excuses (courage)

Prerequisites for XP Management support Customer support A team willing to try new things without being forced In other words everyone

Managers Look after the people and the project’s resources Solve process and organization problems Maintains the precious developer customer relationship Has a sense of direction and overall scope when the customer does not

One Way to Transition to XP Add one practice at a time Fix your worst problem first Encouragement for compliance No consequences for non-compliance Another Way to Transition to XP Start out by the book Change what ever doesn’t work

Transitioning Just because someone realizes what they have is not working does not mean they are ready for change.

XP Is Like a Roller Coaster Ride Click-click-click, as you go up the first hill Whoosh, you go fast and too soon the ride is over You slowly roll into the station calm and relaxed after the excitement and ready to go again