“Essentially, all models are wrong, but some are useful” – George Box
In Scaling Teams, Alexander Grosse & David Loftesness provide an excellent discussion on various strategies for Hiring, People Management & Organization. While the underlying principles are common-sense, the hard part is following it. I hope this book summary can serve as a quick-reference for Engineering leaders to keep the trade-offs in mind. The custom solution you build for your organization is likely to be a combination of these approaches, and needs to evolve.
Hiring Decisions
Fully accountable hiring manager
Pros:
- Can eliminate feedback based on irrelevant hiring criteria, if interviewers inconsistently vet a candidate’s qualifications
- Enables a quick hiring decision and flexible acceptance criteria for hiring
Cons:
- Misalignment between needs of manager and organization (recently hired manager or pressure to expand team) could lead to wrong hires
- Can lead to trust issues between interview panel and hiring manager, when he/she overrides their interviewers
High-ranking hiring manager
Pros:
- Makes hiring process really fast
Cons:
- Actual manager can face unnecessary surprises that can negatively affect resource planning and cause tension within team
- Difficult for a candidate to report to a person who didn’t hire them, as candidate hasn’t established a relationship with their new manager
Consensus (Unanimous/Majority)
Pros:
- Enables inputs from multiple coworkers
- Avoids surprises for candidate’s future peers and promotes team self-management
Cons:
- Feedback criteria may be inconsistent, if one or more interviewers are unclear about kind of talent organization is looking for
- Higher probability that politics and personal relationships could adversely affect a hiring decision
Hiring Committee
Pros:
- Reduces chance of a single person making a poor hiring decision and enables broad application of acceptance criteria for hiring a candidate
- Can improve quality of interview process over time, if hiring committee sends feedback to panel members about quality of their interview questions and write-ups
Cons:
- Relies on written feedback, which can be incomplete or misleading
- Candidate’s future team is not in control of hiring process, and thus cannot ensure cultural fit with candidate
Bar raisers
Pros:
- Ensures that someone who knows requirements of organization is always part of hiring decision
Cons:
- Top-performing employees can end up committing a sizable percentage of their time participating in interviews rather than working on projects
Career Development
Fine-grained levels
Pros:
- Can motivate team with frequent promotions
Cons:
- More work, both in explaining difference in capabilities at each level, and managing promotion process
Private levels
Pros:
- Can prevent levels from getting in the way of effective technical discussions
Public levels
Pros:
- Allows for some level of community policing
Compensation bands for each level
Pros:
- Discourages bias and avoids cases where “squeaky wheels” end up with highest salaries
Overlapping bands
Pros:
- Allows some flexibility to adjust compensation to each individual’s circumstances
Public compensation
Pros:
- Can build trust between senior management and rank and file, and allow for community policing
Slot-on-hire
Cons:
- Onus is on new hire’s manager to re-slot if person doesn’t perform at that level
Slot pending
Pros:
- Allows team to assess new hire’s performance
Cons:
- Some candidates may not accept a job without knowing their title and can be hard to resolve compensation without some assumption about new hire’s eventual level
- Can be tricky to truly assess someone’s level during trial period, particularly if they are coming from a different domain and have a lot of context to absorb
Team Structure
Platform (User-facing platforms) teams
Pros:
- Can maximize iteration speed by removing dependencies on other platforms
- Keeps people with related skill sets together, so they can collaborate and share platform-specific knowledge
- Ensures high consistency between features on a given platform, and consistency with platform itself
Cons:
- More synchronization work if you want to roll out a feature on all platforms at roughly same time
- Doesn’t scale well
Feature teams
Pros:
- Tightly couples team’s output to real user value at a granular level
- Ensures high consistency of a given feature across all platforms, giving best user experience regardless of platform
- Makes it easier to roll out features across all platforms at roughly same time
- Works well at scale
Cons:
- Maintenance can sometimes be a big problem, especially if you don’t have enough engineers to staff each feature properly
- Consistency across features is harder to achieve, as communication and synchronization between feature teams is difficult
Goal focused (Company goals) teams
Pros:
- Provides clarity on how teams contribute to company goals
- Teams are not bound to platform-specific priorities
Cons:
- Members of core team might feel they’re not contributing to company targets
- Increases likelihood of conflicts, since all teams are potentially touching same code
- Tough to build a team that has expertise on everything
Doesn’t scale well
Customer (customer groups) teams & Infrastructure (internal customer) teams
Pros:
- Provides clarity on how teams deliver value to specific customer groups
- Team can develop a deep understanding of customer’s needs over time
Cons:
- Doesn’t scale well
Reporting Structure
One engineering manager per delivery team
Pros:
- Enables managers to be close to work of their reports and be more involved in technical work
Cons:
- May require finding and mentoring more managers
- Managers may not be experts in all technologies used, and may not be able to give direct technical feedback to all their reports
- Movement between teams can be difficult since it requires a change in reporting structure
- Managers may have difficulty prioritizing people management tasks
One manager for complete delivery team
Pros:
- Provides clarity that team is its own small company, and avoids conflicts with other managers within team about goals and priorities
Cons:
- Potential danger that manager could just push ideas through, especially if manager is also product owner
- Movement between teams can be difficult since it requires a change in reporting structure
One manager per specialization (Matrix organization)
Pros:
- Movement between teams is easier, since it doesn’t require a change in reporting structure
- Managers can give detailed technical feedback to their reports when they are specialists in their discipline
Cons:
- Makes it harder for manager to provide guidance and feedback, since they are not part of the team, and may not be familiar with context of their team member’s work
- Can feel more hierarchical, as there would be several full-time managers whose primary focus is technical/people management
People manager
Pros:
- Movement between teams is easy, since it doesn’t require a change in reporting structure
- Managers can focus more on their team member’s career development, and can handle more reports
Cons:
- Role can be less interesting to those who want to remain closely involved in details of their team’s development work
Leave a Reply