I’ve read recently Accelerate, The Science of Lean Software and DevOps by Gene Kim, Jez Humble, and Nicole Forsgren.
This book explains how DevOps emerged, to solve building secure, resilient, rapidly evolving distributed systems at scale; and which capabilities paradigm to focus on to continuously drive improvement.
All research based from surveys from the State of DevOps report and outcomes of profitability, productivity & market share, it identifies 24 key capabilities that do make the difference. It clarifies concepts such as the difference of Continuous Integration and Continuous Delivery, how leadership can tangibly impact the so-called ‘culture’ with detailed and specific actions.
As I’m closing the book I’m thinking the Salesforce peeps need to know and learn about this.
I’m sure you have heard of this before. Let’s not confuse DevOps with Agile although in our environment both goes nicely hand in hand.
DevOps is there to reduce time to market and reduce complexity of old code, pending code, new products, new features, to reduce discrepancies of development environments vs production environments (yes especially this one in the Salesforce world!)
So DevOps is a philosophy to bring Development and Operations closer ( + new tools). Hence Dev + Ops, it tell us:
– Work better together
– Break down silos
– Share responsibilities
So it’s about how IMPROVE Collaboration and Productivity by AUTOMATING infrastructure, workflows, code testing and continuously measuring application performance. Auto everything.
For that, one is to:
- Write software in small chunks, which are integrated, tested, monitored and deployed (in hours, not months).
- Have identical development and production environments, that is also with same configuration.
- Increase rate of software delivery / improve time to market
- More focus in improving the business
For that you will use tools to help to:
– Test code continuously (like Jenkins)
– For source control (such as GitHub) track all changes, application code and config, track e-v-e-r-y-t-h-i-n-g!
– Deployment (although Salesforce is not just a system of records, but it also has users)
– Performance (monitor and alerts on the environment)
And the book? Let’s tackle that and the research learnings in “Salesforce DevOps?! Part 2“
Until then, I’ll leave you with some food for thought:
If you don’t not yet have Version Control in place, it’s time! The importance of having a single source of truth.
As mad as it may sound to you, your production environment can’t be your source of truth, nor can any other monolithic org. If something goes bananas there, the you’re screwed. There’s no easy way to revert changes nor to quickly identify what’s gone wrong to a granular level.
Having a proper repository for version control can also enable automation of deployments and with it the automation of tests. So you can build a safer and more robust way to consistently monitor and get feedback, without slowing down your speed to market. If anything it will speed it up over time.
Also check out Andrew Davis book “Mastering your Salesforce DevOps”, maybe even start with his VirtualDreamin session:
In addition here a bonus for you: 10 VS Code Extensions that will supercharge your Salesforce development, Mike wrote the week before, enjoy!