Developer Tea

Second Order Consequences and Forcing Functions


Listen Later

Todays episode delves into understanding and leveraging second and third-order consequences โ€“ the ripple effects that occur after an initial action โ€“ and introduces forcing functions, which are an inverted way of thinking about these consequences, designed to drive desired outcomes by first determining "what must be true" for them to occur. The episode also connects these concepts to the importance of effective goal setting, explaining how well-defined goals provide clarity, focus, and a strategic framework for decision-making and career advancement.

  • Grasp Second and Third-Order Consequences: Learn to identify the downstream effects of initial actions. For instance, setting a target for test coverage (first action) might lead to people adding tests that don't genuinely test anything but merely inflate the metric (second-order consequence), potentially resulting in disillusionment with testing or continued incidents despite high coverage (third-order consequence). Conversely, giving someone ownership or autonomy (first action) can lead to them proactively filling out details and owning ambiguity (second-order consequence), which may result in higher quality work, freeing up managerial time, and setting the individual up for promotion (third-order consequence).
  • Utilise Forcing Functions for Desired Outcomes: Understand forcing functions as an inverted approach to consequences, where you begin with a desired outcome and then identify the upstream requirements or desirable effects that must be true for that outcome to be achieved. This method helps to focus efforts on one to three key areas for improvement, rather than trying to enhance everything simultaneously.
  • Implement Effective Forcing Functions: Discover how various elements can act as deliberate or accidental forcing functions:
    • A prioritised backlog acts as a forcing function for essential discussions, decision-making, gathering sufficient information for prioritisation, and ensuring knowledgeable individuals are involved in the process.
    • Presentations, demos, or all-hands meetings serve as powerful social forcing functions, as the desire to avoid the discomfort of not having progress to show incentivises action and preparation.
    • Sprint planning is a forcing function that necessitates a clear understanding of priorities and team capacity for the upcoming sprint.
    • Quality metrics or Service Level Agreements (SLAs), such as a P95 response time, act as forcing functions by requiring other system components to be correctly aligned to meet the target.
    • The choice of technology or tech stack can be a significant forcing function for hiring, unintentionally selecting for specific types of engineers (e.g., Java for enterprise experience, TypeScript for full-stack, functional languages for functional programming experience).
    • Workplace restrictions, like requiring night availability, can be accidental forcing functions, potentially selecting against individuals with community involvement, family commitments, or social lives.
    • Successful hiring and recruiting is a strong forcing function for many positive aspects of a company, indicating technical success, high retention, competitive salaries, and a high standard for talent across the organisation.
  • Harness Goals for Clarity and Focus: Recognise that a well-positioned goal is paramount for finding clarity, perspective, and purpose in your career. Goals provide a framework to make decisions about what to do, ensuring your time is spent on what matters to you rather than just on tasks handed to you, thereby enabling personal career growth.
  • Set Relevant and Directionally Correct Goals: Emphasise the relevance of your goals; even if they are specific, measurable, actionable, and time-bound (SMART), they are ineffective if they are not relevant to your desired career path. Aim for goals that are directionally correct, moving you generally towards a long-term outcome (e.g., leading a project if your long-term aspiration is to lead teams), rather than being paralysed by the pursuit of a "perfect" goal.
  • Leverage Manager Feedback for Goal Setting: If you are unsure how to set goals, consider what your boss would look for in your performance in six months. Proactively engage your manager by initiating conversations about career growth and goal setting, framing it as an opportunity for mutual success and seeking their input on what constitutes a "home run" for your role.
  • Set Sustainable and Challenging Goals: Avoid goals that are too abstract (lacking clear actions) or that significantly over- or underestimate your capacity, as both can lead to disengagement. Instead, strive for challenging but sustainable goals that require focus and making difficult choices (e.g., saying "no" to other things) but do not lead to burnout.
  • Be Mindful of Your Choices: Deliberately choose your forcing functions and become aware of those you are accidentally opting into. Consistently consider the downstream effects (second and third-order consequences) of your actions today, and set goals that imply a desired future state rather than dictating the exact methods. Consistency in this mindful approach to goal setting and understanding consequences is key to long-term career success.
๐Ÿ“ฎ Ask a Question

If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com.

๐Ÿ“ฎ Join the Discord

If you want to be a part of a supportive community of engineers (non-engineers welcome!) working to improve their lives and careers, join us on the Developer Tea Discord community by visiting https://developertea.com/discord today!

๐Ÿงก Leave a Review

If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.

...more
View all episodesView all episodes
Download on the App Store

Developer TeaBy Jonathan Cutrell

  • 4.8
  • 4.8
  • 4.8
  • 4.8
  • 4.8

4.8

402 ratings


More shows like Developer Tea

View all
Design Details by Brian Lovin, Marshall Bock

Design Details

361 Listeners

Fragmented - Android Developer Podcast by Donn Felker, Kaushik Gopal

Fragmented - Android Developer Podcast

69 Listeners

Software Engineering Radio by se-radio@computer.org

Software Engineering Radio

271 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

289 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

626 Listeners

The Cloudcast by Massive Studios

The Cloudcast

153 Listeners

Talk Python To Me by Michael Kennedy

Talk Python To Me

585 Listeners

Does Not Compute by Sean Washington, Rockwell Schrock

Does Not Compute

53 Listeners

Soft Skills Engineering by Jamison Dance and Dave Smith

Soft Skills Engineering

288 Listeners

Thoughtworks Technology Podcast by Thoughtworks

Thoughtworks Technology Podcast

43 Listeners

Toolsday by Una Kravets, Chris Dhanaraj

Toolsday

48 Listeners

Data Engineering Podcast by Tobias Macey

Data Engineering Podcast

145 Listeners

Swift Unwrapped by JP Simard, Jesse Squires, Spec Network, Inc.

Swift Unwrapped

90 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

987 Listeners

The freeCodeCamp Podcast by freeCodeCamp.org

The freeCodeCamp Podcast

486 Listeners

CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

CoRecursive: Coding Stories

190 Listeners

.NET Rocks! by Carl Franklin and Richard Campbell

.NET Rocks!

245 Listeners

The Stack Overflow Podcast by The Stack Overflow Podcast

The Stack Overflow Podcast

64 Listeners

The Real Python Podcast by Real Python

The Real Python Podcast

142 Listeners

The Pragmatic Engineer by Gergely Orosz

The Pragmatic Engineer

64 Listeners