A summary of practical research on the development of software factories in the US military
A summary of practical research on the development of software factories in the US military
Zang Fei, Dang Minxia
【Abstract】This article begins with the practical issue that the hardware-centric approach of the U.S. military cannot adapt to the rapid capability iteration of modern warfare, introduces the concept and development history of the U.S. military's software factories, and then summarizes the overall architecture of the U.S. military's software factories as "six layers and one side." Through the practical application of software factories across various branches of the U.S. military, this article initially forms insights and suggestions for the construction of similar software factories in our military, aiming to provide some reference.
【Keywords】Software Factory | Overall Architecture | Continuous Integration | Capability Delivery
From the study of recent modern wars such as the Russia-Ukraine conflict and the Israel-Palestine conflict, it has been found that the ability to quickly initiate and close the kill chain/web is one of the key factors directly influencing the progress of the war. Research into the kill chain/web reveals that the kill chain is a concept proposed by the US military within their Command, Control, Communications, Computers, Intelligence, Surveillance, and Reconnaissance (C4ISR) system. It encompasses various strike elements and forms an integrated operational task chain from detection to destruction. The kill web aims to network sensors, command and control nodes, and strike nodes across various operational domains, creating a mesh structure composed of multiple nodes that supports operational task requirements under dynamic construction modes.
The construction and closure of the kill chain/web, in essence, involves precise regulation of digital battlefield resources to rapidly respond to combat missions and achieve predetermined combat objectives. Therefore, to maintain an advantageous position in great power competition, the U.S. military is actively advancing digital modernization and software modernization processes. Since then, by establishing software factories and other means, efforts have been made to transition from a "hardware-centric" organization to a more adaptable "software-centric" organization, in order to initiate and close the kill chain/web more quickly in future wars.
I. Overall Architecture of the Development of U.S. Military Software Factories
(I) Conceptual Essence
In the year, the Defense Science Board defined software factories in the report "Software Design and Acquisition for Defense Systems" as a set of software tools used by programmers to write code, collaborate with team members, and automate the building, testing, and documenting of their progress. In the year, the Office of the Chief Information Officer of the U.S. Department of Defense defined software factories as software assembly factories containing multiple pipelines, enabling the automation of activities in the software development, building, testing, release, and delivery stages. In the month of the year, the U.S. Department of Defense defined software factories as a collection of personnel, tools, and processes that enable continuous release and advanced cyber resilience, allowing teams to continuously deliver value.
From the official definition of software factories by the U.S. Department of Defense, it can be seen that a software factory is a comprehensive software ecosystem, operating under certain patterns and process constraints, to achieve the entire lifecycle from military activity tracking, requirement analysis, system design, software design, data design, software development, verification testing, operation deployment, continuous monitoring, to the continuous and flexible iterative process of system and software capabilities in the face of rapidly changing military activities and requirements. This mainly includes the elements such as personnel roles, the development models like software development, the basic characteristics like user collaboration, and the technical support like cloud computing.
(II) Development History
After the U.S. industrial sector proposed the Agile software development model at the beginning of the century, the U.S. Department of Defense recognized the advantages of this model and gradually promoted it in projects. However, in the past years, there have not been many projects that truly adopted the Agile development model, because the U.S. Department of Defense found that due to the slow iteration speed in the software development process, the U.S. military was unable to quickly deploy, upgrade, and maintain more powerful system software, thereby exposing the U.S. military to significant risks in initiating and closing kill chains/networks. Therefore, since then, the U.S. military has focused on software modernization and accelerated the construction of software factories.
From year to year, the U.S. military successively established the "Kessel Run" laboratory, "" software factory, etc. While independently constructing software factories, the U.S. Department of Defense also actively promoted joint establishment of software factories with the industrial sector or entrusted the establishment of software factories. As of now, approximately software factories have been established, which have facilitated the development of advanced software for the U.S. military, shortened the cycle for generating and iterating system capabilities, and have been preliminarily tested in multiple wars the U.S. military has engaged in recent years, thereby maintaining the U.S. military's advantage in great power competition.
(III) Overall Architecture
By analyzing the definitions of software factories led by the U.S. Department of Defense and the development history of software factories, the overall architecture of the U.S. military software factories can be summarized, as shown in the figure, which mainly includes guiding documents, advanced technology support, cloud environment construction, software development models, software factory establishment, software product integration, and the personnel structure guarantee during the establishment of U.S. military software factories.
Guidance Document
To ensure that the construction planning of software factories is reasonable, objectives are clear, and the construction process can be smoothly implemented, the U.S. government agencies have continuously advanced the formulation of strategies, plans, and policies related to software factories, forming a series of guiding documents. In [month, year], the U.S. Defense Science Board released the report "Software Design and Acquisition for Defense Systems," recommending the use of software factories as the foundation for continuous, iterative, and rapid software development and maintenance. In [month, year], the U.S. Department of Defense issued Acquisition Directive . "Operation of the Adaptive Acquisition Framework," providing guidance for achieving flexible and adaptive acquisition. In [month, year], the U.S. Department of Defense signed and approved the "U.S. Department of Defense Software Modernization Strategy," proposing the vision of "delivering resilient software capabilities at the corresponding speed" and setting three long-term goals. In [month, year], the U.S. Department of Defense released the "Summary of the U.S. Department of Defense Software Modernization Implementation Plan," which, like the "U.S. Department of Defense Software Modernization Strategy," identifies the development of a software factory ecosystem as an important long-term strategic goal.
Figure: Overall Architecture Diagram of the US Military Software Factory
Advanced Technology Support
Leveraging the technological research results provided by world-leading research institutions in the field of artificial intelligence in the United States and the mature application in the internet industry, the Defense Advanced Research Projects Agency (DARPA) of the United States began its research on artificial intelligence technology as early as the century years. With the development of the Department of Defense's software factories, the supporting role of advanced technologies such as cloud computing, automation, and artificial intelligence has become significantly enhanced.
In the advanced technology support of the U.S. military software factory, cloud computing technologies such as virtualization computing, distributed storage, and parallel programming are employed, significantly enhancing the utilization rates of various infrastructure elements like computing and storage, as well as the simultaneous parallel development capabilities of programming personnel. Automated methods such as service synchronization and data synchronization are utilized to support real-time data synchronization during the deployment of software developed by various software factories, cloud environment scheduling of multiple service capabilities, and potential interface conflicts during software design, thereby helping to shorten the U.S. military's software iteration cycles and accelerate the generation of deployment capabilities. Artificial intelligence methods such as deep learning and trend prediction provide effective support for the intelligent empowerment of U.S. military software deployment, such as quickly and accurately analyzing target situations in high-precision remote sensing images through deep learning.
Cloud Environment Setup
The U.S. Air Force introduced the "cloud concept" into the operational domain as early as the year, proposing the concept of a combat cloud, which quickly gained recognition from the U.S. Department of Defense, the Navy, and other military branches, in an effort to address the threats and challenges they faced. In the year, Aviation Week published a conceptual diagram of the combat cloud, providing a clearer picture of the full scope of the U.S. military's combat cloud concept. In recent years, the U.S. military has further prioritized the development of cloud capabilities as a key direction for the advancement of military information systems, viewing it as the core foundation of the new generation of operational systems, the "Joint All-Domain Command and Control" system. At its essence, it involves the comprehensive application of virtualization technology, distributed computing technology, and other methods to organically reorganize dispersed operational resources into an elastic, dynamic pool of operational resources, enabling the possibility of obtaining resources on demand for operations.
In the construction of the software factory ecosystem, the U.S. military employs various methods, including collaborating with the U.S. industrial sector on internet-based business operations to develop cloud environments, as well as independently constructing cloud environments within the Department of Defense. For instance, in the U.S. Air Force's "Joint Warfighting Cloud Capability" project, Google, Amazon, and Microsoft were selected through a bidding process to provide cloud environment construction and maintenance services for the U.S. military. In the "One Cloud" project, cloud hosting and service evaluation services were partially conducted using assets from U.S. network service companies such as Amazon and Microsoft. Meanwhile, the U.S. Department of Defense focuses on developing technologies for constructing cloud environments, such as computing resource virtualization and operational entity virtualization, aiming to virtualize various entities on the battlefield and link them through the cloud into a physically distributed yet logically integrated cloud environment. This approach aims to achieve unified control and optimal allocation of various battlefield resources.
Software Development Model
Leveraging the Agile development model of the U.S. industrial software sector, and integrating the actual requirements of the U.S. military for software generation capabilities, a critical development model for software development, security testing, and system operations has been developed, serving as an Agile development framework for software products.
From a technical architecture perspective, the platform consists of three layers: infrastructure, platform/software factory, and applications. The infrastructure layer provides a hosting environment for the platform/software factory layer, explicitly offering computing, network resources, and additional cloud service provider management services. The platform/software factory layer focuses on the development environment of the software factory, pipelines, log aggregation and analysis strategies, and continuous monitoring operations. The application layer focuses on application frameworks, data storage, object storage, and other middleware specific to the application and outside of the pipeline.
In software development, the software development lifecycle is not a single linear process; it is typically represented using a method that describes an infinite loop, with each stage performing specific cybersecurity activities. Design is continuously iterated, transforming the centralized delivery of the waterfall development method into small, frequent deliveries, with each small delivery being completed through a fully automated or semi-automated process, thereby accelerating continuous integration and continuous delivery.
Software Factory Establishment
Under the leadership and promotion of the U.S. Department of Defense, the U.S. Army, Navy, and Air Force are all actively establishing software factories. It should be noted that at this stage, despite the U.S. Department of Defense issuing numerous strategic plans and standard specifications, the current situation remains one of independent construction, which may lead to stovepipe or redundant work among software factories. To address this, the U.S. military is actively developing cooperation mechanisms between software factories to support software portability across platforms and environments, enable the sharing of software code, and thereby achieve rapid response and continuous output of iterative capabilities to meet operational needs.
Software Product Integration
Following the U.S. Department of Defense's advocacy for establishing a collaborative mechanism among software factories, it is expected that under the constraints of unified architecture, integration, operating environment, storage methods, and development packaging requirements, and in accordance with the operational application process, the arrangement of software product delivery capabilities and continuous product integration will be supported. This will significantly reduce software development cycles and repetitive development work, support plug-and-play software system deployment methods, and provide support for the U.S. military to enhance operational capabilities through the use of constantly changing and diverse software combinations.
Personnel Organizational Structure
Under the strategic plan for the construction and development of software factories by the U.S. Department of Defense, the organizational structure of software factories in the U.S. military typically involves government personnel taking on leadership roles within project teams, while software engineers handle software development and product integration. Government personnel include military and civilian personnel, and the role of software engineers is filled by contractor personnel, some government military personnel, and civilian personnel.
II. Practical Application of U.S. Military Software Factories
(1) U.S. Air Force Software Factory
As of now, the U.S. Air Force software factories are the most numerous and mature in operation, leading the way in construction practices among all U.S. military branches. Several software factories have been established, with the most representative ones being the "Kessel Run" lab, "Platform One," and "Bespin." They utilize modern tools and frameworks to implement agile and software development practices, achieving automated continuous delivery. Additionally, the U.S. Air Force has established a capability platform composed of software engineering teams and system service providers. Currently, these software engineering teams collectively support over a dozen software development activities for weapon systems and project execution offices.
(II) U.S. Navy Software Factory
Drawing on the mature practices of the U.S. Air Force, in [year], the U.S. Navy launched the "Black Pearl" development platform, which aims to continuously develop software by providing software tools, application processes, and service hosting paradigms. In the same year, the U.S. Navy established a "software factory" based on the capabilities of "Black Pearl," fully advancing the construction of the software ecosystem. In [month], the U.S. Marine Corps established its first software factory, with the goal of supporting the Marine Corps in developing world-class software development capabilities.
(III) U.S. Army Software Factory
At the beginning of the year, the U.S. Army Futures Command established the Army's first software factory, which is also the Army's only official software factory at present. Its key tasks include enhancing the digital capabilities of combat personnel, addressing existing Army issues through the use of modern technologies such as agile software, and designing prototypes for future forces. By leveraging the advanced "Code Resource and Transformation Environment" platform, the factory significantly reduces the time required for software development and delivery.
III. Enlightenment from the Development of U.S. Military Software Factories
From the development history, overall architecture of the US military software factories, as well as the practical application in the US Army, Navy, and Air Force software factories, there are valuable insights for our military in building similar software factories.
(1) Clear objectives
The U.S. Army, Navy, and Air Force have each established relevant software factories based on their specific characteristics, rather than adopting a unified software factory to address all issues. This indicates that for the establishment of software factories, the objectives must be clear, and the problems to be solved must also be clear. This focus on core issues allows for better efficiency in the software factory's operations. Otherwise, attempting to tackle everything at once will only lead to an increasing number of problems.
(II) Top-level Design
During the independent construction of software factories within the U.S. Army, Navy, and Air Force, the lack of top-level design has led to siloed development, resulting in weaker cross-platform application capabilities for products from different software factories. Therefore, at the outset of software factory construction under the context of Joint All-Domain Operations, it is essential to strengthen top-level design.
(III) Ecological Construction
It is clear from the overall architecture of the US military software factory that the design of the software factory is an ecosystem construction involving multiple domains and contents, rather than a single software development and product integration. Therefore, in the design and construction of the software factory, it is necessary to strengthen the ecosystem construction upstream and downstream.
references
Wang Yuqian, Cao Yajie, She Xiaoqiong, et al. Research on the Concept of the US Military's Kill Web and Its Implications for Our Air Defense Combat Equipment System. Modern Defense Technology, (), -.
Lu Huiming. Reflections on the Construction of Software-Defined Kill Webs. Command Information Systems and Technology, (), -.
Wu Yuhang, Peng Zhenzhong. Analysis of the US Military's Operational Cloud Concept. Military Abstracts, (): -.
Enter the mini program and give a thumbs-up to the papers you like!
Editor of this issue: Chen Luyang
This issue reviewed by: Lin Yingxi
Layout Design: Zhou Kaikai
Article Source: "China Military-to-Civilian Magazine"
Collaboration Email: .
Submission email: .