👋🏻 Hey, I'm here to help you ship better software faster. Here's my most useful links. Most are freely available online.
I think DevOps is the best way to develop, ship, and run software in practice. Unfortunately, DevOps is commonly misunderstood to be a set of technical practices. It's more than just set of technical practices. It's a mindset and perspective that builds technical practices and organizational culture.
Your first step towards the objective of shipping better software faster is to understand DevOps.
Understanding The Three Ways of DevOps
DevOps is the columination of various ideas (like continuous delivery), feedback loops, and organizational practices. The DevOps Handbook describes the three the ways. The book includes a playbook for what a successful DevOps process and organization looks like. The handbook provides you the practical knowledge and theory. 👉🏻 Read my review and analysis.
You may already be familiar with DevOps ideas, but are not entirely sold on the idea. Accelerate: The Science Behind Lean IT and DevOps is the next item on your reading list. Accelerate makes the case, backed by data and case studies, that DevOps lead to higher performing IT teams, more successfull businesses and happier employees. You can take this book to your team and managers to make the case for driving process changes. 👉🏻 Read my review and analysis.
The DevOps Handbook and Accelerate set the context for what building and shipping the best software looks like in practice. Next, learn to build production ready software.
Prepare for Production
Software only provides value in production, everything else is simply preparation. It's difficult to internalize what "production ready" means until you've seen both sides of the coin: stable systems and systems that continually page you at 3 in the morning. By the same reasoning, it's also difficult to build production ready software from the start which is especially hard for beginners and independent developers. Release It! is the best resource out there to learn to build production ready software and handle failure cases. This book changed the way I think about my software and I think it will for you too. 👉🏻 Read my review and analysis.
Put the Theory into Practice
Now you're armed the theory behind the Principle Flow, Principle of Feedback, Pricniple of Continuous Improvement, and background in production operations. The next step is to get out there and starting shipping software. Today's technologies like Docker, Kubernetes, Serverless, and cloud computing make it easier than ever to build and deploy software. Putting a continuous deployment (or delivery depending on your progative) is the first objective. Here are some free tutorials to bootstrap you:
- Continuous Deployment with Docker and AWS
- Continuous Deplyoyment with Golden Images
- Continuous Deployment with Kubernetes
Infrastructure and deployment are only a piece of the puzzle. You also have to build applications that well architecture and production ready. Read my Joy of Design guide to software architecture and boundaries. Also check my podcast on where, what, and how to test applications throughout the deployment pipeline.
Explore my archive of free resources, webinars, talks, podcasts, blog posts, tutorials and video courses or learn more about me. Also join my mailing list to keep up-to-date. I'm confident you'll find something that helps you produce better software. If you're ever in doubt as to what that looks like just remember this short checklist:
- Setup an automated deployment pipeline backed by continuous integration
- Configure and automate production telemetry and alerting
- Strive to improve regressions in all of the above
Good luck out there and happy shipping!
-- Adam Hawkins