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,