The Managers' Guide #100

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 ๐