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.