Insights from "The Practice" Applied to Software Architecture
Written on
Chapter 1: The Value of Daily Practice
Recently, I delved into Seth Godin's book, “The Practice: Shipping Creative Work.” Prior to this, I had also read “This Is Marketing,” both of which I highly endorse for their insightful content.
Bridging Concepts
I believe there are significant takeaways from “The Practice” that can enhance our understanding of Software Architecture. According to Seth, the practice encompasses what we engage in each day when we enter our professional space, close the door, and dedicate ourselves to our aspirations.
Moreover, the subtitle aptly encapsulates our roles in IT: we produce and share our work, innovate solutions to existing problems, and that is the essence of our endeavors. The practice itself is not merely a means to achieve results but is the result itself, as it is the only aspect we can truly control.
The Stoic Perspective
Understanding that our practice is our primary focus aligns with Stoic philosophy, which emphasizes concentrating on what we can influence and disregarding the rest. The Stoics described this as “the dichotomy of control,” while contemporary psychologists refer to it as having an “internal locus of control” versus an “external locus of control.”
We can harness the Software Architecture practice because it lies within our control. Continuous improvement should be our daily goal.
The Importance of Process
Seth shares a profound insight from Elizabeth King: “Process saves us from the poverty of our intentions.” Good intentions alone are insufficient; effective processes are essential. While sound processes can lead to positive outcomes, they do not guarantee success.
The realm of software is perpetually in motion; it is dynamic, not static. Architecture should be viewed as a snapshot of a continuous evolution.
Engaging in Continuous Review
In Software Architecture, we are perpetually assessing the IT landscape, industries, technologies, frameworks, tools, and programming languages. This ongoing evaluation is crucial as everything is in a state of flux.
Questioning and Deepening Understanding
At the onset of our careers, we often follow directives, build what is outlined, test it, and deploy it across environments. As we advance into senior roles, particularly in Architecture, we begin to ask why. This inquiry deepens our understanding and leads us to the foundational principles of Software Architecture.
Distinguishing Talent from Skill
Talent is an innate quality, part of our genetic makeup, while skill is cultivated through dedication and hard work.
Consider this analogy: achieving physical fitness requires just 1-2 hours of daily commitment to exercise, along with proper nutrition and rest. The challenge lies in maintaining this discipline consistently over a year without excuses.
Similarly, to become proficient professionals, we must actively engage in our practice. We need to push beyond our comfort zones, reduce our unknowns, explore additional patterns, revisit past technological decisions, and continually educate ourselves through reading, podcasts, and conferences.
The practice demands repetition; it requires us to engage frequently enough that it becomes second nature.
Chapter 2: Learning from Experts
In this video, titled "Software Architecture In Practice: The Beginning," we explore foundational concepts that underline effective architecture practices.
The second video, "Software Architecture Tips I WISH I Knew Sooner," shares valuable insights and lessons learned from seasoned professionals in the field.