Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.

Slides:



Advertisements
Similar presentations
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
Advertisements

NAUG NAUG Knowledge Evening – th February 2007.
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
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 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.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Extreme Programming Adam Cogan Database Architect ssw.com.au.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXPERT Best practices.
Extreme Programming > an agile methodology
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
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.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
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.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Extreme Programming Sylvain Giroux October 3 rd, 2000.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP (not Microsoft) e X treme P rogramming Can KOMAR
XP – Extreme Programming
EXtreme Programming Development Adrian Williamson People, Technology and People and Technology Consultant.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXPERT Best practices.
Extreme Programming David Li CTO, DigitalSesame. Problem in Developing Software The Basic Problem - Risk –Schedule slips –Project canceled –System goes.
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.
1/7/2004CSG - Project Delivery at UT Austin1 Making a Model Perform Adopting a methodology to your environment.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
CS3100 Software Project Management Agile Approaches.
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.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.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.
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 מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Software Development Process Models (II) Agile Methodologies Extreme Programming.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Appendix B Agile Methodologies
Extreme Programming.
Extreme Programming.
Waterfall and Agile Quality Techniques
eXtreme Programming (XP) and eXtreme Modeling (XM)
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Sylvain Giroux October 3rd, 2000
Appendix B Agile Methodologies
Agile software development
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming principles & practices Sylvia Ilieva, Eliza Stefanova Sofia University Radoslav Nemchev Nemetschek Penko Ivanov Rila Solutions

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming Principles Sylvia Ilieva Sofia University

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Contents Agile methodologies What is XP? Risk: the basic problem and how XP address risks Basic principles Basic activities Practices

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Agile alliance February 2001 – group of 17 people Agile word The manifesto Principles and recommendations

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Methodology Software development methodology – the set of conventions the team adopts Methodology can be lightened –By getting running software out for examination sooner –By increasing the richness of the communication channels Light delivers more quickly and with reduced cost

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Light methodologies XP Adaptive Software Development Scrum Crystal Feature Driven Development DSDM (Dynamic System Development Method)

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Why “extreme” XP takes commonsense principles and practices to extreme levels. If code reviews are good, we'll review code all the time (pair programming). If testing is good, everybody will test all the time (unit testing), even the customers (functional testing).

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Why “extreme”-2 If design is good, we'll make it part of everybody's daily business (refactoring). If simplicity is good, we'll always leave the system with the simplest design that supports its current functionality (the simplest thing that could possibly work). If architecture is important, everybody will work defining and refining the architecture all the time (metaphor).

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Why “extreme”-3 If integration testing is important, then we'll integrate and test several times a day (continuous integration). If short iterations are good, we'll make the iterations really, really short— seconds and minutes and hours, not weeks and months and years (the Planning Game).

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices XP promises To reduce project risk, To improve responsiveness to business changes, To improve productivity throughout the life of a system, To add fun to building software in teams all at the same time.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices What Is XP? XP is a –lightweight, –efficient, –low-risk, –flexible, –predictable, –scientific, and –fun way to develop software.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Innovation of XP Putting all proven practices (for the implementation strategy and for the management strategy) under one umbrella Making sure they are practiced as thoroughly as possible. Making sure the practices support each other to the greatest possible degree.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Risk: The Basic Problem Schedule slips Project canceled System goes sour Defect rate Business misunderstood Business changes False feature rich Staff turnover

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices How does XP address risks? Schedule slips –short Release cycles - a few months at most, –Iterations of customer requested features - one- to four-week. –Tasks - one- to three-day –implementing the highest priority features first

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices How does XP address risks?-2 Project canceled –XP asks the customer to choose the smallest release that makes the most business sense. System goes sour –comprehensive suite of tests, which are run and re-run after every change. –XP always keeps the system in prime condition.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices How does XP address risks?-3 Defect rate - XP tests from the perspective of –programmers - writing tests function-by function –customers - writing tests program- feature-by-program-feature. Business misunderstood –customer to be an integral part of the team.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices How does XP address risks?-4 Business changes –XP shortens the release cycle, so there is less change during the development of a single release. False feature rich –only the highest priority tasks are addressed. Staff turnover –programmers accept responsibility for estimating and completing their own work –human contact among the team

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices XP development cycle Pairs of programmers program together. Development is driven by tests. You test first, then code. Pairs don't just make test cases run. They also evolve the design of the system. Pairs add value to the analysis, design, implementation, and testing of the system. Integration immediately follows development, including integration testing.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Four variables Cost Time Quality Scope

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Four Values Communication Simplicity Feedback Courage

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Basic principles Rapid feedback Assume simplicity Incremental change Embracing change Quality work

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Less central principles Teach learning Small initial investment Play to win Open, honest communication Accepted responsibility Local adaptation

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Basic Activities Coding Testing Listening Designing

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Practices The Planning Game — Quickly determine the scope of the next release by combining business priorities and technical estimates. As reality overtakes the plan, update the plan. Small releases — Put a simple system into production quickly, then release new versions on a very short cycle.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Practices - 2 Metaphor — Guide all development with a simple shared story of how the whole system works. Simple design — The system should be designed as simply as possible at any given moment. Extra complexity is removed as soon as it is discovered.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Practices - 3 Testing — Programmers continually write unit tests, which must run flawlessly for development to continue. Customers write tests demonstrating that features are finished. Refactoring — Programmers restructure the system without changing its behavior to remove duplication, improve communication, simplify, or add flexibility.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Practices - 4 Pair programming — All production code is written with two programmers at one machine. Collective ownership — Anyone can change any code anywhere in the system at any time. Continuous integration — Integrate and build the system many times a day, every time a task is completed.

Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Practices hour week — Work no more than 40 hours a week as a rule. Never work overtime a second week in a row. On-site customer — Include a real, live user on the team, available full-time to answer questions. Coding standards — Programmers write all code in accordance with rules emphasizing communication through the code.