Extreme Programming Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.

Slides:



Advertisements
Similar presentations
Effort and Schedule Estimation Copyright, 1999 © Jerzy R. Nawrocki Personal Software.
Advertisements

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.
Planning at CMM level 2 Copyright, 2000 © Jerzy R. Nawrocki Requirements Engineering.
Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
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.
Agile
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.
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.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
COMP4710 Senior Design Software Development Process.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Metody statystyczne Copyright, 2001 © Jerzy R. Nawrocki Doskonalenie Procesów Programowych.
Comparison of CMM Level 2 and eXtreme Programming Copyright, 2002 © Bartosz Walter Quality Connection 2002, Helsinki Poznan University of Technology Poznan,
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
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 **
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
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
EXtreme Programming: An Introduction Presentation by: Jon Banta.
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.
CMM Level 2: Repeatable Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Experimental Evaluation of Pair Programming Copyright, 2001 © Jerzy R. Nawrocki European Software Control & Metrics ESCOM’01 ESCOM’01 Poznan University.
Agile
What is S.E? Describe S.E in terms of its mistakes Standish Group ( US - $250 Billion on IT projects. 31% projects are cancelled 52.7%
Effort and Schedule Estimation Copyright, 2006 © L. Ouyang Liubo Ouyang Personal Software Process Lecture.
Implementing XP at PUT Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
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.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS3100 Software Project Management Agile Approaches.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
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.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
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.
CSC 480 Software Engineering Extreme Programming.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Toward Maturity Model for eXtreme Programming Copyright, 2001 © J. Nawrocki, B. Walter, A.. Wojciechowski
Requirements Engineering Lecture 4
Planning User stories are written.
Alexander Kanavin Lappeenranta University of Technology
Extreme Programming.
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Coming up: What is Agile?
Refactoring.
Extreme Programming.
Agile software development
Presentation transcript:

Extreme Programming Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 9

J. Nawrocki, PSP, Lecture 9 Plan of the lecture IntroductionIntroduction From the previous lectureFrom the previous lecture Approaches to IT system designApproaches to IT system design XP issuesXP issues ClosingClosing

J. Nawrocki, PSP, Lecture 9 Effort estimation begin.. end Estimatedsize Actualtime Historical data

J. Nawrocki, PSP, Lecture 9 Effort estimation begin.. end Estimatedsize Actualtime Historical data r 2 0.5

J. Nawrocki, PSP, Lecture 9 Effort estimation Estimated size Actual time 1. 0, 1 2. Effort = 1 * Estimated_size n Range = t 3. Range = t r Effort min = Effort - Range

J. Nawrocki, PSP, Lecture 9 Effort estimation begin.. end Actualsize Actualtime Historical data Lack of correlation between software size and actual time

J. Nawrocki, PSP, Lecture 9 Effort estimation Actual size Actual time Effort = Estimated_size / P av time time 2 size size 2 P av = 3. P min = min { size i / time i } P max = max { size i / time i } P max = max { size i / time i } 4. Effort min = Estimated_size/P max Effort max = Estimated_size/P min Effort max = Estimated_size/P min

J. Nawrocki, PSP, Lecture 9 Plan of the lecture IntroductionIntroduction From the previous lectureFrom the previous lecture Approaches to IT system designApproaches to IT system design XP issuesXP issues ClosingClosing

J. Nawrocki, PSP, Lecture 9 Approaches to IT system design Customer is a source of money.Customer is a source of money. Customer is a source of requirements.Customer is a source of requirements. Customer is a layman in IT.Customer is a layman in IT. Customer is a source of trouble.Customer is a source of trouble. Communication with a customer, due to his lack of understanding of IT, is ineffective and should be kept to minimum.Communication with a customer, due to his lack of understanding of IT, is ineffective and should be kept to minimum. Naive

J. Nawrocki, PSP, Lecture 9 Approaches to IT system design Customer is a source of money.Customer is a source of money. Customer is a source of requirements.Customer is a source of requirements. Customer is a layman in IT.Customer is a layman in IT. Customer is our partner and we need his domain knowledge.Customer is our partner and we need his domain knowledge. Communication with a customer is necessary but it needs facilitation.Communication with a customer is necessary but it needs facilitation.

J. Nawrocki, PSP, Lecture 9 Approaches to IT system design Customer is a source of money.Customer is a source of money. Customer is a source of requirements.Customer is a source of requirements. Customer is not necessarily an expert in IT but he is not a layman.Customer is not necessarily an expert in IT but he is not a layman. Customer is our boss, leader, and chief designer.Customer is our boss, leader, and chief designer. Good communication with our customer is necessary.Good communication with our customer is necessary.

J. Nawrocki, PSP, Lecture 9 Plan of the lecture IntroductionIntroduction From the previous lectureFrom the previous lecture Approaches to IT system designApproaches to IT system design XP issuesXP issues ClosingClosing

J. Nawrocki, PSP, Lecture 9 XP planning User stories are written. The Planning Game creates the schedule. Make frequent small releases. The project is divided into iterations. A planning meeting starts each iteration. A stand-up meeting starts each day. Move people around.Plan

J. Nawrocki, PSP, Lecture 9 XP designing Simplicity. Choose a system metaphor. Use CRC cards for design sessions. Create spike solutions to reduce risk. No functionality is added early. Class name Respons-ability Commu-nication

J. Nawrocki, PSP, Lecture 9 XP coding The customer is always available. Code must be written to agreed standards. All code is pair programmed. Leave optimisation till last. No overtime. Use collective code ownership. Integrate often. Only one pair releases code at a time. OK

J. Nawrocki, PSP, Lecture 9 XP testing All code must have unit tests. All code must pass all unit tests before it can be released. When a bug is found tests are created. Functional tests are run often and the score is published. Lets perform a unit test.. Help

J. Nawrocki, PSP, Lecture 9 XP disadvantages Lack of perspective. Potential for a lot of rework. Not every customer can be a leader. Not every customer will be able to spend so much time with you. Pair programming can break when a dominating character meets a shy one. It can be also less efficient. Collective code ownership requires a good documentation. I have enough

J. Nawrocki, PSP, Lecture 9 XP advantages Dynamic requirements. Involvement of the customer. Short feedback from the customer. The main responsibility is taken by the customer. Pair programming can be less efficient but more effective. If someone leaves it should not be a problem to find a substitute. No overtime. Great!!!

J. Nawrocki, PSP, Lecture 9 Plan of the lecture IntroductionIntroduction From the previous lectureFrom the previous lecture Approaches to IT system designApproaches to IT system design XP issuesXP issues ClosingClosing

J. Nawrocki, PSP, Lecture 9 Summary Extreme Programming: Strong co-operation with the customer Frequent small releases First prepare unit tests, then start coding Pair programming Collective code ownership

J. Nawrocki, PSP, Lecture 9 Further readings /rules.html

J. Nawrocki, PSP, Lecture 9 Quality assessment 1. What is your general impression ? (1 - 6) 2. Was it too slow or too fast ? 3. Did you learn something important to you ? 4. What to improve and how ?