The Managers' Guide #100

The Managers' Guide #100
Zoologischer Garten, Berlin
Have the fearless attitude of a hero and the loving heart of a child.

Soyen Shaku

Lessons learned in 35 years of making software

  • ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Human Element is Central โ€” Software development is fundamentally about people โ€” users, stakeholders, and the team. Effective communication, empathy, and understanding motivations are often more critical than purely technical skills.
  • ๐ŸŽฏ Focus on Delivering Value โ€” The primary goal should always be to deliver tangible value to the end-user or business. Understanding the โ€œwhyโ€ behind a feature is crucial before diving into the โ€œhowโ€. Avoid building things just because they are technically interesting.
  • โœจ Simplicity Trumps Complexity โ€” Strive for the simplest solution that effectively solves the problem. Over-engineering adds unnecessary complexity, increases maintenance burden, and introduces potential failure points. Code is often a liability, not just an asset.
  • โœ… Quality Requires Continuous Effort โ€” Good software requires ongoing attention to quality. This includes practices like automated testing, continuous integration, and regular refactoring to manage technical debt and ensure maintainability. Itโ€™s not a one-time phase but an integral part of the process.
  • ๐Ÿ”„ Adaptability and Learning are Essential โ€” The software landscape constantly changes. Being willing to learn new technologies, adapt processes (like Agile principles), and revisit past decisions is key to long-term success and relevance. Dogmatic adherence to any single methodology can be detrimental.
  • ๐Ÿ“‰ Estimates Are Guesses (Treat Them Accordingly) โ€” Accurately estimating software effort is notoriously difficult. Treat estimates as rough guides rather than firm commitments, communicate uncertainty clearly, and focus on breaking down work to reduce estimation variance.

