9. Process

This section presents an overview of the engineering and management process used in the development of the Software and Controls System. The GMT development process defines a set of practices that enforces the completeness, correctness, robustness, and maintainability of the overall GMT software effort. It attempts to reconcile the formality required by large multi-organization stage-gate project with more recent software development practices that are more adaptive. Recent software development practices improve productivity and quality, and users generally benefit from a software system’s inherent ability to adapt, cost effectively, rather than being formally set in stone.

The software development strategy for the GMT is determined by the interplay of several factors:

  • The overall GMT process is based on a classical stage-gate model, where formal reviews are required before moving forward to subsequent phases of the project. These reviews require formal documentation on design studies for all the subsystems and the application of system engineering practices.
  • External organizations, both partners and commercial vendors, are likely to develop software for the GMT. These organizations often work in multiple projects and often have their own optimized development processes, methods and tools. These organizations are distributed across several continents.
  • Software development is an experimental discipline in a continuous state of evolution. Agile development practices have consolidated in the last decade where working code is favored over documentation and code development starts very early in the project to facilitate requirements elicitation.
  • Several flavors of model-centric development are increasingly applied to both system and software engineering disciplines. Model driven development favors models over documentation, and models that can translate into code.

The following sections describe the practices and tools to be used in the development of software by the GMTO project office: the formal approach to the GMT software development, and how Agile techniques are applied to GMT to plan and control the software development activities to improve the efficiency of the formal process. Model Driven Development (MDD) is employed to enforce design consistency and to increase productivity.