Newsletter #32: Addressing complexity in your product and more.
Welcome to the 32nd edition of Software Leads–a monthly newsletter on software engineering and leadership.
Welcome to the 32nd edition of Software Leads, a monthly newsletter on software engineering and leadership. It curates articles for tech leaders and managers. Below you find my top finds for last month.
Five Ways to Address Complexity In Your Product
Most products start simple. As they become successful, more and more features are added to satisfy power users. Complexity starts to set in and the simplicity that drew in early users begins vanish. I have seen products going through this loop, and you may have seen this loop in some products you use. How do you keep your product simple while trying to grow, capture new audiences, and add new value props? This post from the CPO of Eventbrite shows five ways to address complexity in your product as it grows.
Validate and Unbundle. Add temporary complexity
Progressively Disclose (Temporary Simplicity)
Train the User (Hacked Complexity)
Segment User Experiences (Optional Complexity)
Make Advanced Features Discoverable (Perceived Simplicity)
I have come across several promotion packets in the past. They contained evidence and arguments why certain engineers deserved to be promoted to senior roles. It's interesting why the arguments had little to do with technical skills of the engineers involved. But more to do with how impactful the engineers have been through increasing scope of ownership, delivery and impact. While developing technical muscle is important, you need more than that to be exceedingly impactful. As stated in this post, the real lens most organizations use to evaluate your senior capability is through increasing scope of ownership, delivery, and impact.
Error Budget Policies in Practice
In my talk at LeadDev Berlin, I spoke about why it's crucial to track reliability metrics that directly affect users in their journey. This is important for two reasons: you will have a metric that correlates with what users experience with your product as you scale. It also becomes easier to balance investment in reliability work vs. investment in adding new value props to capture new users. I have been there where I needed to balance investment in reliability work vs. new feature development. One of the effective ways to make this balance is running your services and features with SLOs with error budget policies in place. This post from Expedia engineering contains a lot of insights on how to implement error budgets.
Starting a new job is not trivial, even more so when joining a well-established team with more than a decade of history, processes, and legal code. There will be a lot to do, more work than you can handle, or even chaos. You'll need to manage competing priorities, recognize what's the most important to work out of the million things that want attention and drive clarity. This long post was written by someone who has experienced this. If you’re stepping into a technical leadership role, this is a useful guide for pulling clarity out of chaos and handle overwhelming communication and competing priorities.
Influencing as Engineering Manager
How do you make improvements happen in your team as an engineering manager? While engineering managers have authority, you should use it sparingly. To better put, don't dictate change. Influence your team to see the need for change. People usually don't resist change; they resist being changed. This post contains tips on how to drive influence change as an engineering manager.
If a team has a problem. Verify it first and try to understand
Wait for the problem to happen before proposing an improvement
Track the problem, the proposed change, and the expected result.
Coaching and Feedback Tools for Managers
Early in a leader's career, they typically offer advice based on their own experience or skills: "Here's how I'd handle this situation..." But senior leaders manage people who sit much closer to the problems being solved and who may have more expertise in their functional area than the leader. Directive guidance from a senior leader can be counterproductive by preventing execs and employees from fully using their knowledge or taking responsibility for a problem they would. In this post, Ed Batista shared a collection of resources derived from his work on coaching leaders, teaching art of self-coaching at Stanford and training MBA students.
Six Ways to Increase Your Team's Accountability
A team's success hinges upon accountability. And as a manager, you're not only responsible for holding yourself accountable, you're also responsible for creating a culture of accountability on your team. Six tips in this article can help you establish a culture of accountability in your team.
Establish clear expectations from the outset
Provide the necessary resources
Give feedback, even when it's hard
Respond to different outcomes with different consequences
Don't cultivate fear.
8 Cognitive Biases That Affect How You Manage Your Team
As leaders, you will make a lot of decisions. What matters is the quality of decisions you're making. I enjoyed reading this article because it depicts how to recognize cognitive biases and prevent them.
Illustration by Elisabet Guba from Ouch!