Layers of context

  • ๐ŸŒ Context is Layered โ€” Actions and decisions make sense primarily within their specific context layer โ€” e.g., individual constraints, team dynamics, company strategy, industry norms, or societal trends. What seems logical at one layer might appear nonsensical from another.
  • โ“ Misaligned Perspectives Fuel Conflict โ€” Many disagreements and misunderstandings occur when people evaluate decisions or actions made within one layer (e.g., a team's technical choice) using the perspective or constraints of a different layer (e.g., general industry โ€œbest practicesโ€ without knowing team specifics).
  • ๐Ÿ“‰ Context Gaps Impede Effectiveness โ€” Failing to understand or provide the relevant context layer leads to poor judgments, ineffective feedback, wasted effort (e.g., arguing about a decision without understanding its original constraints), and friction between individuals or teams.
  • ๐Ÿ—ฃ๏ธ Bridging Layers Requires Active Effort โ€” Effective collaboration and leadership involve consciously seeking the relevant context behind others' actions (โ€œWhat layer are they operating in?โ€) and proactively providing the necessary context for oneโ€™s own decisions (โ€œWhat context do others need to understand this?โ€).
  • ๐Ÿค” Self-Awareness is Key โ€” Itโ€™s crucial to be aware of which context layer you are currently operating or evaluating from. Questioning whether you have the right layer of context before making judgments or offering opinions can prevent many communication failures.

How to Grow Professional Relationships

  • ๐Ÿ“ˆ Two-Axis Framework โ€” Professional relationships can be mapped on two axes โ€” โ€œValueโ€ (what you provide to others) and โ€œVulnerabilityโ€ (your willingness to be open, seek help, or admit uncertainty). Growth happens by intentionally moving โ€œup and to the rightโ€ on this grid.
  • ๐ŸŒฑ Growth Requires Both Value and Vulnerability โ€” Deepening relationships beyond transactional ones requires both consistently providing value and showing appropriate vulnerability. Excelling at only one dimension limits relationship depth โ€” e.g., high value but low vulnerability remains transactional; high vulnerability without value can be draining.
  • ๐Ÿค” Vulnerability is Calculated Openness โ€” In this model, vulnerability isn't about random oversharing. It involves calculated acts like asking for advice, admitting knowledge gaps, sharing relevant challenges, or giving/receiving candid feedback โ€” demonstrating trust and humanity.
  • ๐Ÿ› ๏ธ Actionable Steps for Relationship Building โ€” The model provides a practical mental framework for how to strengthen connections. It suggests specific actions: offer help or insights (increase value), or ask for constructive criticism or share a relevant struggle (increase vulnerability).
  • ๐Ÿค Moving Beyond Transactional Ties โ€” The ultimate goal is to cultivate stronger ties โ€” allies, mentors, trusted peers. This requires conscious effort to layer vulnerability onto value exchange, fostering mutual trust and support rather than just tit-for-tat interactions.

The death of the junior developer

While the title โ€œDeath of the Junior Developerโ€ is provocative and likely an overstatement, it effectively draws attention to a real trend of increasing difficulty and changing expectations at the entry level of the software development profession.

  • ๐Ÿ“ˆ Rising Expectations, Not Extinction โ€” The core argument isn't that junior developer roles are disappearing entirely, but that the bar for entry-level positions has risen significantly. Companies increasingly expect juniors to possess more skills and ramp up faster than in the past.
  • ๐Ÿค” Multiple Contributing Factors โ€” This shift is attributed to several factors โ€” complex modern tech stacks requiring more initial knowledge, economic pressures favoring immediately productive hires, and potentially the impact of AI tools raising baseline productivity expectations.
  • ๐Ÿšง Harder Path to First Job โ€” Consequently, it's becoming more challenging for aspiring developers to secure their first role. They often need stronger portfolios, demonstrable project experience, or specialized skills before being hired, as extensive on-the-job training from scratch seems less common.
  • ๐Ÿค– AI's Ambiguous Role โ€” AI coding assistants are presented as a potential factor โ€” they might help juniors learn faster, but they also automate simpler tasks and increase the expected output, potentially making it harder for less experienced individuals to prove their immediate value.
  • โณ Potential Long-Term Talent Issues โ€” The article implies a potential problem for the industry โ€” if entry points become too difficult, it could stifle the development pipeline needed to create future senior engineers and technical leaders. There's a tension between short-term productivity demands and long-term talent cultivation.

A parting thought: AI, as it is currently, is stuck as an eternal junior. Human juniors grow out of it in 1โ€“2 years. Which sounds like a better investment?

Deep vs. Broad Context Traps

  • ๐Ÿ”ฌ The Deep Context Trap โ€” This occurs when individuals or teams become so immersed in the specifics of their work (a feature, a codebase, a project) that they lose perspective on the wider business goals, user needs, or market landscape. They optimize locally, but may build the wrong thing or miss strategic pivots.
  • ๐Ÿ—บ๏ธ The Broad Context Trap โ€” This is the opposite issue: having a superficial understanding of many different areas (multiple products, market trends, org dynamics) but lacking the deep, specific knowledge required to make informed decisions, guide execution effectively, or understand critical details and trade-offs.
  • โš ๏ธ Danger Lies in Being Stuck โ€” Neither deep nor broad context is inherently bad, but becoming stuck in one mode is problematic. The trap isn't the context itself, but the inability to shift between deep focus and broad awareness as needed.
  • โš–๏ธ Recognizing the Trade-offs โ€” There's an inherent tension. Deep dives enable focused execution but risk misalignment. Broad awareness aids strategy and connection but can lead to shallow understanding and poor tactical decisions if depth is missing.
  • โ†”๏ธ Need for Dynamic Switching โ€” Effectiveness often requires dynamically switching between modes โ€” zooming in for detail and execution, and zooming out for strategy, alignment, and understanding the bigger picture. Recognizing which mode is needed (and when you're stuck) is crucial for individuals and teams.


Thatโ€™s all for this weekโ€™s edition

I hope you liked it, and youโ€™ve learned something โ€” if you did, donโ€™t forget to give a thumbs-up, add your thoughts as comments, and share this issue with your friends and network.

See you all next week ๐Ÿ‘‹

Read more