Oct. 25, 2017
With the rapid progress made in digitization, swift system development is becoming more and more important—and agile development is an effective method to meet those speedy requirements. However, unlike in the West, agile development is not prevalent in Japan. Why is that? This article describes the benefits of agile development and examines the factors that could lead it to success.
What is agile development?
Agile development is a method for repeating development in small periods of several weeks and releasing software each repetition cycle. Since it is difficult to predict whether some digital businesses will be accepted by consumers, this method can be used to start a service off small and then increase its size as it is improved. Cutting-edge internet companies in the United States such as Facebook and Google, which are synonymous with digital companies, deal with their fiercely competitive environment by releasing new software on a daily basis to provide services that their competitors cannot match. They quickly identify consumer needs, swiftly develop services to meet them, and release those services immediately. Agile development is the process for implementing this cycle at high speed.
Benefits of and problems with agile development
With conventional development methods, software cannot be used until all the functions are tested and the software is released, but agile development that gradually releases functions has the benefit of enabling investment to be quickly made back while obtaining feedback. Although this makes it easier to deal with requests for change, if there are a lot of these requests, it becomes necessary to manage them with a fixed budget and development period. That is why agile development requires a capable product owner that can provide a clear policy and coordinate both the business department and development department.
Three points for overcoming the challenges with adopting agile development in Japan
Although more companies are aiming to switch to agile development, it is not being adopted in Japan. Three points need to be overcome to enable agile development in Japan: (1) Approval process; (2) Concept of uncertainty; and (3) Concept of quality.
(1) Reviewing the approval process
The first point is that the principles of agile development do not match the approval process used at Japanese companies. In Japan, it is necessary to clarify all the functions of a system to obtain internal approval. Also, general contract agreements for system development require deliverables to be clarified at the time of contract. This existing process needs to be reviewed in order to adopt agile development, which does not clarify all the functions before starting development.
(2) Accepting uncertainty
Japanese companies do not like uncertainty, and their hierarchical corporate structure and love of clearly defined rules mean that waterfall development matches the culture. On the other hand, the concept of agile development that continues to flexibly change the plan according to the station has developed in a background of Western culture, which is not opposed to uncertainty. We believe that Japan needs to make an effort to even partially adopt agile development in the actual development of suitable projects, while also retaining waterfall development.
(3) Changing the concept of quality
It is conventionally thought that it takes time to create something of high quality, and this leads to reduced efficiency and productivity. However, the concept of agile development states that maintaining quality will lead to high productivity. The so-called Toyota Production System is said to be one origin of this idea. Broadly speaking, quality assurance in manufacturing can be divided into two methods. One method is expecting that there will be defective goods, and having a third party such as a quality control department check the quality after the product is complete. The other method is the Toyota Production System’s method consisting in building quality into each process, which performs quality control during the manufacturing process to ensure that defective goods do not arise. Agile development can also be thought of as a method that reduces the size of the development process to a level that can be managed with a small-scale team and adopts the quality control concept of building quality into each process in software development.
Upper management support is essential for reforms
Implementing full-scale adoption of agile development requires reforms in various areas, such as business practices, corporate culture, internal processes, and human resources. The first thing to do is understanding the characteristics of agile development and clarifying which of those to adopt in development at your company. On-site development members dislike their work increasing due to later changes, and on-site operation members want to limit changes so that they can prioritize stable operation. The active contribution of upper management is essential for promoting the adoption of agile development and implementing work style reforms.