Feature Articles: Improving Productivity in Software Development Using Macchinetta Framework
Improving Productivity of Software Development on the Macchinetta Framework
The NTT Software Innovation Center aims to provide high quality services in a timely manner while reducing total cost of ownership. To achieve this goal, it is necessary to develop new software rapidly and stably. This article introduces technology for improving the productivity of software development on the Macchinetta framework, which uses the same open source programs as conventional software development.
Keywords: improving productivity, reducing TCO, application framework
The changes in the revenue structure of the NTT Group over time, as illustrated in The NTT Group: 30 Years of History, indicate that voice systems accounted for about 48% of revenue in 2008. In contrast, that proportion had fallen to 21% by 2015, and system-integration-related revenue (including software development) increased from 26% of the total to 46% . The percentage of solutions-related revenue has also increased in recent years, and the work to develop the software to support those systems has come to play a more significant role.
Consequently, by improving the productivity of software development and stably providing high-quality software in a short time period, we will be able to expand services while reducing the total cost of ownership (TCO) and targeting further growth.
At the NTT Software Innovation Center (SIC, hereafter), we have developed Macchinetta as a framework for improving the efficiency of software development. As a result, by improving the productivity of software development as well as eliminating redundant investments and utilizing the created technology in a common manner, we aim to reduce TCO across the NTT Group as a whole.
The Feature Articles in this issue describe our efforts to improve the productivity of software development using the Macchinetta framework [2, 3, 4].
Macchinetta is an application framework targeting enterprise applications. Prescribing the framework of software makes it possible to improve productivity, stabilize quality, and in turn, reduce TCO. In other words, Macchinetta is a software bundle composed of open source software that is used on a global scale, and it consolidates the methods of utilizing each piece of software in that bundle.
In Machinetta, we have collected developmental technology and know-how and consolidated maintenance and support systems in a common framework. Thus, Macchinetta improves the efficiency of software development, stabilizes operations (including handling security weaknesses), and reduces TCO (Fig. 1).
Macchinetta is presently being applied to software development throughout NTT Group companies. In fact, almost all new software development projects are utilizing Macchinetta. From now onwards, we will not only apply Macchinetta to new projects but will sequentially apply it to existing systems while also upgrading those systems, with the objective of reducing TCO across the entire NTT Group.
3. Efforts to improve productivity
To improve the efficiency and stability of software development by applying Macchinetta, it is essential to cultivate human resources with the skills and know-how needed to master Macchinetta. At the SIC, we are preparing study materials by utilizing our experience in developing human resources, and we are striving to nurture experts on Macchinetta across the entire NTT Group and to establish a pool of Macchinetta-related human resources. Furthermore, we will further improve the productivity of software development by establishing tools for supporting software development using Macchinetta and by promoting automation and labor-saving practices. In particular, we hope to improve the efficiency of test processes that significantly affect quality and productivity while advancing research and development (R&D) focused on automation, regardless of the presence or absence of Macchinetta.
4. Efforts to further improve efficiency
The increasingly severe and fluctuating market conditions in recent years mean that it has become necessary to develop services at an ever faster rate. However, at many major companies, so-called siloization* is continuing, partial optimization has become acceptable, and it is becoming impossible to provide timely and responsive services. In response to such circumstances, we are setting up service development teams that span the business department (Biz) such as the planning and sales department, the development department (Dev), and the operations department (Ops), as well as hammering out services with a sense of urgency and proposing development methods (BizDevOps) that will ensure flexible growth. To ensure cooperation between related departments based on a development style that is both lean and agile, it is essential to ensure smooth communications between those departments. We also propose using data models in order to obtain good communication between departments with differing cultures and complex systems.
5. Future direction
The SIC plans to continue the initiatives described in this article while maintaining acute awareness of the status of software development across the NTT Group. Moreover, we will continuously promote R&D aimed at improving the productivity of software development across the NTT Group in a way that will reduce TCO and expand our businesses.