What Does it Mean to be a Technical Lead at ConsumerAffairs?

All of us in the product team at ConsumerAffairs, including myself, are huge fans of Marty Cagan and Ben Horowitz and take to heart the things that they write about product development, delivery and discovery.

I’ve been trying to articulate, for a while, what it means to be a technical lead at ConsumerAffairs and, after laying out what is expected of those that are in this role, decided to follow the approach pioneered by Ben Horowitz’s “Good Product Manager, Bad Product Manager” and emulated in Marty Cagan’s, “Good Product Team, Bad Product Team.”

This is what it means to be a good software team lead at ConsumerAffairs:

Good leads know their product and their users and intuitively grasp why it’s important to empathize with their needs. Good leads genuinely care about delivering a quality product. Bad leads don’t care about their users and expect others to deal with customer issues.

Good leads are missionaries for their team and understand that their primary goal is to deliver value to their users and to the business. Bad leads are mercenaries and are only interested in finishing their projects and moving on.

Good leads help focus the team on their KPIs and OKRs and celebrate when they reach significant milestones towards achieving them. Bad leads know neither their team KPIs nor OKRs — nor how their work impacts them.

Good leads work to ensure a balance between moving fast, breaking some things and sweating the details. Bad leads neither understand why “Done” is better than “Perfect” nor why a good plan well executed now is better than a perfect plan next week.

Good leads recognize the advantage of swarming around milestones with their team and the importance of working on projects serially. Bad leads think they can do everything themselves and do not need to work with other members of their team.

Good leads understand the importance of working smarter, the power of being fully engaged and that the best way to get things done is to manage not only their time, but their energy. They understand that speed comes from the right techniques and not forced labor. Bad leads do not understand the difference between managing time or energy and try to solve problems via brute force by adding more people to a project.

Good leads are proponents of test-driven development and recognize that unoptimized code that is documented and tested is superior to optimized code that is untested and difficult to understand. Bad leads want to refactor everything because they think they can do it better.

Good leads understand that technical debt is a strategy, gold-plating is synonymous with over-engineering and that complexity is the enemy of reliability, security and execution. Bad leads are more interested in clever code tricks and impressing other developers than in coaching other members of their team.

Good leads pair program effectively with other developers in order to catch mistakes early and to ensure that there are few knowledge gaps. Bad leads don’t have time to pair.

Good leads love to brainstorm with other team members and arrive at solutions together. Bad leads would rather be right than to listen to a team member who dares to suggest something different.

Good leads know that performance and good design are key features and that software developers need to make software work, make it fast and make it pretty — it’s not done until it’s pretty. Bad leads don’t understand the difference between the user interface and the user experience.

If this sounds like the kind of team you want to be on, we’d love to have you join us and help consumers and brands make smarter decisions.