Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.

Slides:



Advertisements
Similar presentations
© University of Glamorgan1 Extreme Programming and its effect on project management Second Computing Project Management Workshop 13 September 02, University.
Advertisements

Acceptance Testing.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Agile Development Chapter Extension 16. ce16-2 Study Questions Q1: Why is the SDLC losing credibility? Q2: What are the principles of agile development.
©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.
NAUG NAUG Knowledge Evening – th February 2007.
Customer Collaboration. Central Principles The customer is part of the team The customer plays key role in directing the team 1.
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 By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Management 421 Computer Science 350. Overview Project Roles Software Development Process Extreme Programming Management/Developer Interaction in Extreme.
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.
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
Current Trends in Systems Develpment
Describing Methodologies PART II Rapid Application Development* Systems Analysis and Design II.
Software Engineering CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
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.
EXtreme Programming: An Introduction Presentation by: Jon Banta.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
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.
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.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies Extreme Programming.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
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.
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.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
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.
CSC 480 Software Engineering Extreme Programming.
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.
Planning Extreme programming
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,
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)
Software Engineering 2004 Jyrki Nummenmaa 1 Why new software methodologies The classic waterfall-model based techniques are strongly based on the.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
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.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Software Development.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Planning User stories are written.
Alexander Kanavin Lappeenranta University of Technology
What do you need to know about XP?
Teaching slides Chapter 1.
eXtreme Programming (XP) and eXtreme Modeling (XM)
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Refactoring.
Appendix B Agile Methodologies
Extreme Programming.
Agile software development
Agile Development.
Extreme Programming (and Pair Programming)
Presentation transcript:

Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few simple examples

Common Breakdowns Problem: This isn’t what I wanted…. Problem: Six months of meetings and we have nothing to show for it… Problem: When we went to install this, we found out this will need to be done in Perl. Is that a problem? Problem: We just had this great idea. Forget what we told you last time...

Software Methodologies Formally Address… Requirement Analysis – Specifying what it needs to do System Design – Specifying how it will do it Implementation Techniques - Specifying when it will do it Deployment strategies – Specifying where it will do it … Providing techniques to accomplish each.

Making this connection is requirement analysis. It is where most projects fail. It is the hardest job for most programmers. Methods for this are critical!

From XP Agile UniverseXP Agile Universe THE Question For software developers

Evolutionary – Assumes customers will change their minds. Light-weight – Minimizes excessive documentation Fast – Produces tested software in 1 to 2 week cycles Rapid Assessment - Customers are activity involved in all phases. Hence, the term Agile

From the web site It is an excellent resource and I strongly recommend reviewing it.

XP Element – User Story They are a one to three sentence description of how the customer envisions using the system. They are written by the customer. They are written on 3” x 5” card. The programmer assigns a time estimate to it in terms of ideal programmer weeks. They are written in the language of the customer and not in programmer techno-jargon. Note that no lengthy requirement document is produced.

XP Element – User Story Some pages trigger the login mechanism and some don’t. The list of pages that do/don’t is dynamic. And the mechanism is triggered once per session. One day Taken from Extreme Programming in Practice By Newkirk and Martin

XP Element – Acceptance Test The customer must supply an acceptance test for each user story. It is detailed scenario that will determine whether the user story is operational. The customer is responsible for verifying accuracy. All acceptance tests are run whenever the system is changed in any way. Hence they should be automated.

XP Element – Acceptance Test Automated testing is facilitated through unit test software. Many packages to do this are on sourceforge.sourceforge A nice summary is found at

XP Element – Spike A small, simple program written to resolve uncertainty. Normally done to improve an time estimated associated with a user story. Expect to throw the effort away. Try not to spend much time doing it

User Story Summary Customer Programmer Writes Story Specifies Acceptance Test Verifies Acceptance Test Provides EstimateSpike

XP Element - Velocity The velocity of a set of user stories is the sum of the estimates, which is given in terms of ideal programmer weeks. The velocity of an individual is the number of ideal days per real days. (For example, velocity = ½ means it takes two real days to do an ideal day.)

Project Structure Each Project is subdivided into a series of Releases. Typically a release is of 1 to 3 months. Each release is sub-divided into Iterations. Each iteration is 1 to 3 weeks. Velocity is held constant.

XP Element – Release & Iteration Customer Programmer Determines User Story Priorities Selects user stories Within the constraint Determines Release Duration Determines velocity Limits number of user stories

XP Element – Release & Iteration Iteration duration: 1 real week Release duration: 3 iterations or 3 real weeks Individual velocity: 1/3 ideal days per real day Pair velocity: 2/3 ideal/real 15 real x 2/3 ideal/real = 10 ideal days allowed for the release roughly 3 ideal days for each iteration Alway s work in pairs No overtime Allowed !

XP Element - Task The user stories selected for an iteration are broken down into programming tasks. These tasks are written on index cards like user stories. Tasks are written by programmers in the language of programmers. Programmers are allowed to select their own tasks. A time estimate in ideal days is assigned to each task by the programmer who selected it.

XP Element – Task Registration Servlet Task Pull data from HTML input. If present in database go to “forgot password” screen. Else Generate password. Insert user into database. password to then go to login screen. Jim 4 hours Taken from Extreme Programming in Practice By Newkirk and Martin

XP Element –Iteration & Task Customer Programmer Determines User Story For iteration Moves user stories to Next iteration, if needed Determines Programming Tasks Estimates time on task Estimates iteration velocity There are two time estimates for an iteration: user story view & task view

Writing the Code Unit tests are written first. All programming is done in pairs. Two people work on a shared computer. Only one pair integrates at a time. No overtime!

Testing the code All code must have unit tests based on the acceptance tests. All code must pass unit tests before it can be released. Errors lead to new unit tests. Acceptance test scores are published.

From the web site It is an excellent resource and I strongly recommend reviewing it.