Case Study of Agile Development Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 1.

Slides:



Advertisements
Similar presentations
Requirements Specification and Management
Advertisements

Lecture # 2 : Process Models
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.
Ch 3 System Development Environment
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 1 The Systems Development Environment
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1.1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
What is Business Analysis Planning & Monitoring?
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
CSI315 Web Technology and Applications
Test Organization and Management
Chapter 2 The process Process, Methods, and Tools
Chapter 1 The Systems Development Environment
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Software Engineering COSC 4460 Class 4 Cherry Owen.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Smart Home Technologies
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 7: Delivery, Installation, and Documentation Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Chapter 5: Coding Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
Chapter 2: Project Management Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Automated Software Testing
Methodologies and Algorithms
IS301 – Software Engineering V:
Lecture 3 Prescriptive Process Models
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Life Cycle “What happens in the ‘life’ of software”
IEEE Std 1074: Standard for Software Lifecycle
Software Processes (a)
Introduction to Software Engineering: Second Edition
Software Engineering PPT By :Dr. R. Mall.
Chapter 2 SW Process Models
Object oriented system development life cycle
Chapter 2: Software Process Models
Chapter 16 – Software Reuse
Introduction to Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Tools of Software Development
Agile Process: Overview
Software Process Models
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 2: Software Process Models
Lecture # 7 System Requirements
Chapter 16 – Software Reuse
Rapid software development
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
SDLC (Software Development Life Cycle)
Rapid Application Development (JAD)
Presentation transcript:

Case Study of Agile Development Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Development Case Study: Project Management Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Processes – the Team It all starts with the team – Small – seven members – Highly experienced in the application domain (spacecraft and satellite control systems) – Worked well together – Charismatic leader – Excellent relationship with upper-level management Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Processes – the Management Highly supportive Trusted the team Had the same goals – More – Better – Cheaper – Faster Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Processes – the Customers Really wanted – More – Better – Cheaper – Faster Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Processes - The context The seven-member team was part of a larger effort in which multiple teams and internal organizations competed to get their ideas implemented. Multi-year effort Copyright Ronald J. Leach, 1997, 2009, 2014,

Goal: Improve the Team’s Self- Organizing Factor SOF = (management + external test) / ( management + systems engineering + requirements gathering + implementation + internal test + external test + maintenance + system administration + documentation) Copyright Ronald J. Leach, 1997, 2009, 2014,

Why improve the SOF? Copyright Ronald J. Leach, 1997, 2009, 2014,

Why improve the SOF? Because projects with a low SOF made greater improvements in costs and greater reduction of testing costs Copyright Ronald J. Leach, 1997, 2009, 2014,

Case Study of Management Perspective on Requirements in Agile Development Copyright Ronald J. Leach, 1997, 2009, 2014,

Case Study Context Experienced team in the domain of spacecraft control systems Most of the team had won an award for cost savings, even while producing software of very high quality Copyright Ronald J. Leach, 1997, 2009, 2014,

Fundamental Assumptions The team is experienced in the application domain and buys in to agile processes The team is talented Team members can work independently The team knows the capability and quality of available large-scale components and COTS products Management support using agile processes Copyright Ronald J. Leach, 1997, 2009, 2014,

Team attitudes Avoided the “Not Invented Here Syndrome” Attitude projected was more of “I can't tell you what I want, but I'll let you know when you get there!” Copyright Ronald J. Leach, 1997, 2009, 2014,

The Requirements Started out vague and broadly focused Selected a COTS product, LabView, to control software – LabView normally used to control experiments – LabView had an international user base and was unlikely to be discontinued Applied agile techniques to a large set of systems Copyright Ronald J. Leach, 1997, 2009, 2014,

Experience allowed decreased time to gather requirements Copyright Ronald J. Leach, 1997, 2009, 2014,

The Agile Case Study: Design Copyright Ronald J. Leach, 1997, 2009, 2014,

Two tools A comprehensive discrepancy system – Combined results from many disparate databases developed on a project-by-project basis – Had sufficient clout to access legacy data A concurrent version system – Coordinated many ad hoc ones Copyright Ronald J. Leach, 1997, 2009, 2014,

Two tools, cont. These tools were created quickly, and minor formatting errors were overlooked To make the tools’ output pretty would have diluted the agile project’s focus Copyright Ronald J. Leach, 1997, 2009, 2014,

