1 Department of Computer Science, University of Sheffield An introduction to eXtreme Programming Professor Mike Holcombe.

Slides:



Advertisements
Similar presentations
1 Department of Computer Science, University of Sheffield eXtreme Programming - Practices Dr. Marian Gheorghe.
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
An Introduction to eXtreme Programming Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
Agile Development.
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
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 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.
03/12/2001 © Bennett, McRobb and Farmer Managing Object-Oriented Projects—DSDM and XP Based on Chapter 21 of Bennett, McRobb and Farmer: Object.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
CompSci 230 Software Design and Construction
Software Engineering Modern Approaches
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Current Trends in Systems Develpment
Extreme Programming(XP)
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 **
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.
1 Aligning Development and Testing Lifecycles Software & Systems Quality Conferences United Kingdom rd October 2006 Facilitated by Graham Thomas.
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
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.
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.
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.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
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.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
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.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
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.
Presented By : Prima Business Solutions. Agile Software Development Process.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Extreme Programming.
Agile and XP Development
Software & Systems Quality Conferences United Kingdom 2006
Agile and XP Development
Agile and XP Development
Coming up: What is Agile?
Refactoring.
Extreme Programming.
Agile software development
Extreme Programming (and Pair Programming)
Presentation transcript:

1 Department of Computer Science, University of Sheffield An introduction to eXtreme Programming Professor Mike Holcombe

2 Department of Computer Science, University of Sheffield Plan Why are lightweight methodologies emerging? Problems with design-based approaches. Removing unnecessary bureaucracy. The promise of eXtreme Programming, (XP).

3 Department of Computer Science, University of Sheffield Lightweight methodologies are approaches which reduce the impact of expensive parts of the software engineering life cycle. Typically this means reducing the complexity of the process and making it less bureaucratic. Also, trying to make it more human friendly.

4 Department of Computer Science, University of Sheffield Lightweight methodologies focus on building quality software - rather than on creating vast amounts of documentation that is often: incomplete, inconsistent and unintelligible!

5 Department of Computer Science, University of Sheffield XP tries to address issues where current software engineering fails i.e.: the dynamic nature of modern business by the time the design is done it is out of date; as business needs change the software has to evolve – this is hard to do.

6 Department of Computer Science, University of Sheffield The four basic principles of XP Communication Feedback Simplicity Courage

7 Department of Computer Science, University of Sheffield The twelve sacred tenets of XP 1.Test first programming. Before writing any code programmers build a set of tests. These tests are run – of course they will fail as no code has been written! Why would one do this?

8 Department of Computer Science, University of Sheffield To get used to testing continuously – At the end of a session, at the end of the day, whenever a small piece of code has been built - ALL the test sets are run, this means - all the relevant unit tests, all the functional tests.

9 Department of Computer Science, University of Sheffield The test sets are the most important resource and are continually enhanced. The customer helps to supply tests. Functional tests are derived from the planning game (see below). The test sets replace the specification. If any tests fail the code must be fixed.

10 Department of Computer Science, University of Sheffield 2. The planning game The customer provides business stories and estimates are made about the time to build software to implement the stories. Programmers use story cards to define the stories The customer decides which stories provide the most business value. The programmers then implement them.

11 Department of Computer Science, University of Sheffield 3. Small, frequent releases Release early and release often. This is like incremental delivery or RAD. 4. Always use the SIMPLEST design that adds business value. Over-complicated systems are usually bad systems which are difficult to test and maintain.

12 5. System metaphor. Programmers define a handful of classes and patterns that shape the core business problem and solution. A kind of top level architecture. This might be written on a whiteboard. Some aspects may change as we learn more about what we are building. Department of Computer Science, University of Sheffield

13 Department of Computer Science, University of Sheffield 6. On-site customer. Encourages intense face-to-face dialogue. Not always practical. We must have very good communication with ALL the key players in our client’s business.

