Iterative Rework: The Good, the Bad, and the Ugly

Slides:



Advertisements
Similar presentations
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Advertisements

1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 4 Quality Assurance in Context
Chapter 2 – Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
1 Independent Verification and Validation Current Status, Challenges, and Research Opportunities Dan McCaugherty IV&V Program Manager Titan Systems Corporation.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Software Life Cycle Model
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Foundation Degree IT Project Methodologies (for reference)
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
1 CMPT 275 Software Engineering Software life cycle.
Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
1 SWE Introduction to Software Engineering Lecture 4.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct Sp8Jan22iterdev2.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development Life Cycle (SDLC)
Lectures 2 & 3: Software Process Models Neelam Gupta.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
1 Requirements Engineering for Agile Methods Lecture # 41.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
CS223: Software Engineering
Software Development - Methodologies
Software Development Overview
Agile Project Management Athanasios Podaras
Game Design, Development, and Technology
Software Processes (a)
Chapter 2 SW Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
The V Model The V Model Damian Gordon Damian Gordon.
Software Processes.
Software Development Process
How to Successfully Implement an Agile Project
Foundation Degree IT Project
Chapter 2 Software Processes
Chapter 9 – Software Evolution and Maintenance
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Chapter 3 – Agile Software Development
Capability Maturity Model
Software Processes.
Chapter 8 Software Evolution.
Extreme Programming.
Capability Maturity Model
Software Development Overview
Presentation transcript:

Iterative Rework: The Good, the Bad, and the Ugly Richard E. Fairley and Mary Jane Willshire, “Iterative Rework: The Good, the Bad and the Ugly”, Computer Cover Feature, Sept. 2005, pp. 34-41. SE 516 Technical Article Presentation Yvonne Krashkevich

Iterative Rework: The Good, the Bad, and the Ugly Abstract As the famous Greek philosopher, Heraclitus proclaimed “The only thing that is constant is change”, so too is it common to find change in today’s software development projects.  Varying degrees of change can adversely impact project delivery, budget and quality.  Given this state of flux, rework is both inevitable and beneficial, however, knowing how to balance too much verses too little is the key to a project’s success or failure. This article focuses on the nature of rework and why it occurs.  The article also reviews a process for collecting rework data to determine associated root causes, identify rework trends and to isolate avoidable rework.  Identifying and correcting the root causes of avoidable rework improves productivity, quality, profits and ultimately customer satisfaction.

Iterative Rework: The Good, the Bad, and the Ugly Iterative Development Models Continuously integrate and validate the evolving product Frequently demonstrate progress Alert developers early on about problems Deliver subset capabilities early on Systematically incorporate the inevitable rework that occurs in software development

Iterative Rework: The Good, the Bad, and the Ugly Agile Development Five principles of Agile process models Continuously involve the customer Develop test cases/scenarios before releasing the next version Implement and test the next version Periodically deliver subsets of the product

Iterative Rework: The Good, the Bad, and the Ugly Agile Development cont. Steps in the Agile Development Process Hear customer story Specify Requirements Add new features; review, test and rework Demonstrate capabilities Iterations occur in cycles of one day or less Note: “Requirements and Architecture Evolve”

Iterative Rework: The Good, the Bad, and the Ugly Incremental Build Based on stable requirements and architecture Partitions the design into prioritized build sequences Each build adds capabilities to the incrementally growing product Build-validate-demonstrate iterations Versions can overlap Customer is usually not in the loop

Iterative Rework: The Good, the Bad, and the Ugly Premise of Iterative Development - Rework is inevitable It provides the ability to gracefully modify the current version of an evolving product while adding capability to produce the next version It avoids the well known pitfalls of massive integration, testing and rework encountering in the waterfall model.

Iterative Rework: The Good, the Bad, and the Ugly Four Dimensions Characterize Software

Iterative Rework: The Good, the Bad, and the Ugly Types of Rework Evolutionary Modifies one or more of the current version’s four dimensions to provide new capabilities in the next version Due to change in requirements that developers were not aware of when developing the current version. Avoidable Work that no one would have to do had the previous work been correct, complete and consistent (i.e. satisfied it’s requirements)

Iterative Rework: The Good, the Bad, and the Ugly Rework Taxonomy

Iterative Rework: The Good, the Bad, and the Ugly Distinguishing Between Good and Bad The fuzzy part is interpretation Customers say that they are only clarifying requirements the developers should have understood (i.e. retrospective) The developers maintain that the customers changed the requirements (i.e. evolutionary)

Iterative Rework: The Good, the Bad, and the Ugly Collecting and Analyzing Rework Data The goal is to identify major trends and determine the rework’s root causes Four common techniques Anecdotes Observation Record keeping Automation

Iterative Rework: The Good, the Bad, and the Ugly How Much is Acceptable? Rule of thumb – rework is acceptable at 10 -20% of the total effort More than 20% of the total effort indicates problems in the work process Less than 10% indicates insufficient reviewing, revising and testing

Iterative Rework: The Good, the Bad, and the Ugly Dealing with the Ugly – How Control Charts Work Excessive Insufficient

Iterative Rework: The Good, the Bad, and the Ugly Rework can amount to 80% of all work Effort is saved by reducing defect, this reducing avoidable rework

Iterative Rework: The Good, the Bad, and the Ugly Six key questions to Process Improvement

Iterative Rework: The Good, the Bad, and the Ugly Conclusion Identifying and correcting the root causes of avoidable rework improves productivity, quality, profits and ultimately customer satisfaction.

Iterative Rework: The Good, the Bad, and the Ugly Questions???