Good Software Delivery
Good Software Delivery (GSD) is the name for a set of best practices that help teams deliver high-quality software to production in minutes, not months.
While the term GSD may be new for you, you may already be familiar with the core tenants of GSD that have formed as best practices for delivering software over the last two decades.
- Developer Effectiveness
- DevOps as a culture
- Product thinking
- Extreme Programming, Continuous Integration, Continuous Delivery
By combinding these approaches for software delivery into a repeatable patten I've seen great success and growth across individuals, teams and organizations:
- I've been able to apply GSD to multiple client engagements, both at the team level and scaling to many teams through organization-wide programs (driven by communities of motivated people).
- Internally, my teams apply the same principles which we practice and refine to ensure we're also performing at our best
- I've had the pleasure to see my team members move to other teams and share the same practices and success internally and with other clients
- When team members moved to different companies, they've reported success in implementing these practices in their new organization
What is Good Software Delivery?
Good Software Delivery is about establishing a system of software delivery to production that encompasses all of the security and compliance requirements checks in an automated fashion that can be run and reported on earlier in the SDLC before the final delivery to production.
The intent is to increase confidence in releases by trusting development teams to run pipeline automation that audits their changes but then verifying via automated reports when ready for production. - Paul Kordes
In typical scenarios, although software goes through various levels of testing and packaging before delivery to production, there are many additional steps by other siloed departments such as security and compliance before it is deemed truly fit for deployment. The actual requirements to pass these screenings is often only known by the specific department that is directly responsible for doing large amounts of manual inspections and auditing. The end result of this process is that a Sprint is finished and the Engineering teams believes something is ready for deployment and has already moved on to new work only to find out that it did not pass security or compliance screening and changes will need to be made. The result is slow and frustrating to both teams as there is very little understanding of the overall process.
Leveraging GSD brings visibility and early detection of issues such that the software being delivered can be relied on to be truly complete and ready for deployment.
Learn about Good Software Delivery
Below are articles, code repositories, interactive learning modules, and demo apps using GSD practices.
3 Musketeers for an awesome developer experience
One of the core principals behind Good Software Delivery is ensuring Consistency, Control, and Confidence in the automation that developers use every day, while still maintaining a high degree of autonomy and trust.
This is made possible by implementing a pattern called 3 Musketeers in every pipeline.
3 Musketeers is made up of 3 technologies. They are
make,dockeranddocker-compose. The 3 main pillars are Consistency, Control and Confidence.
James Noonan has produced a set of 3 musketeers katacoda scenarios to introduce you to the 3 Musketeers, so you can take advantage of it in your own pipelines.
3 Musketeers Intro- Test, build, and deploy your apps from anywhere, the same wayEnv Variables- Make, Docker Compose & Env VarsConvert Python to 3 Musketeers(Taking a single python file and implement the 3musketeers patterns)Java to 3 Musketeers(Starting out with a gradle spring boot application and implementing 3muskteers patterns)
GSD Hello World Demo - Trust and Verify
https://github.com/contino/gsd-hello-world
The GSD "Hello World" app is written in Golang and wrapped in Docker via 3 Musketeers.
This repo is a demo of how you might implement a set of concepts that make up a "Trust and Verify" pipeline, which is a concept within the practice of GSD. This repo is a learning tool that can help you explore the concepts of GSD & Trust and Verify. The intention is to offer you an implementation that's simple enough for you to get hands-on quickly, with the opportunity to extend it for other use cases, or simply take the learnings into your existing software development for the concepts that apply to your use case.
Good Software Delivery Posts
-
How to implement Good Software Delivery in 30 seconds
Good Software Delivery (GSD) is the term we use for the set of practices that help deliver, well, good software. There’s a focus on short…
-
3 Musketeers for an epic Developer Experience
We all want to reduce toil and improve the developer experience (when starting new applications or joining the team). Developers have had…
-
Good Software Delivery — Trust and Verify
I’ve decided this week is Good Software Delivery week! #goodsoftwaredelivery
-
How Cloud Transformation at Scale can enable Good Software Delivery
Why should you transform?
-
From DevOps to Good Software Delivery
From DevOps to Good Software Delivery
-
Why Business Value eats DevOps for breakfast
Business Value, Curiosity & asking “Why” beat DevOps, Agile & “Requirements”. Unlock simple but powerful ways to supercharge your teams.
-
One DevOps Please — Part 2
“One DevOps Please” — Part 1 recap:
-
One DevOps Please — Part 1
One DevOps Please — An Enterprise Journey to a DevOpsy-Cloud

Good Software Delivery is about establishing a system of software delivery to production that encompasses all of the security and compliance requirements checks in an automated fashion that can be run and reported on earlier in the SDLC before the final delivery to production.
One of the core principals behind Good Software Delivery is ensuring Consistency, Control, and Confidence in the automation that developers use every day, while still maintaining a high degree of autonomy and trust.