Crafting a Software Release Management Process That Provides a Positive Client Experience

Software development projects require a great deal of planning, dedication, and attention to detail. But what about when the work is complete and needs to be released to the client? That’s why we are ultimately all here—to best serve the needs of our clients.

 Effective release management practices ensure that once the software is built, it is successfully released to the people who want to use it. Those who manage this process have a strong ability to positively influence the relationship with their clients. Part of this process includes providing both a consistent experience in every release and excellent communication.
 
Establish a consistent release cycle
One thing that many of my clients have appreciated is a consistent and reliable release cycle for updates. They know exactly when they are expected to be available for user acceptance testing and when they should expect production updates to occur. If working as an outside vendor, this helps provide your client contacts the support they need with their teams to establish better methods of communication and to set expectations.
When creating a schedule, here are some items that are beneficial to consider in the process.
  1. Compile a list of all of your clients that would benefit from a release cycle and pencil them into a deployment schedule, considering the frequency of updates that they require. This process is perfect for an Agile/Scrum approach as you can tie this into Sprint Release Management
  2. Look for release date conflicts in your schedule. Try not to schedule 2 or more major clients on the same day. This will assist with mitigating resource constraints and allow time for troubleshooting and support if needed  
  3. Consider your clients in your schedule. Add adequate time for them to perform user acceptance testing on their updates and to provide feedback, and allow a buffer to make any quick bug fixes as needed. Major changes or scope additions should be considered for the next release cycle
  4. Once this process is completed, provide this schedule to your clients

Submit release notes and testing information to clients once a build is available

As part of the software release process, you should compile information on the updates that will be included in that release and craft a non-technical document for your clients. This document should outline the version number they are receiving and what updates are included. Add screenshots or other explanatory information, such as related future updates. To speed up the user acceptance testing process, consider creating and providing test cases that can be performed on the updates.
 
Take inventory of your current client communications and make adjustments as necessary
Outstanding communication is one of the major parts of any successful client experience. Consider all the ways you are currently communicating to your clients regarding when and how they receive software updates and ways it can be improved. These communication pieces can range from describing the release process or proposed scheduling, to monthly release communications, deployment window notifications, or warranty information. Try and create boilerplate documents that can be reused by all clients so that everyone has the same user release communication experience. A consistent user communication experience is beneficial if management changes from one staff member to another or if new employees need to be briefed.
 

Provide outstanding customer service

Deployments hardly ever go 100% right. Many times schedules are at the mercy of resources or bugs are unexpectedly introduced during the code deployment process. One of the most important things is to communicate and work together as a team to resolve issues. Offer to provide clients a walk-through or documentation on new features. Providing an outstanding customer experience is key every step of the way.

Lori Schoenhard, PMP, CSM, CSPO

About the Author
Lori Schoenhard, PMP, CSM, CSPO–Software Development Manager at Proficient Learning, LLC

As the Software Development Manager, Lori is responsible for the technical delivery of Proficient Learning’s mobile and web development projects. She manages the entire application life cycle including concept development for new product enhancements, leading technical teams to execute on technical delivery, developing documentation, and implementing user feedback. Lori has extensive experience in digital and software project management, technical account management, business analysis, quality assurance, and software development. Lori is a graduate of Luther College and is currently pursuing a Master’s Degree in Computer Information Systems with a concentration in IT Project Management from Boston University. Lori is a certified Project Management Professional (PMP) from the Project Management Institute and is also a Certified Scrum Master (CSM) and Product Owner (CSPO) from Scrum Alliance.