14 7. Refactoring. Restructuring code without changing its functionality. Used mainly to SIMPLIFY code – make it more understandable, more maintainable. Avoid distributed methods, large complex classes etc. Department of Computer Science, University of Sheffield

15 Department of Computer Science, University of Sheffield 8. Pair programming. Two people - One machine. All code must be written in this way. This is continuous review and gives a much greater understanding of what is being done. Pairs swap around frequently. Different pairs form up regularly.

16 Department of Computer Science, University of Sheffield 9. Collective code ownership. ALL the code belongs to ALL the programmers. Anyone can change anything. There are house rules for writing and documenting code and for communicating between teams.

17 Department of Computer Science, University of Sheffield 10. Coding standards. Defines rules for shared code ownership and for communication between different team’s code. Consistent class and method naming. Everyone should use the same coding styles.

18 Department of Computer Science, University of Sheffield 11. Continuous integration. Code is integrated into the system at least a few times every day. All unit tests must pass prior to integration. All relevant functional tests must pass afterwards.

19 Department of Computer Science, University of Sheffield 12. Forty hour week. Tired programmers write poor code and make more mistakes. Programmers don’t have to be heroes! Planning our time is vital to save pain later.

20 Department of Computer Science, University of Sheffield It is quite hard to stick with ALL these rules - XP requires discipline. Some teams need a “coach” to ensure that they do stick to XP! There have been successes as well as failures with XP – More research is needed.

21 Department of Computer Science, University of Sheffield It is demanding For the programmers – they need to develop all round skills For the clients – they need to give up more time For managers – they need to trust their teams more But it raises the profile of testing!

22 Does it work? Some comparative empirical evidence that it does. Different teams using XP and traditional methods building the same systems for the same client. XP delivered better quality, quicker with less stress. Department of Computer Science, University of Sheffield

23 What are the problems with XP? The biggest problem is with the functional test sets. Study the approach in the XP4Real book. The system metaphor development also needs care. And can it work for big projects? Department of Computer Science, University of Sheffield

24 Department of Computer Science, University of Sheffield Proper support is needed Support for managing XP projects Support for XP testing Support for training and reinforcing the XP principles Support for code conventions

25 XP in Genesys Solutions Introduced XP in Both new projects and maintenance projects Popular with most programmers but not all. It’s easy to degenerate into bad habits. Regular reinforcement of the philosophy is needed. Department of Computer Science, University of Sheffield

26 An XP intranet We have found that the development of this sort of support has helped Genesys to adopt XP better. Test environments, planning support, resource estimation, code convention templates, test convention templates etc. are all available. Their use can be monitored. Department of Computer Science, University of Sheffield

27 Non-functional requirements Increasing these need testing in a sophisticated way. Specialist testers will have to oversee this. Usability, reliability, accessibility, etc. All these issues require specialists. Department of Computer Science, University of Sheffield

28 Department of Computer Science, University of Sheffield Summary. The whole point about XP is that it is an agile process. It will develop and adapt to changing needs.

29 Collecting data about the process and using it for process improvement Supplying data for resource estimations in the planning game. Checking compliance. Department of Computer Science, University of Sheffield Things for Genesys to do

30 Some very successful XP based companies are developing a more thorough QA process for XP. QA departments can operate alongside XP development teams in a highly effective way. QA is just rather different in an XP environment. Department of Computer Science, University of Sheffield

31 Success stories Workshare and Connextra are two prominent UK companies using XP very successfully. The QA department at Workshare has expanded with the adoption of XP! Department of Computer Science, University of Sheffield

32 References: Kent Beck “Extreme programming explained.” Addison-Wesley, K. Beck & M. Fowler, “Planning extreme programming.” Addison-Wesley, Ron Jeffries, Department of Computer Science, University of Sheffield

33 Acknowledgements (all members of the Verification and Testing Group, University of Sheffield): Francisco Macias, Kirill Bogdanov, Marian Gheorghe, Tony Simons Salim Vanak Department of Computer Science, University of Sheffield