ICSM and Extreme Programming(XP)

Slides:



Advertisements
Similar presentations
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Advertisements

SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.
Chapter 6 Prototyping, RAD, and Extreme Programming
1 CMSC 132: Object-Oriented Programming II Software Development I Department of Computer Science University of Maryland, College Park.
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.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
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.
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
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 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
The Confounding World of Process Methodologies By Thelma Hataria.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
Solar Tech Chuck Hess, CEO Jamie Tofte, CFO Christina Cruz, CTO.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Life Cycles. Waterfall Advantages? Disadvantages? Well suited for what type of projects? Requirements Specification Design Coding Unit Testing Installation.
Comparison of CMM Level 2 and eXtreme Programming Copyright, 2002 © Bartosz Walter Web Applications and Services.
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Lecture #9 Processes to Develop Software in the Cloud.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
HRM-755 PERFORMANCE MANAGEMENT OSMAN BIN SAIF LECTURE: TWENTY THREE 1.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Development - Methodologies
Agile Project Management and the yin & yang of
Software Development.
Process 4 Hours.
Software Development Overview
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Software Development methodologies
INTRODUCTION TO SOFTWARE DEVELOPMENT
Methodologies By Akinola Soyinka.
EXtreme Programming BY R.V.Ramesh MCA II Semester.
Extreme Programming.
Waterfall and Agile Quality Techniques
Requirements and the Software Lifecycle
COMP 350: Object Oriented Analysis and Design Lecture 2
Software Development Process
What do you need to know about XP?
Paul Ammann The Agile Heresy: What Drives Traditional Software Engineering, and Why Agile Turns it Upside Down Paul Ammann.
Computer Science Life Cycle Models.
Agile Process: Overview
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Software engineering -1
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Chapter 3: Agile Software Processes
Appendix B Agile Methodologies
Extreme Programming.
Agile software development
Extreme Programming (and Pair Programming)
Software Development Process
Software Development Overview
Presentation transcript:

ICSM and Extreme Programming(XP) Tim Wahmhoff

Extreme Programming Agile process Rapid development Embrace change Less focus on documentation, more on coding Rapid development Working version to the customer as quickly as possible Embrace change Short development cycles Plan for change rather than attempt to establish stable requirements

Lifecycle

Similarities Emphasis on customer satisfaction User Stories Testing XP –Get to know the business process ICSM- WikiWinWin Conditions User Stories Combine requirements and use cases Testing Both emphasize unit tests and acceptance testing Requirement updates Similarity is both expect requirements to update and change throughout the cycle. Difference is that most of XP changes come during development of the system.

Differences I consider ICSM advantage Design with whole system in mind Better system architecture Documentation Development is slower, but transition is easier Doesn’t require experts Heavyweight generally better for less experienced developers.

Differences (Advantage XP) Early development The sooner you give the client something to play with the sooner you can start getting feedback Improves ability to actually assess how much work a requirement is going to be and keep client updated. Short development iterations Not actually prohibited by ICSM in 577ab Pair programming Again, although not prohibited in any way by ICSM, I think its incorporation into the 577ab development process could improve productivity

What is pair programming? Two programmers working side by side Design, Code, Test as a team Driver Controls keyboard and mouse Actually does the coding Navigator Provides strategic planning Looks for defects

When to use it Novice-Novice attacking complex problem Experiment with repeat programming Greatest benefit when both are inexperienced with implementing the feature Implementation of simple or familiar problems decreases the REAP

How and When for 577ab When team encounters non-trivial, unfamiliar feature When working on parts of the system that are critical to implementation of other parts of the system Training a novice One expert in a large section of the project Expert is the Driver Novice is the Navigator

Advantages of using pair programming Couples programming and debugging/code review Code reviews are more effective Know what you are reviewing Better designed and more extensible code Forces communication with regards to the code More Fun!

How 577ab would change Lab session to teach the basics of pair programming Assign a fairly simple problem to complete as a pair Driver vs. Navigator roles In the case of an unsettled dispute default to the driver, argument decreases group productivity Prior to prototyping if possible

Potential Difficulties for 577ab Overlapping Free Time Programmers strongly opposed to working in pairs Not an anticipated problem for all, but some personality types can clash Collocation Requires sharing a computer

Short Development Iterations Reasons IKIWISI Need client feedback "Optimism is an occupational hazard of programming, feedback is the treatment.” MuSCoW updates still satisfice.

How to change 577ab to incorporate No change in the ICSM, this is already allowed. Incorporate into weekly client meetings No new reports Require client meeting notes to contain product feedback as well as what was demonstrated.

Conclusions ICSM could improve even more by incorporating some the practices of Extreme Programming Pair programming Better designed, more reusable code Essential features created faster Short iteration cycles More customer feedback