No matter how carefully goals, requirements, implementation methods, and the like are studied for system development during upstream processes, there will be changes by the time of its completion. That's how fast our times are changing, and a growing number of system development projects cannot be handled using the traditional approach of first clearly defining needs and then gradually building systems based on specifications. As customer needs and business environments change at startling speeds, attention is increasingly being turned to the method of "agile development." Agile development starts by developing high priority functions, going through rounds of improvements and adjustment of direction, and perfecting the overall system. This approach is responsive to changes and nimble, and has a comparatively high affinity to step-wise IT modernization. In this issue, we introduce our efforts to promote agile development, such as the development standard "AgileDS", which systematizes the experience and expertise accrued by Toshiba Digital Solutions, together with examples of actual field deployment.
The limits of waterfall development
In waterfall development, which delivers completed solutions through a process of planning, requirement definition, design, implementation and testing, development is performed systematically based on specifications defined before development begins. This method is the best for developing large-scale systems with high quality requirements, such as social infrastructure which involves a high level of social responsibility.
However, for systems in rapidly changing business environments and systems that are required to be able to rapidly accommodate digital technologies, completed system requirements and optimal technologies can change during the development process. In existing systems as well, there is a budding need for digital transformation through IT modernization while flexibly accommodating such changing environments and technologies. What is required or desired of systems changes during the development process, and this reshapes how these requirements and desires will be realized. Waterfall development perfects systems using a systematic, progressive approach. This makes it difficult for it to instantly respond to changes.
Agile development, on the other hand, can flexibly and quickly handle changes. It is based on the assumption that requirements will change, and the development process is rapid, taking roughly two weeks, starting with the highest priority functions. It starts small, speedily building up systems part by part while using the discoveries to make improvements that arise when the system is put into operation, and perfects the system. Changes in customer desires and technical implementation methods are rapidly reflected in order to maximize the value provided to the customer. This development method is also highly compatible with step-wise IT modernization* and microservice architecture*.
Agile development experience and systematization
Agile development has become widely used as a system development method, and is especially actively used in the internet business field. However, it has only been used to limited extent in core systems. One reason of this is that large-scale systems and systems which bear serious responsibilities are good matches for the waterfall development approach, in which detailed plans are created before development starts and then these plans are steadily implemented. Another reason is that the consigned developing companies have used this approach for years, and have built-up the firm systems of divisions of responsibilities and strict quality management predicated on waterfall development.
Toshiba Digital Solutions was one of the first companies to see agile development as a practical development approach in the age of digital transformation. We have developed extensive expertise that we can apply to the development of systems in various fields through our long track record of actively using agile development in numerous sites, including the development of internal systems. At the same time, we have also been focusing on developing agile development engineers through practical work. The agile development standard "AgileDS" organizes the knowledge and experience obtained in this process.
The features of the agile development standard "AgileDS"
AgileDS is Toshiba's hybrid agile development process, fusing the advantages of waterfall development and agile development. Its most notable feature is the strict quality management built in to it through design reviews between each process (Fig. 1).
In agile development, development is performed by dividing the development period into short sections called "sprints." With AgileDS, when development of any sprint is completed, system and operation tests are carried out, ensuring the quality of the overall system before releasing the developed system. Quality is ensured by thorough design reviews performed for each process as well as iteration of testing proceeded from each sprint level. This approach aims to provide a high level of quality while reaping the benefits of agile development, namely its ability to make improvements and course corrections in response to actual development conditions while at the same time maximizing of value.
Another feature of AgileDS is that it organizes two types of development processes – solution creation and requirement definition. With solution creation approach, agile development is applied from the process of detailed requirements definition, after service and product planning are complete. It is a development process suited to rapid service startup and new product creation. Requirement definition approach handles the process up to requirement definition in the same way as waterfall development, but applies agile development from the creation process after requirements have been defined. It is suited to situations in which requirements are clear but there is a high likelihood of changes in priorities and technologies to apply.
Engineers apply development processes appropriate for individual projects, handling requirement additions and changes as they arise, and carry out projects through iterative sprints while ensuring quality.
Leveraging knowledge and experience, focusing on engineer development and field implementation
In our agile development projects, when a project is launched, teams are formed, consisting of at most roughly eight people per team. Each team member handles tasks from design to programming and testing, checking their work at active worksites as they continue the development process. Members must have not only technical skills, but also an understanding of the nature of agile development and the ability to put it into practice.
Waterfall development focuses on schedule-based efficient development, so it is important to carefully and precisely define specifications and minimize specification changes. With agile development, however, to produce deliverables with even greater value, it is important to nimbly respond to customer requirement changes, carrying out speedy development iterations to build deliverables together. To realize this, it is essential to work closely with customers and make sure everyone is on the same page, and to share responsibilities for deliverables, as well as risks, through contracts predicated on the understanding that the contents of development may change from what they were when development work was first initiated.
We have prepared guidelines for identifying the case for which agile development is appropriate, based on the characteristics of individual projects. We have also organized the key points of agile development and actively provide implementation guidance and instruction aimed at promoting a deep understanding of these points.
Not only do we carry out promotion and deployment measures such as these, but we also perform verification of what kinds of actual results have been produced by agile development. Figure 2 shows an implementation example in which we evolved one of our own internal systems by using agile development in order to realize high quality management that leverages quantitative data.
Our goal was to use a dashboard to visualize and analyze the productivity, quality, and cost data spread across the various development support systems in our company. However, we had not been able to determine just which information would contribute to high quality business management, or how specifically to analyze that data. There were also concerns about technical risks due to the large number of new tools that would be introduced. We decided to launch a project to create a new visualization system through agile development, which can flexibly handle requirement changes and technical issues.
When functional components, even incomplete components, became usable, they provided product owners (users) with new insights, and the system's requirements became gradually clearer. This active confirmation of actual development deliverables by product owners put both the product owners and development team members at ease. Effective methods for using data, such as analysis methods, were gradually refined and detailed. Tool limitations were taken into consideration and Business Intelligence (BI) tools and Extract/Transform/Load (ETL) tools were rolled out while making specification changes. The end result was a system with which product owners were highly satisfied. When the system went into actual use, further ideas and improvement requests arose, so the project team's challenge is to balance investment costs and determine where to set its final goal line.
Immediately responding to changes and steadily producing results in the face of changing goals and requirements is difficult when using a waterfall development approach. Our times are changing so rapidly that, even if a solution is completely planned out on paper, when it is completed, the requirements and optimal technologies will have changed. Toshiba Digital Solutions uses the experience it has built up in the field to further polish its know-how regarding quality-focused agile development and the organizations and personnel that can implement it. Our goal is to create more effective, optimal value together with our customers.
* The corporate names, organization names, job titles and other names and titles appearing in this article are those as of February 2019.