There is a sea change happening in software development and operations, and it is not simply the introduction of a new word into our lexicon—it’s much more than that. It is a fundamental shift of perspective in the design, construction, and operation of software in a world where almost every successful organization recognizes that software is not something you simply build and launch—it is something you operate.
What makes this shift unique is that it’s more encompassing, more holistic, and more reflective of the reality that engineering teams face on a daily basis. Long gone are the days that manufacturing and assembly-line metaphors could be used in software development and operations. Long gone are the days that products are things that are designed, planned, and then finally launched. There is no “finally” anymore. There is only an endless cycle of adaptation, change, and learning.
What Ryn and Jennifer have laid out in this volume is a myriad of threads to pull on as engineers in teams and organizations cope with the complexity that comes with trying to make their work “simple.”
Ryn and Jennifer do not paint a picture of one-size-fits-all or deterministic solutionism. Instead, they describe a landscape of topic areas, practices, and observations of teams and organizations that understand the idea that at the heart of good products, good user experiences, and good software is the elegantly messy world of human cooperation, thoughtful critique, effective collaboration, and judgment.
In 2009, my friend Paul Hammond and I gave a presentation at O’Reilly’s Velocity Conference entitled “10+ Deploys a Day: Dev and Ops Cooperation at Flickr.” While some of the material was about perspectives on continuous deployment, many chose to focus on the “10+ Deploys” part rather than the “Cooperation” part. I believe it is a mistake to think that the technology or “hard parts” can be seen as somehow distinct or separate from the social and cultural “soft parts”—they cannot. They are inextricably linked and equally critical to success. In other words, people and process influence tools and software in more ways than most are willing to admit or even know.
My strong advice to readers: do not make the mistake of thinking that technology is not about people and process, first and foremost. Your competition will eat you alive the second you start thinking this.
These topics of concern are not found in typical computer science curriculums, nor are they found in typical professional leadership and development courses. These topics are born out of the pragmatic maturity that only hard-won work in the field can produce.
Ryn and Jennifer have given you an in-depth set of signposts in this book. My genuine request to you, dear reader, is to use these signposts to think with, in your own context and environment.