Release engineering, frequently abbreviated as "RE" or "Releng", is a sub-discipline in software engineering concerned with the compilation, assembly, and delivery of source code into finished products or other software components. Associated with the software release life cycle, it is often said that release engineering is to software engineering as manufacturing is to an industrial process. While it is not the goal of release engineering to encumber software development with a process overlay, it is often seen as a sign of organizational and developmental maturity.
Modern release engineering is concerned with several aspects of software production:
- Identifiability
- Being able to identify all of the source, tools, environment, and other components that make up a particular release.
- Reproducibility
- The ability to integrate source, third party components, data, and deployment externals of a software system in order to guarantee operational stability.
- Consistency
- The mission to provide a stable framework for development, deployment, audit and accountability for software components.
- Agility
- The ongoing research into what are the repercussions of modern software engineering practices on the productivity in the software cycle, i.e. continuous integration and push on green initiatives.
Release engineering is often the integration hub for more complex software development teams, sitting at the cross between development, product management, quality assurance and other engineering efforts, also known as DevOps. Release engineering teams are often cast in the role of gatekeepers (i.e. at Facebook, Google, Microsoft) for certain critical products where their judgement forms a parallel line of responsibility and authority in relation to production releases (pushes).
Frequently, tracking of changes in a configuration management system or revision control system is part of the domain of the release engineer. The responsibility for creating and applying a version numbering scheme into software—and tracking that number back to the specific source files to which it applies—often falls onto the release engineer. Producing or improving automation in software production is usually a goal of the release engineer. Gathering, tracking, and supplying all the tools that are required to develop and build a particular piece of software may be a release engineering task, in order to reliably reproduce or maintain software years after its initial release to customers.
While most software engineers, or software developers, do many or all of the above as a course of their work, in larger organizations the specialty of the release engineer can be applied to coordinate disparate source trees, projects, teams, and components. This frees the developers to implement features in the software and also frees the quality assurance engineers to more broadly and deeply test the produced software.
The release engineer may provide software, services, or both to software engineering and software quality assurance teams. The software provided may be build tools, assembly, or other reorganization scripts which take compilation output and place them into a pre-defined tree structure, and even to the authoring and creation of installers for use by test teams or by the ultimate consumer of the software. The services provided may include software build (compilation) automation, automated test integration, results reporting, and production of or preparation for software delivery systems—e.g., in the form of electronic media (CDs, DVDs) or electronic software distribution mechanisms.
Read more about Release Engineering: Related Disciplines
Famous quotes containing the words release and/or engineering:
“The steel decks rock with the lightning shock, and shake with the
great recoil,
And the sea grows red with the blood of the dead and reaches for his spoil
But not till the foe has gone below or turns his prow and runs,
Shall the voice of peace bring sweet release to the men behind the
guns!”
—John Jerome Rooney (18661934)
“Mining today is an affair of mathematics, of finance, of the latest in engineering skill. Cautious men behind polished desks in San Francisco figure out in advance the amount of metal to a cubic yard, the number of yards washed a day, the cost of each operation. They have no need of grubstakes.”
—Merle Colby, U.S. public relief program (1935-1943)