COTS selection Continued during the entire “design process” Only the data interfaces between large-scale components were considered, not the internal design details of these large-scale components Copyright Ronald J. Leach, 1997, 2009, 2014,

The Agile Development Case Study: Coding Copyright Ronald J. Leach, 1997, 2009, 2014,

Perspectives The object of coding in an agile development process is to create a high-quality system as rapidly as possible. As little effort placed on non-coding-related issues during the coding process as is humanly possible. Little effort placed on coding standards. Copyright Ronald J. Leach, 1997, 2009, 2014,

Perspectives, cont. Source code written by different members of the agile team may not follow coding standards about indentation and the actual physical presentation of the formatting. Standards, if any, will be those used by the IDE. The use of configuration management tools for version control is almost universal. Copyright Ronald J. Leach, 1997, 2009, 2014,

Perspectives, cont. Internal documentation of the code will be a lower priority than the actual development and testing of the source code. The testing of the code is paramount. It is primarily focused on the interfaces between components, COTS products, and subsystems. Copyright Ronald J. Leach, 1997, 2009, 2014,

Perspectives, cont. It is not clear if lack of adherence to coding standards in an agile development process will have any effect on the maintenance of such a system over time. For systems that are expected to have short deployment lifetimes, any maintenance problems that do occur are not likely to be major ones. Copyright Ronald J. Leach, 1997, 2009, 2014,

The Agile Case Study: Testing and Integration Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Testing Agile testing is a practice that follows the so- called “ agile manifesto, ” emphasizing testing from the perspective of customers who will use the system. Agile testing is not a separate phase in a life cycle. Agile testing deemphasizes more defined testing procedures. Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Testing, cont. Because of the lack of more formally defined testing procedures, agile development is not employed on most government or commercial software projects. Agile development is almost never used on safety-critical systems. Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile testing, cont. The agile testing process tests newly developed code iteratively until sufficient quality is achieved, at least from the perspective of end users. The goal is to have the entire project team, including testers and end users, work toward demonstrable quality. Copyright Ronald J. Leach, 1997, 2009, 2014,

Testing is embedded in the agile process Developers work hand-in-hand with customers during development. Regression testing is universally used. Copyright Ronald J. Leach, 1997, 2009, 2014,

Testing in our case study One goal was to minimize testing by using COTS products, even ones not often used in this application domain (such as MatLab). Regression testing was constantly used. Our case study did not use test-driven development (defined on the next slide) extensively. Copyright Ronald J. Leach, 1997, 2009, 2014,

Test-driven development Automated tests are created, after which software is written to minimally pass the test. The tests are created with the input of the customers working with the agile process software developers. This extends the idea of a requirements traceability matrix and testable requirements. Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Development Case Study: Delivery, Installation, and Documentation Copyright Ronald J. Leach, 1997, 2009, 2014,

Very different from other processes Most required components will be available on the target machine. The many prototypes in this type of development have been refined until they meet the customer’s requirements Copyright Ronald J. Leach, 1997, 2009, 2014,

An observation There is little actual data on the delivery costs and installation/documentation effort for projects that use an agile development process. Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Development Case Study: Delivery, Installation, and Documentation Copyright Ronald J. Leach, 1997, 2009, 2014,

Very different from other processes Most required components will be available on the target machine. The many prototypes in this type of development have been refined until they meet the customer’s requirements Copyright Ronald J. Leach, 1997, 2009, 2014,

An observation There is little actual data on the delivery costs and installation/documentation effort for projects that use an agile development process. Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Development Case Study: Maintenance and Evolution Copyright Ronald J. Leach, 1997, 2009, 2014,

The nature of agile development Rapid development of well-tested software in cooperation with a “customer.” It is highly unlikely that any significant portion of the agile development team will be around the organization during maintenance. Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile development and maintenace Few agile developers work on software maintenance Maintenance requires considerable effort understanding programs before systems can be maintained. Little reliable data on the cost of maintaining agile systems. Copyright Ronald J. Leach, 1997, 2009, 2014,

An opportunity Software developed using agile processes is often created faster than faster than similar projects using other methods. Are the agile projects “better?” Are total life cycle costs lower, higher, or the same? How can we tell what’s best for our organization? Copyright Ronald J. Leach, 1997, 2009, 2014,

The solution Use maintenance information to analyze quality and other metrics on different types of software development processes. The goal is process improvement. NOTE: this analysis of maintenance data is not part of an agile process, but it is part of software engineering! Copyright Ronald J. Leach, 1997, 2009, 2014,