Mike BlandInstigator2024-02-21T00:00:00-05:00https://mike-bland.com/Mike Blandmbland@acm.orghttps://mike-bland.com/about.htmlCalls to Action2024-02-21T00:00:00-05:002024-02-21T00:00:00-05:00https://mike-bland.com/2024/02/21/calls-to-actionIt's up to you to lead meaningful change using the ideas from this Making Software Quality Visible series. Here are some final resources, insights, and calls to action to improve your own software quality culture.<div itemscope itemtype="https://schema.org/BlogPosting"><header><p class="desc" itemprop="description">It's up to you to lead meaningful change using the ideas from this Making Software Quality Visible series. Here are some final resources, insights, and calls to action to improve your own software quality culture. </p> <p class="meta"><span itemprop="datePublished"><time datetime="2024-02-21T00:00:00-05:00">21 Feb 2024</time></span><br /> <span class="tags">Tags: <span itemprop="keywords"><a href="https://mike-bland.com/tags/making-software-quality-visible.html">Making Software Quality Visible</a>, <a href="https://mike-bland.com/tags/leadership.html">leadership</a>, <a href="https://mike-bland.com/tags/testing.html">testing</a></span></span> </p> </header> <div itemprop="articleBody"> <p>This is the twenty-second and final post in the <a href="https://mike-bland.com/tags/making-software-quality-visible.html">Making Software Quality Visible series</a>. It makes clear what you need to do to get started putting all these ideas into practice. It’s where I finally stop talking and you start <em>doing</em> something with all this information.</p> <p>See the full <a href="https://mike-bland.com/making-software-quality-visible">Making Software Quality Visible</a> presentation for the whole enchilada. Feel free to send me feedback, thoughts, or questions via email or by posting them on the <a href="https://www.linkedin.com/posts/mike-bland_calls-to-action-mike-bland-activity-7166097578512629760-sd-X">LinkedIn announcement corresponding to this post</a>.</p> <h3 id="introduction">Introduction</h3> <p>No matter what project you’re on, or what company you work for, you can do something about these problems.<sup id="fnref:foreshadowing" role="doc-noteref"><a href="https://mike-bland.com/2024/02/21/calls-to-action.html#fn:foreshadowing" class="footnote" rel="footnote">1</a></sup> The resources for dealing with them are just as available to you as they are to any other company, given the right mindset.</p> <p>I’ve shared many concepts behind the changes you may need to make. These are important, but relatively straightforward to grasp. The harder part of the problem isn’t getting people to pay attention to these concepts and to understand them, but to act on them. The most important skill you’ll need to make that happen…</p> <h4 id="learn-about-leadership">Learn about leadership!</h4> <p><em>The biggest challenge isn’t technical—it’s changing the</em> mindset.</p> <p>…is <em>leadership</em>.</p> <p>Many technical people think they’re above this fuzzy “people stuff,” that driving improvements are all about data and logic and meritocracy. But look where that’s gotten us as an industry with regard to software quality and avoidable damage done to society. The purely technological mindset, and its lack of appreciation for “people stuff,” is why good practices like those we’ve discussed so often fail to spread.</p> <p>Leadership is also an eminently transferable skill, highly valuable and useful no matter where you find yourself during your career. It has nothing to do with the title you happen to hold, but with how you conduct yourself to achieve alignment with others. It’s a vast topic that you can study for life, but here are a few of my favorite starting points at the moment:</p> <ul> <li> <p><em>John “Add Value to People” Maxwell, <a href="https://www.johnmaxwell.com/blog/the-5-levels-of-leadership1/">The 5 Levels of Leadership</a></em><br /> John Maxwell’s personal mission is to “add value to people,” which is my favorite short definition of “leadership.” His book <a href="https://www.johnmaxwell.com/blog/the-5-levels-of-leadership1/">The 5 Levels of Leadership</a> clearly illustrates how leadership transcends title and decision making <a href="https://youtu.be/KKJprZqU_oU?t=41">authoritah</a>, and what’s required to realize outstanding leadership potential.</p> </li> <li> <p><em>L. David Marquet, <a href="https://davidmarquet.com/leadership-is-language-book/">Leadership is Language</a></em><br /> David Marquet’s <a href="https://davidmarquet.com/leadership-is-language-book/">Leadership is Language</a> is a playbook highlighting how to replace Industrial Revolution era communication habits with more empowering and productive modern habits. It illustrates how to stop merely telling people what to think and do, and how to encourage everyone to grow as decision makers and leaders. The results can literally make the difference between life and death.</p> </li> <li> <p><em>Liz Wiseman, <a href="https://thewisemangroup.com/books/multipliers/">Multipliers</a></em><br /> In a similar vein, Liz Wiseman’s <a href="https://thewisemangroup.com/books/multipliers/">Multipliers</a> illustrates the distinction between “Diminishers” that drain intelligence and energy from organizations an “Multipliers” that amplify people’s capabilities. It catalogs and contrasts the behaviors of each, encouraging explicit awareness of our own tendencies, weaknesses, and strengths.</p> </li> <li> <p><em>Scott Miller and David Morey, <a href="https://redwheelweiser.com/book/the-leadership-campaign-9781632650436/">The Leadership Campaign</a></em><br /> Miller and Morey’s <a href="https://redwheelweiser.com/book/the-leadership-campaign-9781632650436/">The Leadership Campaign</a> is a guide to the dynamics of stepping forward to lead a movement, modeled directly on political campaigning. The focus is on clarity of messaging and organization, building momentum, and taking advantage of opportunities.</p> </li> <li> <p><em>Michael Bungay Stanier, <a href="https://www.mbs.works/best-books-training-for-coaches-leaders-and-mentors/the-coaching-habit-hub/">The Coaching Habit</a></em><br /> Michael Bungay Stanier’s <a href="https://www.mbs.works/best-books-training-for-coaches-leaders-and-mentors/the-coaching-habit-hub/">The Coaching Habit</a> is another book focused on language, specifically when it comes to leading individuals to think through their own challenges. It talks about how to “tame your Advice Monster” and focusing on helping people develop their own solutions and capabilities.</p> </li> <li> <p><em>Ken Blanchard, et. al., <a href="https://www.kenblanchard.com/Store/Leadership-and-the-One-Minute-Manager">Leadership and the One-Minute Manager</a></em><br /> <a href="https://www.kenblanchard.com/Store/Leadership-and-the-One-Minute-Manager">Leadership and the One-Minute Manager</a> describes Blanchard’s “Situational Leadership” model. This model describes the need to adapt one’s leadership style to each individual over time based on their current capabilities.</p> </li> </ul> <p>Now remember from <a href="https://www.harpercollins.com/products/crossing-the-chasm-3rd-edition-geoffrey-a-moore">Crossing the Chasm</a> that it falls on the Instigators to lead adoption of technologies and practices across an organization. As an Instigator, one of the lessons you’ll learn is that, sometimes…</p> <h4 id="instigator-theory">Instigator Theory</h4> <p><em>It’s easier to change the rest of the world than your own team.</em></p> <p>…it’s easier to change the rest of the world than your own team. I call this phenomenon <a href="https://mike-bland.com/2022/12/05/the-snowflake-fallacy-and-instigator-theory.html">Instigator Theory</a>. However, as frustrating as this is, and as long as it takes to overcome, the basic outline of what you need to do is straightforward:</p> <ul> <li> <p><strong>Phase One</strong><em>: Connect with—or build—a community of fellow Instigators</em><br /> First, find your people. Put your feelers out. Invite folks to coffee, then start organizing informal meetings, and send out open invitations. See who really cares about software quality and is willing to show up to do something about it.</p> </li> <li> <p><strong>Phase Two</strong><em>: Develop resources and do the work</em><br /> Next, employ your leadership skills and challenge the community to develop resources for helping individuals acquire new skills and teams align on quality practices.</p> <ul> <li> <p><em>Focus, simplify, and take your time in the beginning</em><br /> As mentioned before, there’s no need to rush, and take care not to spread yourselves too thin.</p> </li> <li> <p><em>Every earlier success lays a foundation and creates space for future effort</em><br /> In time, every win you deliver will draw more people into the community, which then creates the capacity to deliver the next win.</p> </li> </ul> </li> <li> <p><strong>Phase Three</strong><em>: Share the results—make the work and its impact visible</em><br /> As your community begins delivering resources, and people put those resources to good use, make all that work and its impact visible early and often. Radiate the good work your doing and its results into the environment as much as you can. And as part of generating that radiation…</p> <ul> <li><em>Recognize the value of one another’s contributions!</em><br /> …make sure to recognize the value that each member of the community adds to the effort! This is long term work that’s often thankless, as the focus for most of the organization remains on doing business as usual. Recognizing everyone’s value is a big part of keeping up morale and momentum, and makes that value visible to others in the organization as well.</li> </ul> </li> </ul> <p>Finally, I’d like to leave you with a concrete list of things you and your fellow Instigators can work to change.</p> <table> <thead> <tr> <th style="text-align: left">Where we are</th> <th style="text-align: left">Where we’d like to go</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">Slow, unreliable, expensive processes</td> <td style="text-align: left">Fast, reliable, efficient feedback loops</td> </tr> <tr> <td style="text-align: left">Lots of duplicated, complex code</td> <td style="text-align: left">Well-factored, readable, testable code</td> </tr> <tr> <td style="text-align: left">Large, complex, monolithic code reviews</td> <td style="text-align: left">Small, digestible, easily reviewable changes</td> </tr> <tr> <td style="text-align: left">Large, complex, flaky test suites</td> <td style="text-align: left">Balanced, stable Test Pyramid-based suites</td> </tr> <tr> <td style="text-align: left">Expensive metrics people can’t act upon</td> <td style="text-align: left">Meaningful, useful Vital Signs taken seriously</td> </tr> <tr> <td style="text-align: left">Reinventing the wheel in wasteful silos</td> <td style="text-align: left">Sharing stories, language, useful examples</td> </tr> <tr> <td style="text-align: left">Complexity, risk, waste, and suffering</td> <td style="text-align: left">Clarity, confidence, efficiency, and delight</td> </tr> <tr> <td style="text-align: left"><strong>Testing (only) like a user would</strong></td> <td style="text-align: left"><strong>Testing like a user’s life depends on it!</strong></td> </tr> </tbody> </table> <p>Let’s compare where many of us are today, without good quality practices in place, to where we’d like to get everyone to go.<sup id="fnref:campaign" role="doc-noteref"><a href="https://mike-bland.com/2024/02/21/calls-to-action.html#fn:campaign" class="footnote" rel="footnote">2</a></sup></p> <ul> <li> <p>Ultimately, we want to replace painful, expensive processes with fast, reliable, and efficient feedback loops. We can start to do that by…</p> </li> <li> <p>…rejecting duplication and excess complexity in our code, and by writing readable, testable code instead.</p> </li> <li> <p>We can reject large, monolithic code reviews hiding lots of bugs and insist upon smaller, more reviewable changes.</p> </li> <li> <p>We can reduce the size, complexity, and unreliability of existing test suites by evolving towards a balanced, reliable suite based on Test Pyramid concepts.</p> </li> <li> <p>We can throw out meaningless metrics that are expensive and painful to collect in favor of meaningful, actionable, and relatively cheap Vital Signs.</p> </li> <li> <p>We can stop wasting resources on having teams wrestle with common quality problems separately, and help one another by sharing stories, language, and working examples.</p> </li> <li> <p>Improving our software quality can minimize complexity, risk, waste, and suffering, and the increased understanding it affords will yield clarity, confidence, efficiency, and delight.</p> </li> <li> <p>Once freed from the mental trap of testing only like a user would, we can begin testing like a user’s life depends on it.</p> </li> </ul> <p>Ultimately, creating great, high quality software shouldn’t require heroics, sacrifice, or endless pursuit of technologies or resources.</p> <div class="centered"> <p>Making software quality <strong>visible</strong> will…<br /> start a <strong>Chain Reaction</strong> that will…<br /> minimize <strong>suffering</strong>—and ultimately…<br /> Make the <strong>right thing</strong> the easy thing!</p> </div> <p>Ensuring that everyone can see what high software quality work looks like helps create the conditions for a positive Chain Reaction. As principles and practices spread, and priorities align around quality, we’ll see suffering subside as we keep making the right thing easier! Then maybe one day, it’ll be so damn easy everyone can’t help but to do the right thing by default.</p> <p class="centered"><strong><a href="https://mike-bland.com/making-software-quality-visible">mike-bland.com/making-software-quality-visible</a></strong></p> <p>Thank you!</p> <h3 id="acknowledgments">Acknowledgments</h3> <p><em><a href="https://www.letterkenny.tv/">I appreciates</a> all the folks who’ve contributed to this presentation!</em></p> <div class="centered"> <p><a href="https://www.linkedin.com/in/onoratovaticone/">Ono Vaticone</a>, Microsoft<br /> <a href="https://www.linkedin.com/in/john-turek-0660634/">John Turek</a>, Aetion<br /> <a href="https://www.linkedin.com/in/isaac-truett/">Isaac Truett</a>, EAB<br /> <a href="https://www.linkedin.com/in/chris-douglas-27696a1/">Chris Douglas</a>, AARP<br /> <a href="https://www.linkedin.com/in/jakespracher/">Jake Spracher</a><br /> Oleksiy Shepetko, Microsoft<br /> <a href="https://www.linkedin.com/in/alexanderbuccino/">Alex Buccino</a>, Squarespace</p> <p>And my fellow QCI Instigators at Apple for your past wisdom—<br /> you know who you are!<br /> (And you know that <em>I know</em> who you are!)</p> </div> <h3 id="footnotes">Footnotes</h3> <div class="footnotes" role="doc-endnotes"> <ol> <li id="fn:foreshadowing" role="doc-endnote"> <p>If you were paying attention to the description of the narrative arc—or at least to the agenda at the beginning—you should’ve seen this part coming! <a href="https://mike-bland.com/2024/02/21/calls-to-action.html#fnref:foreshadowing" class="reversefootnote" role="doc-backlink">↩</a></p> </li> <li id="fn:campaign" role="doc-endnote"> <p>I was inspired to create this list after reading <a href="https://redwheelweiser.com/book/the-leadership-campaign-9781632650436/">The Leadership Campaign</a> chapter “Step 6: DEFINE Everything.” <a href="https://mike-bland.com/2024/02/21/calls-to-action.html#fnref:campaign" class="reversefootnote" role="doc-backlink">↩</a></p> </li> </ol> </div> </div> <footer> <div class="copyright">Copyright <span itemprop="copyrightYear"><time datetime="2024">2024</time></span> <address><span itemprop="copyrightHolder" itemscope itemtype="https://schema.org/Person"><a href="https://mike-bland.com/about.html" class="copyright" rel="author" itemprop="url"><span itemprop="name">Mike Bland</span></a></span></address>.</div> <p class="license">Except as <a href="https://mike-bland.com/policies.html#restrictions">noted</a>, <a href="https://mike-bland.com/2024/02/21/calls-to-action.html"><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title" itemprop="name">Calls to Action</span></a> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://mike-bland.com" property="cc:attributionName" rel="cc:attributionURL" itemprop="url">Mike Bland</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>. Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="https://mike-bland.com/policies.html" rel="cc:morePermissions">https://mike-bland.com/policies.html</a>. </p> </footer> </div>
Copyright 2024 Mike Bland. Except as noted, licensed under a Creative Commons Attribution 4.0 International License. See https://mike-bland.com/policies.html for details.Building a Software Quality Culture2024-02-15T00:00:00-05:002024-02-15T00:00:00-05:00https://mike-bland.com/2024/02/15/building-a-software-quality-cultureSoftware quality doesn't come from forcing people to use specific tools, techniques, or processes. It happens when making high software quality becomes part of their lifestyle. Here are a few hints to make that happen.<div itemscope itemtype="https://schema.org/BlogPosting"><header><p class="desc" itemprop="description">Software quality doesn't come from forcing people to use specific tools, techniques, or processes. It happens when making high software quality becomes part of their lifestyle. Here are a few hints to make that happen. </p> <p class="meta"><span itemprop="datePublished"><time datetime="2024-02-15T00:00:00-05:00">15 Feb 2024</time></span><br /> <span class="tags">Tags: <span itemprop="keywords"><a href="https://mike-bland.com/tags/making-software-quality-visible.html">Making Software Quality Visible</a>, <a href="https://mike-bland.com/tags/testing.html">testing</a></span></span> </p> </header> <div itemprop="articleBody"> <p>This twenty-first post in the <a href="https://mike-bland.com/tags/making-software-quality-visible.html">Making Software Quality Visible series</a>—finally!—concerns making high software quality a way of organizational life. It contains a few high-level tips on how to insinuate it into people’s mindset, circling back to concepts covered near the beginning of the series.</p> <p>I’ll update the full <a href="https://mike-bland.com/making-software-quality-visible">Making Software Quality Visible</a> presentation as this series progresses. Feel free to send me feedback, thoughts, or questions via email or by posting them on the <a href="https://www.linkedin.com/posts/mike-bland_building-a-software-quality-culture-mike-activity-7163951049865699328-mWqN">LinkedIn announcement corresponding to this post</a>.</p> <h3 id="introduction">Introduction</h3> <p>Achieving and maintaining high software quality by eliminating unnecessary complexity, risk, waste, and suffering often requires changing the culture of your organization.</p> <p>Let’s define specifically what we mean by culture.<sup id="fnref:culture-apple" role="doc-noteref"><a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fn:culture-apple" class="footnote" rel="footnote">1</a></sup> One possible definition is that:</p> <p><strong>Culture is the <em>shared lifestyle</em> of a team or organization.</strong></p> <p>This lifestyle is what you see people doing together day to day, and the way they do it. For our purposes, we need to understand the essence of lifestyle, where it comes from and what shapes it. So here’s an expanded definition of “culture”:</p> <p><strong>Culture is the <em>emergent result</em> of a <em>shared mindset</em> manifest through <em>concrete behaviors</em>.</strong></p> <p>In order to influence lifestyle, which is the result, we have to influence concrete behaviors. In order to influence those, we need to influence people’s mindset.</p> <p>However, the absolute <em>least</em> effective way to influence mindsets is to…</p> <p><strong>Don’t shame people for doing Business as Usual. Help them <em>recognize and change it.</em></strong></p> <p>…shame people for falling into the common traps we’ve learned about. They’re so common because it’s human nature to fall into them. Instead, we need to help everyone recognize these traps, focus on avoiding them, and remain vigilant against them, and change Business as Usual together.</p> <h4 id="challenging--changing-business-as-usual">Challenging & Changing Business as Usual</h4> <p><em>Changing cultural norms requires understanding them first.</em></p> <p>Challenging cultural norms supporting Business as Usual isn’t easy, and it’s honestly frightening. There’s actually a good reason for that:</p> <ul> <li> <p><em>Everything in a culture happens for a reason—challenge reasons thoughtfully!</em><br /> The existing norms do exist for a reason. The question is whether that reason holds up today. So we need to try to understand those reasons first, then challenge them thoughtfully.<sup id="fnref:norms" role="doc-noteref"><a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fn:norms" class="footnote" rel="footnote">2</a></sup></p> </li> <li> <p><em>People often feel invested in old ways and fear the cost of new ways.</em><br /> This is because many people feel invested in their existing methods. They fear the cost and risk of changing those methods, even if they no longer provide the value they once did. This is common human nature…</p> </li> <li> <p><em>We’re often asked for <em>data</em> to prove a different approach actually helps—<em>before</em> trying it…</em><br /> …and is why some will ask for data or other proof that a change will be effective <em>before</em> trying it.</p> </li> <li> <p><em>…while we throw time, money, people, and tools at existing processes.</em><br /> At the same time, they’ll continue throwing resources into existing processes as they have for years.</p> </li> </ul> <p>The most productive way to approach such a challenge requires taking the time to gather enough information and build some trust.</p> <ul> <li><em>Challenge: Haven’t we proven that the existing ways aren’t (totally) working?</em><br /> You can then carefully question whether current methods are effective, or effective enough on their own, given substantial historical evidence to the contrary. On this basis, you may persuade some to reexamine the problem and try a different approach.</li> </ul> <p>Notice that this challenge to the status quo is in the form of a thoughtful question.</p> <h4 id="the-power-of-asking-good-questions">The power of asking good questions</h4> <p><em>“What could we do differently to improve our software quality?”</em></p> <p>The ultimate question is “What could we do differently to improve our software quality?”<sup id="fnref:coaching" role="doc-noteref"><a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fn:coaching" class="footnote" rel="footnote">3</a></sup> However…</p> <ul> <li> <p><em>Questions develop shared understanding of the culture before changing it</em><br /> …there are many more questions necessary to help everyone understand why things are the way they are, what needs to change—and how.</p> </li> <li> <p><em>Asking encourages thinking about a problem, possible solutions</em><br /> Asking good questions includes people in the process of discovery and finding solutions, which develops their own knowledge and problem solving skills.</p> </li> <li> <p><em>Good questions enable new information, perspectives, and ideas to emerge</em><br /> Good questions enable people to share information, perspectives, and ideas that wouldn’t otherwise arise if they were only told what to think or do.</p> </li> <li> <p><em>Asking what to do is more engaging than telling what to do—produces buy in</em><br /> Taking the time to ask people questions pulls people into the change process, which increases their motivation to buy into any proposed changes that emerge.</p> </li> </ul> <p>This is summed up by a great Senegalese proverb shared by Bono in Chapter 20 of <a href="https://en.wikipedia.org/wiki/John_Doerr">John Doerr</a>’s <a href="https://www.whatmatters.com/the-book">Measure What Matters</a>:</p> <ul> <li><strong>“If you want to cut a man’s hair, it is better if he is in the room.”</strong><br /></li> </ul> <p>There is one catch, though.</p> <p><strong>If people don’t know where to begin, are stuck in old ways, or are under stress…direct near term guidance may be necessary.</strong></p> <p>Your audience may get stuck. They may currently have no idea about what to change or how—because they lack knowledge, experience, or imagination to consider approaches beyond the status quo. Or, as we’ll discuss shortly, they may be under incredible stress and unable to think clearly or creatively. In that case, you may need to provide more direct guidance, at least in the beginning.<sup id="fnref:sl2" role="doc-noteref"><a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fn:sl2" class="footnote" rel="footnote">4</a></sup></p> <p>Whatever their situation, the most effective way to influence mindsets is to help people solve their own problems by…</p> <p><strong>Sell—don’t tell!</strong></p> <p>…selling, not telling.</p> <p>People <em>don’t like</em> being <em>told</em> to change their behaviors, because it’s like being told to change their <em>minds</em>. If you know anything about people, you know they <em>hate</em> changing their minds unless <em>they</em> are doing the changing, by their own choice.</p> <p>This is why we’ve emphasized asking questions, raising awareness, and working together to make quality visible—instead of imposing process changes or technical solutions through force. People need to understand and buy into changes in order to embrace them fully. We can’t force them to make changes they don’t perceive as necessary or valuable if we want the change to be successful.</p> <p>Of course, not everyone’s going to change their mindset at once—some may never come around at all. However, our ultimate goal should be to…</p> <p><strong>Make the right thing the easy thing!</strong><sup id="fnref:right-thing-easy" role="doc-noteref"><a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fn:right-thing-easy" class="footnote" rel="footnote">5</a></sup></p> <p>As we continue working to improve quality and make it visible, it will get easier and easier to do both. Practices and their results will become more accessible, encouraging wider and wider adoption. Eventually, we want to make it harder <em>not</em> to do the right thing, because the right thing will happen by default.</p> <p>This will be challenging, and take time. It’s important to identify the right people to engage directly in the beginning, when we’re starting the process, and who to put off until later.</p> <h4 id="focus-on-the-early-majoritytotal-product">Focus on the Early Majority/Total Product</h4> <p><em>Geoffrey A. Moore, <a href="https://www.harpercollins.com/products/crossing-the-chasm-3rd-edition-geoffrey-a-moore">Crossing the Chasm, 3rd Edition</a></em></p> <img src="https://mike-bland.com/images/crossing-the-chasm.png" title="Focus on the Early Majority/Total Product" alt="Illustration of the Crossing the Chasm model, adapted from Crossing the Chasm, 3rd Edition by Geoffrey A. Moore." style="margin:auto;text-align:center"/> <p>This returns us to the Crossing the Chasm model. As Instigators leading people to improve software quality and make it visible, focus your energy on connecting with other Instigators and the early Early Majority. Don’t worry so much about the rest—focus on delivering the Total Product, and it will take care of the other groups.</p> <h4 id="the-rainbow-of-death">The Rainbow of Death</h4> <p><em><a href="https://mike-bland.com/the-rainbow-of-death">mike-bland.com/the-rainbow-of-death</a></em></p> <img src="https://mike-bland.com/images/rainbow-of-death.png" title="The Rainbow of Death" alt="Illustration of the Rainbow of Death model from mike-bland.com/the-rainbow-of-death." style="margin:auto;text-align:center"/> <p>The Rainbow of Death can help you analyze your progress over time and discover where the gaps in your program are. However, don’t necessarily start with the Rainbow of Death, as it may be to overwhelming at the beginning.</p> <h4 id="instigating-culture-change">Instigating Culture Change</h4> <p><em>Essential needs an internal community must support</em></p> <img src="https://mike-bland.com/images/skills-alignment-visibility.png" title="Skill Development, Alignment, and Visibility: Essential needs an internal community must support" alt="Graphic showing a virtuous cycle between Individual Skill Development, Team/Organizational Alignment, and Quality Work/Results Visibility. These are essential needs an internal community must support to instigate culture change. Each part of the cycle gains momentum from the others, but it’s important to focus on completing one effort before launching the next." style="margin:auto;text-align:center"/> <p>Instead, have a conversation to decide where to begin within the Skill Acquisition, Alignment, and Visibility cycle. You can decide to tackle the highest priority issue, the most urgent issue, the quickest win you can get, etc. You can take any of the examples from <a href="https://mike-bland.com/2023/08/02/formative-experiences-google.html">Google</a> and <a href="https://mike-bland.com/2023/08/16/formative-experiences-apple.html">Apple</a> that I’ve shared as a starting point, then tailor them to your specific needs. The important thing is to focus, simplify, and ship something to build momentum for the next step in the cycle.</p> <h3 id="footnotes">Footnotes</h3> <div class="footnotes" role="doc-endnotes"> <ol> <li id="fn:culture-apple" role="doc-endnote"> <p>These next two statements defining “culture” are my paraphrase of a concept I discovered from an Apple internal essay. <a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fnref:culture-apple" class="reversefootnote" role="doc-backlink">↩</a></p> </li> <li id="fn:norms" role="doc-endnote"> <p>I learned this principle from an Apple internal essay. <a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fnref:norms" class="reversefootnote" role="doc-backlink">↩</a></p> </li> <li id="fn:coaching" role="doc-endnote"> <p>Like many, I learned many of these aspects of the power of asking good questions from <a href="https://www.mbs.works/about/">Michael Bungay Stanier</a>’s <a href="https://www.porchlightbooks.com/product/coaching-habit-say-less-ask-more--change-the-way-you-lead-forever--michael-bungay-stanier/isbn/9780978440749">The Coaching Habit</a>.</p> <p>Also, thanks to <a href="https://www.linkedin.com/in/wolfgang-trumler-53771a146/">Wolfgang Trumler</a> for reminding me of the power of asking people what to do versus telling them what to do. <a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fnref:coaching" class="reversefootnote" role="doc-backlink">↩</a></p> </li> <li id="fn:sl2" role="doc-endnote"> <p>This insight was inspired by discussion of the Situational Leadership II® model described in <a href="https://www.kenblanchard.com/">Ken Blanchard</a>’s <a href="https://www.kenblanchard.com/Store/Leadership-and-the-One-Minute-Manager">Leadership and the One Minute Manager</a>. <a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fnref:sl2" class="reversefootnote" role="doc-backlink">↩</a></p> </li> <li id="fn:right-thing-easy" role="doc-endnote"> <p>This has been my tagline for years. I think I originally used it in the text of <a href="https://mike-bland.com/the-rainbow-of-death">The Rainbow of Death</a> from March 2017. <a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html#fnref:right-thing-easy" class="reversefootnote" role="doc-backlink">↩</a></p> </li> </ol> </div> </div> <footer> <div class="copyright">Copyright <span itemprop="copyrightYear"><time datetime="2024">2024</time></span> <address><span itemprop="copyrightHolder" itemscope itemtype="https://schema.org/Person"><a href="https://mike-bland.com/about.html" class="copyright" rel="author" itemprop="url"><span itemprop="name">Mike Bland</span></a></span></address>.</div> <p class="license">Except as <a href="https://mike-bland.com/policies.html#restrictions">noted</a>, <a href="https://mike-bland.com/2024/02/15/building-a-software-quality-culture.html"><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title" itemprop="name">Building a Software Quality Culture</span></a> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://mike-bland.com" property="cc:attributionName" rel="cc:attributionURL" itemprop="url">Mike Bland</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>. Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="https://mike-bland.com/policies.html" rel="cc:morePermissions">https://mike-bland.com/policies.html</a>. </p> </footer> </div>
Copyright 2024 Mike Bland. Except as noted, licensed under a Creative Commons Attribution 4.0 International License. See https://mike-bland.com/policies.html for details.Coding Mechanisms2024-02-05T00:00:00-05:002024-02-05T00:00:00-05:00https://mike-bland.com/2024/02/05/coding-mechanismsIt's easy to forget that technologists are people, too. You can't fix all your bugs with moar code. Here are some of my own nontechnical, human struggles, in case others find comfort in seeing reflections of their own.<div itemscope itemtype="https://schema.org/BlogPosting"><header><p class="desc" itemprop="description">It's easy to forget that technologists are people, too. You can't fix all your bugs with moar code. Here are some of my own nontechnical, human struggles, in case others find comfort in seeing reflections of their own. </p> <p class="meta"><span itemprop="datePublished"><time datetime="2024-02-05T00:00:00-05:00">05 Feb 2024</time></span><br /> <span class="tags">Tags: <span itemprop="keywords"><a href="https://mike-bland.com/tags/personal.html">personal</a></span></span> </p> </header> <div itemprop="articleBody"> <p>I know, I know, I promised I’d finish off the <a href="https://mike-bland.com/tags/making-software-quality-visible.html">Making Software Quality Visible series</a> soon. That’s absolutely my intention, and I’m absolutely feeling inspired again. Soon, as in any day now. Apologies to those losing sleep in anticipation until then.</p> <p>And despite the title of this post, note the tags: This is <em>personal</em>, not <em>technical</em>. See the “Fair Warning” below.</p> <p>First, here’s the <a href="https://www.linkedin.com/posts/mike-bland_coding-mechanisms-mike-bland-activity-7160470159223058433-r8Sx">LinkedIn announcement corresponding to this post</a>.</p> <p>Next, I need to express gratitude for the responses to my rather personal confession from <a href="https://mike-bland.com/2024/01/23/narrowing-the-information-gap-with-the-test-pyramid-in-action.html">Narrowing the Imagination Gap with the Test Pyramid in Action</a>. They’ve really helped me regain a sense of momentum, and have already led to some promising opportunities. Thanks so much to those of y’all who reached out.</p> <p>Speaking of that post, I’ve started the official <a href="https://mike-bland.com/test-pyramid-in-action">Test Pyramid in Action</a> page. You’ll see I’m a ways into the script, with a ways to go. Still, if anyone wants to take a peek and give me any feedback or ideas, please do! I’d love to make this more than a solo act.</p> <h3 id="fair-warning">Fair Warning</h3> <p>But now here’s your fair warning (or throat clearing, as my friend Max would call it): <a href="https://youtu.be/ergk9eF7398">Lord, strike that poor boy <em>down!</em></a></p> <p>Wait, not that one…what I meant was: This is going to be a more personal post, and I may sprinkle in more of them soon. They may include many more cringey <a href="https://en.wikipedia.org/wiki/Van_Halen">Van Halen</a> fanboy references, amongst many other such references that bring me joy.</p> <p>So if you’re just here for the technical stuff, you might want to pay attention to my <a href="https://mike-bland.com/tags/technical.html">"technical" tag</a>, or subscribe to the <a href="https://mike-bland.com/tags/technical.xml">"technical" feed</a>. Or take your pick of any of my <a href="https://mike-bland.com/tags/">tags and feeds</a>.</p> <p>Or if you want the whole fire hose, subscribe to my <a href="https://mike-bland.com/atom.xml">main feed</a> (also in the nav menu) or <a href="https://mike-bland.com/subscribe/">mailing list</a>.</p> <p>Or you can go off and watch <a href="https://youtu.be/l7rS3itMibE">dirty movies</a>. Whatever you want to do <a href="https://www.imdb.com/title/tt3032476/">is all good, man</a>.</p> <h3 id="more-to-the-story">More to the story</h3> <p>As I’d mentioned in that previous post, <a href="https://mike-bland.com/2022/11/07/leaving-apple.html">I left Apple in November 2022</a> and have spent the last year coding like crazy. But that’s not all: My nearly six-year relationship ended last October.</p> <p>No, I’m not fishing for pity—it was, and has remained, largely amicable (modulo the occasional skirmish). There’s absolutely no need for sympathy or consolation; I’m fine, especially now, and my ex is, too, as best I can tell. I’ve hardly mentioned this to many of my close friends and colleagues, or mentioned it only recently. (To those who are learning about it this way, my apologies.) But I’m sharing now to be even more honest about where I found myself last year, with my relationship approaching the end, and finally ending.</p> <p>It just felt like everything was…stopping. Like it was all up to me to <a href="https://youtu.be/4M_lxaHCk-M">get, get, get, get out and push</a>, and I couldn’t get things moving. The thought of getting out and reengaging with the world was intimidating. The fresh memory of having built the Quality Culture Initiative (QCI) from almost nothing with such great partners should’ve inspired self-confidence. It did (does!) inspire gratitude and pride, but left me wondering how I could’ve walked away, and how I’ll ever have that feeling ever again. (Similarly to how I felt about the <a href="https://mike-bland.com/2011/09/27/testing-grouplet.html">Google Testing Grouplet</a>.)</p> <p>Oh, right: We moved back to northern Virginia a year after we lost our home in the <a href="https://en.wikipedia.org/wiki/CZU_Lightning_Complex_fires">CZU Lightning Complex Fire in August 2020</a>. That’s why I left. We both felt like we needed to come back home, and that was more important than making Tim Cook and Craig Federighi happy.</p> <p>Again, apologies to those who I left to <a href="https://youtu.be/54sEMKGXq5Q">hear about it later</a>, but I stress: <em>No pity!</em> Things went so well for us <em>after</em> the fire that I called it “winning the wildfire lottery.” We were both well taken care of, and fully recovered emotionally (as best I can tell). More importantly, we were back in Virginia for nearly a year when the return to office order came, and that made it an easy decision. I haven’t regretted leaving for a second. Working for Apple was a wonderful adventure, but not the beginning and end of my life. (Neither was Google.)</p> <p>Well, more specifically: I don’t regret leaving <em>Apple</em>, but I do miss working with my QCI friends every day. Thankfully I still get to speak to several of them occasionally. Though I’ve neither pried for nor heard too many details, I am proudly delighted to hear the community continues to thrive without me.</p> <h3 id="coping-through-coding">Coping through coding</h3> <p>The point is, up until the new year started, my primary coping mechanism to handle all my frustration and loss was to keep coding <em>harder</em>. And hence, of course, the title of this post—for which I can’t claim credit, actually. That would go to a friend of mine and her hidden talent for making nerdy dad jokes.</p> <p>Coding was the one thing I could do that was under my complete control. It was definitely more socially constructive than smoking crack or meth or whatever the kids are into these days. And thanks to Apple, I could afford to take an extended sabbatical to indulge myself. But it also mainly served to rationalize my increased withdrawal and isolation, while I waited to “figure it all out” on my own.</p> <p>Hell, I couldn’t even keep up with writing all the blog posts I kept promising to write about what I had been coding. I’d always get wrapped up in the next coding project before following through. (Maybe I will be able to backtrack and write a few, but I guess I shouldn’t make any promises.)</p> <h3 id="small-steps">Small steps</h3> <p>Now, I did start taking baby steps over the course of the last half of last year to begin breaking out of this pattern. For starters, I made standing plans to meet one friend of mine every Sunday for coffee. I also bought a <a href="https://prsguitars.com/amplifier/hdrx_20_2023">PRS HDRX 20 amplifier</a> I didn’t need from the sadly now-defunct <a href="https://www.melodeemusic.com/">Melodee Music</a> just to ask the sales guy about local blues jams. He didn’t know of any, but pointed me in the direction of Wednesday open mics at <a href="https://www.jottnew.com/">Jimmy’s Old Town Tavern</a>.</p> <p>Even aside from the open mics, I liked Jimmy’s so much that now I meet another old friend there to catch up every week. He’s a programmer, too, so I get to spew on about my hatred of the Java ecosystem and cool hacks I’ve learned and done, etc. He returns the favor by regaling me with tales of system design and incompetent coworkers obliterating terabytes of data that takes weeks to recover.</p> <h3 id="a-new-hope">A new hope</h3> <p>I also did one other thing: I started joining <a href="https://meetup.com/">Meetup</a> groups again.</p> <p>I went to a couple Meetups to see local bands play in the summer, but stopped going shortly before the breakup. When that happened, and the weather got colder, and the days shorter, I just wrapped myself in house, dogs, and code. (Music should’ve been part of that, too, but I need to be with other musicians for inspiration, and I was too shy to find any.) I kept meeting my two friends, well aware of how boring I was becoming, unable to talk about anything but my latest project.</p> <p>My ex, very much an extrovert with a strong support system in the area, was doing OK. But I kept waiting for some flash of genius-level inspiration to come to me, a lamp to light the way out of my predicament. I felt like I had to figure out to make fire by myself in the dark.</p> <p>But one thing <em>did</em> happen while I was waiting: I kept seeing Meetup people at Jimmy’s! Feeling a little ashamed and shy, I tried to keep a respectful distance and not bother anyone, to not risk amplifying the already unbearable awkwardness.</p> <p>But fortunately, the leader of the Meetup group kept saying hello whenever she saw me. I gradually felt more at ease, and began reframing the guilt I felt at not attending Meetups as motivation to start going again. It’s doubtful I would’ve mustered such courage were it not for that small, yet generous and welcoming gesture she continued to offer.</p> <p>And now…</p> <h3 id="changenothing-stays-the-same">Change—nothing stays the same</h3> <p>…and now, since the new year, it’s like I’ve been <a href="https://youtu.be/ymIwC4SLwsU">unchained</a>—yeah, I’ve hit the ground runnin’!</p> <p>I’ve gone to see more bands play in the past three weeks than I have in maybe the past ten years. I haven’t made this many friends outside of work since my last stint attending Meetups in Arlington back in 2017. I’ve started staying out until 2am (or later) multiple nights in a row over the weekend. My ex, the aforementioned extrovert, has started calling <em>me</em> “party girl” and “Paris Hilton.”</p> <p>Case in point: We recently had a Meetup event to go see the “German” hair metal band <a href="http://www.herrmetal.com/">Herr Metal</a> at the <a href="https://tallyhotheater.com/">Tally Ho</a>:</p> <p class="img-caption"><a href="https://mike-bland.com/images/herr-metal-2024-01-19.jpg"><img src="https://mike-bland.com/images/herr-metal-2024-01-19-small.jpg" alt="Herr Metal at the Tally Ho theater in Leesburg, Virginia on 2024-01-19" title="Herr Metal at the Tally Ho in Leesburg, VA on 2024-01-19" /></a><br /> Not actually German. Maybe one day that’ll be me up there, minus the <a href="https://mike-bland.com/images/mbland-berklee-1991.jpg">long hair</a> and spandex.<br /> Click for a larger image.</p> <p>I lost my mind when they played <a href="https://youtu.be/UM68ZL42hp0">1984</a>, the intro track to <em><a href="https://en.wikipedia.org/wiki/1984_(Van_Halen_album)">MCMLXXXIV</a></em> (a.k.a. <em>1984</em>), as their intro, followed by <a href="https://youtu.be/SwYN7mTi6HM">Jump</a>, just like the album. (Granted, the “1984” intro was the actual recording, but still.) The 80’s glory only kept going from there, and I sang myself hoarse for days after. So worth it!</p> <p>Now, granted, when <a href="https://youtu.be/g3aW7oofNgs">push comes to shove</a>, I doubt I’ll sustain this pace for much longer. I’m not in my twenties anymore, and I’ll be entering the work force again soon, I hope. But while I still have the opportunity, you’re damn straight I’m going to make up for as much lost time as I can.</p> <h3 id="a-gentle-breeze-blows-through-hell">A gentle breeze blows through hell</h3> <p>And what’s more, a couple of my new friends have induced me to slightly loosen my death grip on my blood feud against Facebook. No, I don’t think I’ll ever cross the line and create an account. But before a couple weeks ago, I never would’ve installed WhatsApp after uninstalling it ten years ago, the day I heard Facebook bought them. Now I’m chatting away with Meetup friends between Meetups almost every day. (It might actually be <em>every</em> day.)</p> <p>Before this weekend, I never, ever, not one single time in my life, <em>ever</em> willingly followed a Facebook link. I’d sooner’ve died. But one of my friends shared something so deeply personal and compelling, I opened up a private Safari window and did the deed. I proceeded to devour what I was reading for hours.</p> <p>(Just to clarify: It’s not creepy Facebook stalking if <em>they</em> send <em>you</em> the link, right? Asking for a friend.)</p> <p>And that’s why I’m starting to get so personal here, at long last.</p> <h3 id="embracing-uncertainty-as-the-possibility-of-growth-and-joy">Embracing uncertainty as the possibility of growth and joy</h3> <p>This post has been about me, me, me today, mainly because I needed to get this background out of the way. My future “personal” posts should dwell less on details of my own story, and more on general life lessons learned (or that I’m still learning). Even so, I’m not perfectly sure what I’m aiming to accomplish by sharing such things, given most of my content here has been technical. Even my guitar-related posts have all been technical (so far).</p> <p>However, one of the many heavenly insights I gained from getting over myself and absorbing my friend’s writing on that hellsite is that it’s OK to be uncertain. Uncertainty is a necessary precondition of growth—and my own takeaway beyond that is that it’s a necessary precondition of discovering joy as well.</p> <p>So many of us end up afraid of what the future holds in one way or another, for one reason or another. We end up retreating into our comfort zones, which may be OK when we need to recuperate for a while. We all need a break now and then, to feel comfortable, to regain our energy. But when that need for temporary comfort erodes into a need for absolute certainty and control, our world shrinks without us realizing it. That really means that <em>we</em> shrink, pulling away from the world that’s waiting to nurture us, fearful that it’s actually out to get us.</p> <p>Once you’ve reached such a point in your life, you risk succumbing to cynicism. Especially in the realm of emotions and relationships, it can be easy to conclude “<a href="https://youtu.be/ExY0wZ45OSE">so this is love</a>” and resign yourself to misery or solitude. Or “so this is my career,” “this is how the world works,” “my best days are behind me,” “this is my life.”</p> <p>But now I’m beginning to think “maybe it isn’t; maybe I just have more to learn.” Maybe that means there’s more pain and heartbreak ahead—but what’s after that? Resigning myself to accept the devils I know feels more unbearable than the risk of future suffering. I can’t imagine a worse sensation than judging myself a coward in the end. If it’s the only joy I discover between now and that moment, I’ll be happy to know that I at least took my chances.</p> <h3 id="no-regrets">No regrets</h3> <p>This also means I have no regrets about my career or my life in general. Even though our relationship ultimately ended, I am grateful to have spent the past six years of my life with my ex. I’m grateful to have been at Apple for four years at the same time. Both experiences included new and intense kinds of pain I didn’t expect—but also new and intense joys I never could’ve expected, either. I made some enemies, but I made so many more true friends along the way. I wouldn’t know the joy I’m beginning to feel now without having all of those experiences and all the feelings that came with them.</p> <p>The point is, life is so much better and easier when you allow others to be a part of it and to help you out. You don’t need everyone to be perfect, but you do need to accept what you can from those willing to offer support in good faith. You’ll get dinged from time to time, thanks to misunderstandings, honest mistakes, understandable motives, or occasionally sheer malice, but you can’t help that. The alternative is to live a hollow life, robbing others of the potential joy of having you be a part of their lives.</p> <p>Of course, I don’t expect every day to feel like <a href="https://youtu.be/ptbkH5p3s6o">Sunday afternoon in the park</a> from here on out. But those timely words of wisdom from a friend have made uncertainty and taking the chances necessary for growth a lot less daunting. Now I feel even more ready to stick that <a href="https://youtu.be/1vOL8e8oeTQ">one foot out the door</a> towards the next adventure!</p> <p>(And no, I also don’t regret insinuating every track from <a href="https://en.wikipedia.org/wiki/Fair_Warning_(Van_Halen_album)">Fair Warning</a> into this narrative, in proper order. You <em>have</em> been warned!)</p> </div> <footer> <div class="copyright">Copyright <span itemprop="copyrightYear"><time datetime="2024">2024</time></span> <address><span itemprop="copyrightHolder" itemscope itemtype="https://schema.org/Person"><a href="https://mike-bland.com/about.html" class="copyright" rel="author" itemprop="url"><span itemprop="name">Mike Bland</span></a></span></address>.</div> <p class="license">Except as <a href="https://mike-bland.com/policies.html#restrictions">noted</a>, <a href="https://mike-bland.com/2024/02/05/coding-mechanisms.html"><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title" itemprop="name">Coding Mechanisms</span></a> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://mike-bland.com" property="cc:attributionName" rel="cc:attributionURL" itemprop="url">Mike Bland</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>. Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="https://mike-bland.com/policies.html" rel="cc:morePermissions">https://mike-bland.com/policies.html</a>. </p> </footer> </div>
Copyright 2024 Mike Bland. Except as noted, licensed under a Creative Commons Attribution 4.0 International License. See https://mike-bland.com/policies.html for details.