Conf42 DevOps 2024 - Online

A River Runs Through It: What I Learned About DevOps Ecologies from Standing in Cold Water

Video size:

Abstract

In this talk, we’ll explore the unexpected intersection of fly fishing and DevOps when viewed through a sociotechnical lens, emphasizing the intertwined nature of complex technical systems and human dynamics

Summary

  • What on earth could DevOps and fly phishing possibly have in common? How could they be related? And how does sociotechnical engineering have anything to do with flyphishing?
  • Brian Walter is currently building a company called Open Context. It's a platform for auto discovering and understanding your organization's sociotechnical map. Walter grew up in the Pacific Northwest and has been around DevOps for a while. Today he'll talk about the connections between phishing and DevOps.
  • More than half of the salmon and steelhead runs in Tillamook Bay are born here at the Whiskey Creek volunteer hatchery. Operating a fish hatchery in the northwest is extremely complicated. There are incredible politics involved, environmental concerns, policies to follow. compromise is often the answer.
  • DevOps has its roots in sociotechnical engineering. It underscores the intertwined nature of technology and human systems. For me, just acknowledging this and having empathy for our people goes a long way.
  • The essence of systems thinking is collaboration, shared knowledge, adaptability and continuous learning. Resilience through problem solving and ethics, community and sustainability. By embracing systems thinking, DevOps practitioners can optimize the flow of work and drive innovation.
  • In DevOps, we recognize the software development lifecycle as a holistic system. From ideation all the way through deployment, it's essential to have an endtoend view. feedback and iterative improvement are fundamental principles. We're aligning our DevOps practices with the ever evolving demands of our digital world.
  • Collaboration and shared knowledge are pivotal elements in the DevOps philosophy. DevOps bridges traditionally distinct worlds of development and operations by fostering a culture of collaboration. Adaptability and continuous learning in the fast paced and ever evolving world of tech ensures that DevOps teams are well equipped to respond to emerging challenges.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
