Tech Lead (TL) solves team wide difficult technical problems, helps team member do their work faster. But if that's the only thing TL does, he/she is merely a short-term hire on the project with little attachment to it. This is because our backend is well architected for feature development and difficult problems don't happen frequently. So TL may need to work in multiple projects at the same time to be fulltime. This is not not what we want. We want a dedicated TL for a project. PM and EM have to possess TL skills. So it's best to have TL handle PM & EM responsibility. With good PM tool and routines, TL can easily handle PM tasks. With people skills, and clearly defined objectives (which can be transferred), it'll be easier for TL to manage engineers.
Project Manager (PM) manages software projects. A Project Manager who does not know anything about tech is purely a task tracker and a pusher. In that case, we can hire a highschool party planner instead. But we don't. At our company, whoever manages anything must know and have hands on experience on all the work he/she manages. PM must know about tech, deeply.
Engineering manager (EM) manages software engineers. An Engineering Manager who does not know about tech is purely a passing-by commentor without meaningful input for team member improvement and better team output. If EM does not work as a tech lead, EM can't develop team member. How can EM know if team member is doing good or bad? There is a fine difference between team member is being difficultly slow and doing bad. EM can't tell the difference if he/she does not have the knowledge of a TL.
Our final verdict is that, at this moment, it does not make sense to separate these 3 roles. To be able to take this role, the responsibilities development must be as follows:
Tech lead --> project manager --> engineering manager
To simplify the name TL, PM, EM role will be merged to a single role: Engineering Manager.
Engineering Manager input & output:
- Breakdown design to individual tasks
- Verify task size, finalize project delivery schedule
- Keep track, adjust course of project progress
- Solve team wide difficult technical problems
- Develop product features
Breakdown design to individual tasks
Input:
- Design output
- Request from System Architect
- Engineers comments/suggestions on design
Output:
- Sized individual achievable tickets (max task length: 3 days) for Backend, Frontend, Mobile.
- Assign task for re-sizing to coresponding team member.
Process:
π― Task breakdown is to create individual achievable tickets from request so team members can pickup & implement independently.
- If there is any information that can help task taker to do the task faster, the tech lead should include that in the ticket.
-
Answer popular questions:
- How many tasks does it take to implement this design?
- How complex is this design (can estimate by the number of tasks)?
Verify task size, finalize project delivery schedule
Input:
- Sized tasks from Backend, Frontend, Mobile
- Comments/requests from team members
- Allocated headcount from HR or System Architect
- Product manager release milestones and roadmap
Output:
- Exact resource needed to complete project: headcount + time.
- Exact milestones dates, product delivery roadmap and schedule
Process:
π― Delivery schedule is most frequently asked question and one of the most important metrics to evaluate the cost of a project. This must be known before project starts.
-
Answer popular questions:
- How many man x day does this project need?
- How long does it take to finish this project with 4 people?
- How many headcount do we need to deliver the project 3 months earlier?
- If we only have 2 people working on this project, how long does it take?
- When is the first deliverable milestone?
- When is the first public release?
Keep track, adjust course of project progress
Input:
- Daily standup updates
- Supposed tasks completion with each team members
Output:
- Recorded Project daily update on team level π΄ π‘ π’
- Recorded individual team member daily progress update π΄ π‘ π’
- Technical & personal assistant to help team member/project get back on track.
- Request to manager or System Architect to help team member/project get back on track.
Process:
π― Track & adjust course of project progress is to make sure team members are focused, supported and project is on time with delivery schedule.
-
Answer popular questions:
- What is today project status? π΄, π‘ or π’?
- Is project on track for delivery? Is it ahead? Is it behind schedule?
- What is the current issue with the project? Why is it behind schedule?
- Does team member have enough resource to do task
A
? If yes, what's holding her/him back? - Who is the best performer and who is the worst performer in this project?
- What can we do to help the worst performer to become the best performer?
Solve team wide difficult technical problems
Input:
- Design output
- Request from System Architect
- Request team members/daily standup discussion
- System degradation and low performance reports
Output:
- Create/help to create a solution to move the project progress smoothly.
Process:
π― Team lead is considered the go-to point of contact of any team member when facing a technical difficulty, which team memnber can't/takes too much time to solve.
-
Answer popular questions:
- Team member
A
is stuck at taskB
, how can Team Lead help? - Devops team is reporting a statistics of api
D
slow response. Can someone look at it? - DB modeling structure is not giving developer a good experience, can someone re-design it?
- Feature
R
seems like a difficult one to implement, does anyone volunteer to take it?
- Team member
Develop product features
Input:
Output:
- Ticket PR with high code quality.
- Merged and deployed PR that strictly satisfies PR rules.
Process:
π― Tech lead must engage to feature development to keep technical skills sharp, understanding team members daily challenges and help move project development smoothly.
-
Answer popular questions:
- Does team member satisfy with the development experience? Is there anything we can do to improve the implementation experience and speed?
- Is there anything that team member have to do repeatedly without and additional valiues? Can we re-design it so it can be acheived by doing it once?
- When will this feature be done?
Review team member PRs
Input:
- Open PRs
Output:
- Added value reviews, strictly follow PR review guideline
Process:
π― Tech lead must engage to PR review as a process to keep technical skills sharp. Tech lead must be the PR review keeper model for team member to follow.
-
Answer popular questions:
- Does this PR follow PR rules?
- Does this PR review follow review guideline?
- Can this PR be shorter?