Managing Software Releases
by Nandini Bandlamudi under the Software Configuration Management KA.Software release management oversees all the stages involved in a software release from development and testing to deployment. Good knowledge of build delivery, continuous integration and management skills. understanding of technical documentation. It guides the technology efforts from code development through testing and into production, focusing on coordinating pieces from various product deliverables that must come together to work as an integrated solution. Software release management is required anytime a new product or even changes to an existing product are requested.
Classification of the Skill
Technical expertise on overall software development process, continous Integration and build release tools are very much necessary for this skill to perform well in industry. But, perhaps more important are the soft skills that allow them to communicate, coordinate, and lead multiple teams within a company. Time management is also a very important to manage releases of a software product. Therefore, managing software releases can classified as hard(technical) skill as well as soft skill.
Pre-requisites of the Skill
- Knowledge on programming and other aspects of software development lifecycle.
- Build delivery.
- Understanding of Continuous Integration and Continuous Delivery.
- Leadership and Management skills.
- Understanding of technical documentation.
- Understanding which components and its version to be put together to release to different user group.
- Technical writing.
- Good communication skills.
- Problem Solving skills.
Related Software Engineering Areas
Software release is related to many areas such as development, testing, deployemnet and support phases of software lifecycle. All these phases are brought together by release management.
- Software Development: Release management verifies the integrity of code and makes sure that it functions as planned. During this phase, developers constantly push the code to version control system.
- Software Testing: Typically builds a bridge between testing and development.
- Software Maintenance: One important aspect of Release management is version control which is used for code management.Code management simplifies and speeds up the act of making changes to code as well as other code-related activities, like maintenance and debugging.
- Software Quality: Done effectively, release management increases the number of successful releases by an organization and reduces quality problems.
Rationale for Skill
Managing software releases is quite an important skill since it is carried out throughout the life cycle of developement process. Aspecially in agile development, software products are typically in an ongoing cycle of development, testing, and release, often running on evolving platforms with growing complexity. These systems require dedicated resources to oversee the integration and flow of development, testing, deployment, and support. It essentially works as a bridge between different phases of software development and teams. It ensures better software quality. I chose this skill as I am curious to know how software release management coordinates technically with other software engineering domains to acheive low risk, continuous delivery and continuous integration.
Roles for skill
These are some of the roles related to managing software releases in the industry:
- Software Release Manager.
- Software Release Coordinator.
- Build and Release Manager.
- Release and Environment Lead.
- Configuration Manger.
Work Related to Skill
5 Steps involved for managing software releases are:
- Develop software release plan.
- Build the release.
- Conduct acceptance testing.
- Prepare for the release
- Produce software releases.
Also Release Readiness reviews, Business Go/No-Go reviews, and Milestone Reviews should be conducted. Design and implement tools and procedures for generating patches are also to be delivered.
There are nine release specific processes. The Release processes are:
- Functional Product Request
- Release Packaging
- Documentation
- Development
- Change Control
- Training
- Customer Testing
- Customer Notification
- Deployment
Related activities refer to things like:
Some related artifacts:
- Release Readiness reviews
- Release plan document
- Risk assessment
- User requirements
Real-World Example/Scenario of Skill
BMC is one of the tools for software release management. It provides capabilities for planning, building, testing, and deploying controlled releases into your IT environment.
Detail documentation can be found under: Overview with BMC.Video Resources:
Role of Academia or Industry in Cultivating the Skill
Release management is relatively new. As software became more complicated and, more and more are practicing agile methodologies, the need for release management emerged. Many organizations are integrating release management in their culture. New technologies, methodologies, processes, tools and techniques are being developed by Industry to make it more clear and useful.
Tools Supporting the Skill
Multiple tools are available in market both open source versions and enterprise versions. Some of them are listed below:
Open source tools- Jenkins
- Ansible
- SaltStack
- Chef
- Plutora
- BMC
- Urban
- XL Release
- Spinnaker
Skill Self-Assessment
The reasons for the score are as below:
- Little Knowledge on the skill previously.
- Worked on course projects which required continuous delivery and release management.
- Thorough research on process and practices currently using in industry.
References
- Mohamed, Samer. (2016). Software Release Management Evolution-Comparative Analysis across Agile and DevOpsContinuous Delivery. International Journal of Emerging Trends & Technology in Computer Science. 3. 2349-6495.
- Ganeshprasad C, Chandramohan A, John Hatter. The Evolution of the Release Managementand itsBenefits Aligning to Business Requirements. International Journal of Computer Applications. vol 80(0975 –8887).
- Aguilh, F. (2000). Understanding software release management. Paper presented at Project Management Institute Annual Seminars & Symposium, Houston, TX. Newtown Square, PA: Project Management Institute.
- R.S. Hall, D.M. Heimbigner, A. van der Hoek, and A.L. Wolf. An Architecture for Post-Development Configuration Management in a Wide-Area Network, In Proceedings of the 1997 International Conference on Distributed Computing Systems, pages 269-278. IEEE Computer Society, May 1997.
- S.I. Feldman. Evolution of Make. In Proceedings of the International Workshop on Software Versioning and Configuration Control, pages 413-416, 1988.
- André van der Hoek, Richard S. Hall, Dennis Heimbigner, and Alexander L. Wolf. 1997. Software release management. SIGSOFT Softw. Eng. Notes 22, 6 (Nov. 1997), 159–175.
- S. Jansen and S. Brinkkemper, "Ten Misconceptions about Product Software Release Management explained using Update Cost/Value Functions," 2006 International Workshop on Software Product Management (IWSPM'06 - RE'06 Workshop), Minneapolis, MN, USA, 2006, pp. 44-50, doi: 10.1109/IWSPM.2006.8.
- Okumoto, K. and A. L. Goel, Optimal Release Time for Software Systems based on Reliability and Cost Criteria, pp 315-318, Journal of Systems and Software, January 1980.
- Michlmayr M., Hunt F., Probert D. (2007) Release Management in Free Software Projects: Practices and Problems. In: Feller J., Fitzgerald B., Scacchi W., Sillitti A. (eds) Open Source Development, Adoption and Innovation. OSS 2007. IFIP — The International Federation for Information Processing, vol 234. Springer, Boston, MA.
- Jacky Estublier. 2000. Software configuration management: a roadmap. In Proceedings of the Conference on The Future of Software Engineering (ICSE ’00). Association for Computing Machinery, New York, NY, USA, 279–289.
- André van der Hoek and Alexander L. Wolf. 2003. Software release management for component-based software. Softw. Pract. Exper. 33, 1 (January 2003), 77–98.