What on earth could DevOps and fly phishing possibly have in common? How could they be related? And how does sociotechnical engineering have anything to do with fly phishing? Hello. Hello, everyone. I'm glad you could all join me today. Today we're going to talk about the two things I love, phishing and DevOps. We're going to talk about how they could possibly be related, how we cold possibly learn about one from the other, and we're going to learn a little bit about sociotechnical engineering along the way. I think we're going to have some fun with this one, so let's just jump right in. My name is Brian Walter, and I've spent the last 27 years building technical teams and complex architectures. I've had the privilege of working on some very large systems at scale, and now I'm currently building a company called Open Context. We're a platform for auto discovering and understanding your organization's sociotechnical map, a real time view into the contextual relationships between people, code, infrastructure, security, and services. Now, I grew up in the Pacific Northwest, and as you imagine, probably by the name of this talk, I absolutely love to fish. I love being on the river. I love the bugs. I love the fish. I love being cold. I love the boats. If it's fishing, boating or water related, rain or shine, any of those things, I'm probably your guy. I fished all over North America, British Columbia, Alaska, Montana, Wyoming, Oregon, Idaho, Washington. I love to travel to fish, but my home waters are here in the northwest, specifically the north coast of Oregon. I've lived in a cabin just outside the small coastal town of Tillamook, Oregon, on the banks of the Wilson river. Now, the Wilson is an incredible steelhead and salmon river. In the winter, this was my home in the pictures here. And while its remoteness trades off some of the major conveniences of city life, it lets me be by the water constantly. I've also been around this DevOps thing for quite a while, and as I draw on my experiences from the two of the most important aspects of my life, phishing and DevOps, I keep finding a connection and an intersection between the two, overlapping between two seemingly unrelated and different worlds. I could have named this talk sociotechnical engineering for DevOps, but then all the cool fish pictures wouldn't have made sense. So today we're going to talk about those connections and hopefully entertain you along the way. We're going to start our journey into sociotechnical engineering at my old home on Oregon's Wilson river. Now, the Wilson is a coastal tributary of Oregon's Tillamuk Bay. Several different rivers flow into the waters of Tillamuk Bay and the Wilson's, the largest of them home to Chinook salmon both in the fall and the spring, coho salmon in the fall, steelhead in the winter, and sea run cutthroat trout through the late summer and fall. Additionally, there's native trout that call the Wilson home all year long. Now, I love the Wilson river, but I'm not the only one. Its close proximity to the Portland metro area and its fantastic fisheries have made it a hugely popular destination for fisher people, swimmers, boaters, and countless other groups who enjoy the river. If you're on the west side of town, the Wilson is by far one of the easiest rivers to access from Portland, the Wilson has been on its own journey, a journey of being loved to death. As Portland has grown, by the 1980s and 1990s, the Chinook coho and steelhead trout fisheries were dwindling. Use of the river was at an all time high, with its fisheries collapsing due to pressure. Something had to be done. Salmon runs were down by 80% by the year 2000, and steelhead, the same harvest had been taking its whole, taking its toll, as had logging and habitat loss throughout the estuary. Reforms were needed in so many different areas. One of those reforms we're going to talk about next. Today, more than half of the salmon and steelhead runs in Tillamook Bay are born here at the Whiskey Creek volunteer hatchery. A fish hatchery is a place where salmon and steelhead are collected from the river, artificially spawned and bred to grow thousands upon thousands of baby fish. Those fish are put back into the ecosystem and ultimately contribute to the populations of the river. Located just to the south in Nitart's Bay, the Whiskey Creek hatchery is almost entirely volunteer run, grassroots supported, and absolutely vital to the success of the north coast fisheries. But operating a fish hatchery in the northwest is extremely complicated. There are incredible politics involved, environmental concerns, policies to follow, special interest groups to appease, as well as the demands on the best possible science and practices to ensure the correct impacts, that we're not actually damaging the ecosystem we so love. It's not just about the creation of hatchery fish, but being confident that the impacts to the wildfish that we dearly love are safe beyond all these concerns, it turns out that simply operating these fish hatcheries is extremely complicated in its own right. Today, more than a dozen different state, federal, tribal government agencies, international government agencies. Yep, the canadian treaties are part of this, too. Local fishery advocacy groups environmental groups and commercial interests all weigh in on how fisheries are managed in the northwest. This has a direct impact on hatchery plans and operations. All of these groups have different personalities, people and needs. Some are easy, some are difficult, some are straight up obstinate and impossible to move. And this is a relatively simple hatchery just to the north on the Columbia river, with the largest salmon run in the world. The complications are even wilder when you go there. It's ten times more complicated. So what is a small team of highly skilled ecologies and passionate volunteers to do? How can they run their hatchery operation under in such incredibly complicated and complex conditions? Well, it starts with everyone at the table recognizing that we all love the ecosystem and we all love these fish. We all want a healthy river system. And at the end of the day, compromise is often the answer. Think of these groups as your stakeholders, your business, your product team, your finance team, your compliance department, and even your customers. Everyone cares, everyone has a voice, and everyone can make a complete mess of your project. Starting to sound familiar, right? A highly technical environment with significant regulation, with intense technical demands, and if all goes well, very frequent and regular deployments of fish. Now, we're not going to dive into how hatcheries operate here. That's not what this presentation would be about. But in my learnings, I quickly discovered that the concepts of sociotechnical engineering and the principles of DevOps exist outside the traditional DevOps field, and we find them in many other areas of life. So with that connection, let's learn a little bit about sociotechnical systems theory. Now, full disclosure, I don't profess to be an expert in sociotechnical theory. I'm learning this too. I'm learning from our mentors, folks like John Willis and Andrew Clay Schaefer and James Wicket, folks that have published incredible works and helped define the DevOps movement. If you want to go deep on that subject, John Willis's new book on edward stemming is a great place to start. And presentations from Andrew Clay Schaefer are fantastic as well. But at a high level. Sociotechnical systems theory starts with this, a holistic systems view with an emphasizing on the interconnectedness of the components and relationships between all the components of your environment, the people, most importantly the people, the teams, the code, the infrastructure, et cetera, feedback loops and continuous learning, collaboration, shared knowledge, furthering our craft, adaptive design and evolution, resiliency, anticipatory measures, and most importantly, ethics and human values. We care about our teams. We care about the impacts to our families. We care about the people. If these values sound a lot like what we've heard about DevOps over the years. That's because DevOps has its roots in sociotechnical engineering, much the same way a river system is an incredibly complex ecosystem of interdependent components. So are the environments we operate as DevOps practitioners, with a heavy emphasis on the human element. Sociotechnical engineering underscores the intertwined nature of technology and human systems, urging our DevOps practitioners to ensure that both are in harmony for optimal outcomes. Now, me, I'm an introvert. How can I be socio anything if I don't like talking to people? Is it that I don't like talking to people, or is it something more nuanced than that? Simon Sinek draws an analogy of what an introvert versus an extrovert is, as this an introvert is someone who starts the day with five coins. In every human interaction with another person, those coins are depleted. More human interaction, more depletion. That's why for many of us, we're just exhausted after a conference like this one. Extroverts are the opposite of that. They start the day with no coins, and by the time they interact with someone, it recharges them. They get a dopamine hit. They get fulfillment out of interacting with others. It's an addiction almost for them. And without this interaction, they feel drained. Now, I suspect many of you are introverts, and just as we've learned about sociotechnical engineering, we find ourselves in an interesting spot. If DevOps requires such strong interactions between teams, how on earth can I do this without feeling so drained? I found that tools like asynchronous communication, deliberate writing, and access to real time context maps for our environment crucial to managing my introversion. Nothing kills me faster than an 80 person conference bridge just to solve an incident. For me, just acknowledging this and having a little empathy for our people goes a long way. But for others, it's more difficult. But either way, empathy goes a long way. So with that background, let's talk about some DevOps principles and how they could possibly intersect with fly phishing. Now, if you're at this conference, you're already somebody who knows a thing or two about DevOps. But if not, here's some of the principles. The essence of systems thinking, feedback and iterative improvement. Collaboration, shared knowledge, adaptability and continuous learning. Resilience through problem solving and ethics, community and sustainability. Now, the essence of systems thinking. This is understanding the broad complexities of how our systems work, not just the technical components, but also recognizing that people are part of that system feedback and iterative improvement. This is learning from our experiences and making small changes to improve our systems and improve our practices. Collaboration and shared knowledge it's been said, if you want to go fast, go alone, but if you want to go far, go together. We're nothing if we don't work together as a team. Adaptability and continuous learning bottom line, stuff happens all the time. Our environments can be absolutely crazy. We got to do what we got to do sometimes to get things working. We adapt. And through resilience and problem solving, we know sometimes our problems require just intense focus and commitment. And if it were easy, everyone would do it. But our ethics and our community and our sustainability are at the forefront. We do the right thing, we be honorable. We care for our teams, we have empathy for each other. These are the basic DevOps principles we've all come to know and love. So let's dive in a little bit deeper now. The essence of systems thinking is not just technical dependencies. We're recognizing the intricate interconnection and relationships between people, process and technology within an organization. We're emphasizing viewing the entire software development delivery pipeline as a holistic system rather than isolated components. Systems thinking encourages us to break down silos between development and operational teams, fostering collaboration and treating them as integral parts of the same system with a shared objective. This approach promotes a culture of continuous improvement where feedback loops and proactive problem solving become central. By embracing systems thinking, DevOps practitioners can optimize the flow of work, enhance communications, and drive innovation, ultimately leading to more efficient, resilient and customer centric views on how we deliver our software and our services. Now, when we think about systems thinking, how it could possibly apply to fly fishing. In fly fishing, we see the river as a system, water flow, fish behavior, insect cycles successful anglers understand the entire ecosystem from the types of insects fish might eat to water temperature and clarity. Before setting out, anglers often check weather conditions, understanding the types of fish in a given location and selecting the right gear. In DevOps, we recognize the software development lifecycle as a holistic system. From ideation all the way through deployment. It's essential to have an endtoend view of the software development lifecycle, understanding both development and the operational side. Before deploying code or changes. Teams prepare by understanding the environment and selecting the right tools and setting up monitoring and alerts. Our sociotechnical connection is deep. How both domains require this understanding of complex systems and how the intricate interplay between the various components comes to light, feedback and iterative improvement are fundamental principles in the realm of DevOps, DevOps encourages a culture where feedback is not only welcomed, but actively sought at every stage of the software development and deployment lifecycle. This feedback can come from various sources, including automated testing, monitoring and end users. By continuously gathering and analyzing feedback, DevOps teams can identify areas for enhancement and make incremental changes rather than waiting for major overhauls. This iterative approach ensures that software and infrastructure are constantly evolving to meet changing requirements and challenges. Ultimately, small feedback driven improvements lead to more reliable, efficient and customer centric solutions. We're aligning our DevOps practices with the ever evolving demands of our digital world. Now, fly fishing. How does that connect here? Right, fly fishing we're adjusting our techniques based on success and failures. We're understanding our fish's reaction to different flies. Not every cast results in a catch. Anglers need patience and the willingness to try different techniques. Anglers constantly observe currents, constantly observe fish behavior and the effectiveness of their flies and lures, and we adjust our techniques accordingly for DevOps continuous monitoring, testing, iterative development and response to system's feedback. We know that not every deployment is smooth and teams face challenges, but they persist, they troubleshoot and they iteratively improve their process. We're continuously monitoring the feedback, we're continuously monitoring our teams, and they're adapting their code to the infrastructure based on the performance, the user feedback and systems alerts. Sociotechnical connection here is that we're emphasizing the dynamic relationship between tools and equipment, human decisions and actions, and socially we're connecting based on feedback. Without that feedback, we can't improve the system. Collaboration and shared knowledge are pivotal elements in the DevOps philosophy. DevOps bridges traditionally distinct worlds of development and operations by fostering a culture of collaboration and open communication. This collaboration encourages developers and operations teams to work together seamlessly, breaking down silos and sharing their expertise. The sharing of knowledge and tools and best practices creates a collective intelligence within the organization, a context for learning. By pooling their insights and experiences, teams can solve problems more effectively and proactively, speeding up development cycles and enhancing system reliability. In essence, collaboration and shared knowledge are the glue that binds DevOps teams together, enabling them to deliver high quality software efficiently and respond swiftly to the ever changing demands of our business. Now, fly fishing anglers, we do share knowledge. We share knowledge of good fishing spots, we share knowledge of fly patterns and our techniques. We tie flies and we maintain our equipment as a craft. Often this craft is honed over many, many years, and while it can be a solitary activity, anglers often share chips and favorite fishing spots and techniques with the community. Now, DevOps crossfunctional collaboration and sharing insights across development, operations and other departments. We write good code, creating efficient pipelines and ensuring that systems resilience is a craft in its own right. Collaboration between development, operations and even business units is fundamental to the DevOps philosophy. Now, both tools and platforms for sharing in the technical and the culture of collaboration in the social will influence our outcomes. I think that's clear now. Adaptability and continuous learning in the fast paced and ever evolving world of tech, DevOps teams remain agile and adaptable. They're committed to embracing change, whether it's in the form of new tools, methodologies, or shifting business requirements. Continuous learning is a cornerstone of this adaptability. DevOps practitioners are dedicated to staying updated with the latest industry trends, ecologies and best practices. They understand what works today may not work tomorrow, so they continuously seek opportunities to enhance their skills and knowledge. This commitment to adaptability and learning ensures that DevOps teams are well equipped to respond to emerging challenges. They innovate effectively and they deliver value to their organization with a resilience and agility. Now, on a river, we can go from the view on the left to the view on the right in a matter of hours. Change happens with or without you being ready for it. We have to be prepared and we have to adapt. And your business is no different. In fly fishing, we're constantly modifying our strategies based on changing environmental conditions and our learned experiences. Anglers often experiment with different flies, casting techniques, fishing locations, and depending on the time of the day, the type of fish in the water and the conditions. We change our tactics in DevOps, adapting to new tools and methodologies and best practices in this ever evolving tech landscape. It can drive you crazy, but we do it. Teams experiment with new tools, deployment strategies, infrastructure configurations, and we optimize our processes. Teams need to be agile, adapting to our user requirements, our system changes, and our unexpected challenges. Here we have yet another sociotechnical connection, where continuous learning and adaptability is the intersection of evolving technical systems and the people operating within them. Resilience through problem solving is a critical aspect of DevOps philosophy. DevOps teams recognize that failures and issues are an inherent part of complex it systems. And those failures are not always technical. Sometimes they're human. In fact, often they're human. Instead of merely trying to avoid problems, we embrace them as opportunities for improvement. DevOps encourages a proactive approach to problem solving by establishing user feedback loops and using automation for early detection and resolution of issues. This resilience mindset involves learning from failures, documenting our incidents, and continuously improving process to prevent similar problems from reoccurring again. In doing so, DevOps not only encourages the robustness of our systems, but also fosters a culture of continuous learning and adaptability, ultimately enhancing an organization's ability to weather challenges and deliver reliable and high quality software and services. In fly fishing, overcoming challenges like weather is the name of the game. We have elusive fish. We have equipment malfunctions constantly. Sometimes the fish just aren't going to bite. In DevOps, anticipating and mitigating and quickly recovering from systems failures and bugs. That's what we do. So our connection here, we're building robust systems, and not just through technical measures, but by leveraging our human creativity and problem solving skills. Ethics, community, and sustainability are increasingly important considerations in the world of DevOps. DevOps practitioners are recognizing their ethical responsibility to build and deploy technology that is not only functional, but also considers the broader societal and environmental impacts. DevOps communities are actively sharing knowledge on the best practices related to ethical considerations, things like data privacy, security, and responsible AI deployment. Moreover, sustainability has emerged as a key concern, with a heavy focus on reducing the carbon footprint of our services and operations. DevOps practices like automation and efficient resource utilization align with sustainability goals by reducing waste and energy consumption, not to mention the financial incentives to your business. In essence, DevOps is evolving to encompass this holistic approach that incorporates ethics, community collaboration, and sustainability principles, ensuring that technology development is not just efficient, but also socially responsible and environmentally conscious. In fly fishing, ethical anglers practice catch and release, ensuring minimal impact to the fish populations and impact of the watershed. Sports people are the greatest contributors to conservation efforts in the United States by an order of magnitude above any other groups. We take care of our resources, and we're stewards of the environment. In DevOps, ethical considerations in software development, like data privacy, security, and user trust, matter teams respect their operational environment, ensuring minimal downtime, rapid recovery from failure, and sustainable work practices. We care about the health of our wealth and well being of our coworkers and colleagues. We're in this together sociotechnical. We're navigating the ethical landscape using both technical tools, policies, and human judgment. We know that people matter, we show empathy, and we're excellent to each other. So why do I care about all this stuff? So, I'm the co founder of a company called Open Context. We're a real time, auto discovered, sociotechnical map of your company. I know that's a mouthful, but we help you find someone who can fix a problem in a complex system faster. We graph the relationships between all the things, the people, the code, the infrastructure, the vulnerabilities. We're in open beta right now, and we'd love your feedback. You can sign up for free@opencontext.com. So to wrap this up, the aspects of sociotechnical engineering are everywhere, and we permeate so many different aspects of our lives, not just DevOps. I hope this has been entertaining and I've enjoyed sharing some of what I've learned along the way. If so, sign up for Opencontext and most importantly, go fishing. Thank you.
...

Brian Walter

Co-Founder & CEO @ OpenContext

Brian Walter's LinkedIn account Brian Walter's twitter account



Awesome tech events for

Priority access to all content

Video hallway track

Community chat

Exclusive promotions and giveaways