Andrew Panfilov
Posted on May 3, 2024
This post was originally published here https://www.linkedin.com/pulse/how-fail-cto-never-check-your-hiring-managers-andrew-panfilov-slhff/
To be a successful CTO, it is crucial to prioritize hiring and overseeing the hiring process. Neglecting this responsibility can pose a significant risk to the company.
As a confident solution, I recommend that CTOs take a more active role in the hiring process to ensure that candidates are evaluated based on their skills and experience rather than their ability to memorize a book. Today's hiring process prioritizes form over substance due to a lack of attention from CTOs towards the hiring process. Candidates for an engineering manager position are often required to memorise a book such as 'The Software Engineering Manager Interview Guide', which provides hiring managers with expected answers. The organization has appointed an engineering manager who possesses the correct answers knowledge but lacks the other two crucial components of the triad: knowledge-ability-skill.
The issue of hiring for technical positions is plagued by a common problem. A system design interview is a standard part of the hiring process for any technical position in today's job market. However, it can be problematic if the hiring manager expects a response that aligns with the book let’s say with title 'System Design Interview'. A candidate's response to a question such as 'design a payment system' that differs from what is written in the book does not necessarily make the engineer unsuitable. Hiring managers should consider the candidate's reasoning and approach before making a decision. It is important to note that not all payment systems in the world are designed as described in that book, and there are many valid reasons for this. Hiring someone who has memorized answers from books or blog posts but lacks an engineering perspective and the skills to build systems poses a significant risk.
Let's consider an example that commonly occurs during the hiring process. When a candidate is interviewing for an architect position, they may be asked questions as if they were interviewing for a delivery manager position. Similarly, if a candidate is interviewing for an engineering manager position, they may be asked questions as if they were interviewing for a staff engineer or architect position. This gives the impression that companies do not fully understand the differences between these roles. When people within these companies, such as hiring managers, create job descriptions, they may not fully comprehend the specific requirements of each role, such as the differences between a software architect and an engineering manager. Instead, they may look at job descriptions from competitors and attempt to create something similar for a position in their own company without accurately describing the unique problems that the company is facing and the responsibilities that the hired candidate will need to undertake.
An architect's primary role is technical. They create diagrams representing the system's structure, including the services' communication, order, and purpose. On the other hand, an engineering manager's position involves people management, such as hiring, performance reviews, conflict resolution, and promoting work-life balance.
It is important to note that while an architect can mentor development teams, it is not the same as people management. Having an architect present during sprint planning and demos is crucial to prevent duplication of work between teams. The architect acts as a facilitator between development teams, business representatives, management, and developers and communicates with both parties. Moreover, the architect should work closely with the product manager to participate in quarterly planning and communicate the team's current technical debt situation. The architect will discuss the team's capacity for addressing technical debt with the product manager.
The architect establishes a process for making architectural decisions within and across the organization. The development team receives a set of non-functional requirements from the architect. The development team submits architectural proposal documents to the architect or architecture team. The team outlines their vision for the current and proposed system changes in these documents. Additionally, they explain the motivation for adding a new Deployment Artifact or service and how it will communicate with the existing system, such as through REST API, PubSub Messaging, a shared file system, or a shared database. The architect must communicate the Non-Functional Requirements (NFRs) to the product manager and the product vertical within the organization. It is crucial to explain why these requirements are essential and the potential business risks that may arise if they are unmet.
The role of an engineering manager is to focus on people management. This involves having one-on-one meetings with each team member to give and receive feedback. The aim is to ensure everyone has a comfortable and efficient work environment. This helps identify and address issues early on before they become significant problems. The engineering manager should also maintain a good delivery pace while ensuring that employees are productive without burning out. Why is this important? If employees are hired correctly and happy in their roles, they bring business value and reduce the churn rate. This means that employees resign less frequently, institutional knowledge within teams grows, and programmers better understand the business beyond just the technological aspect of the product. This diversity of knowledge and understanding can provide unique insights into problems and potential solutions that product managers may not immediately realize.
The hiring process varies depending on the organization. Some companies prioritize avoiding hiring the wrong person, considering it more crucial than hiring the right person. Others prioritize hiring the right person, even taking on the risk of hiring someone who might not work out. Regardless, the CTO is responsible for implementing the hiring strategy and ensuring that hiring managers follow it and do not violate it.
Posted on May 3, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.