Software Engineering Process
Software engineering process and practices are the structures imposed on development of a software product. There are different models of software process (software lifecycle is a synonym) used in different organizations and industries.
RAL has identified three levels of software process for its projects.
These levels balance the different needs of different types of projects. Scaling the process to the project is vital to its success, too much process can be as problematic as too little; too much process can slow down a purely R&D exploration, too little process can slow down a large development project with hard deliverables. The levels are briefly identified as follows:
Level 1: R&D
- no software products delivered, pure research
- minimal software process
Level 2: Research system
- larger development team, informal software releases
- moderate software process
Level 3: Delivered system
- large software development team, formal software releases
- more formal software process
For example, the Juneau, Alaska Winds Project has evolved from a Level 1 to a Level 3 project over multiple years. It started as a purely R&D effort (Level 1), expanded to a field program in Juneau (Level 2), and is currently running in the field as a Operational Prototype (Level 3). The software process and software engineering practices have become more formalized and more structured as the project proceeded through the different levels.
RAL has evolved a set of software engineering best practices that implement the three software process levels. These include: source code control, nightly code builds, writing reusable code, using different team models, commitment to deadlines, design and code reviews, risk management, bug tracking, software metrics, software configuration management, requirements management.
Software configuration management (SCM) is a step up in formality and reproducibility from source code control and includes controlling and versioning of software releases. Source code control is a software engineering best practice used with RAL Level 2 and Level 3 projects. SCM is a best practice used on a number of RAL Level 3 projects.
