Tech Lead (TL) Project Role Description
CivicActions technical team leaders are known as "Tech Leads" (TL). The Tech Lead is responsible for the technical direction of the project. Tech Leads are involved in the entire project life cycle from estimating new business proposals and architecting solutions to leading development teams to work on the highest priorities and ensuring successful project completion. Our Tech Leads work in tandem with a project leadership team responsible for managing the project's overall progress and budget, which may include Design Lead, Project Managers, Scrum Masters, Engagement Managers, and/or Product Managers.
A TL's role definition and responsibilities will vary by project. Responsibilities can also be shared amongst other team members including engineers, project managers, product owners, designers, and assistant technical leads. They will include items from these lists:
- Responsible: "Those who do the work to complete the task."
- Accountable: "The one ultimately answerable for the correct and thorough completion of the deliverable or task, the one who ensures the prerequisites of - the task are met and who delegates the work to those responsible."
- Support: "Helps get the task done or contributes to it".
- Support reviewing RFP and appendices.
- Support filling out analysis documentation.
- Support estimating the proposed solution.
- Support development of project roadmaps.
- Support for high-level technical solutioning.
- Support requirements clarification.
- Responsible for release management, planning, and communication.
- Accountable for knowing, understanding and communicating to the team the project contract scope, expectations, boundaries and knowledge gaps surrounding: project timeline, budgets, roles and responsibilities, partners and supporting entities, functional requirements, design requirements, accessibility requirements, performance requirements, security requirements, technical landscape.
- Accountable for ensuring continuous delivery.
- Accountable for leading project-wide technical discovery to understand an initiative's functional, technical, testing, security, performance, and accessibility requirements in collaboration with service design and UX discovery efforts.
- Support the Product Owner (PO) and Project Manager (PM) in defining development priorities and identifying high value work.
- Support ticket refinement.
- Support epic story creation.
- Support ticket backlog prioritization.
- Responsible for onboarding engineers: project technical background, technical goals and active initiatives, team structure and personnel, project tools, environments, repositories, development workflows, CI/CD processes.
- Responsible for offboarding engineers: removing admin access to sites/services/servers, updating any documentation, transferring tickets/knowledge, and so on.
- Responsible for nurturing a project engineering team culture which values care, balance, openness, and honors client and partner culture and values (follow the platinum rule: treat others as they want to be treated).
- Responsible for fostering collaboration within and across teams and valuing listening and empathy.
- Accountable for guiding all high-level technical discussions with the project team, partner teams, client, additional stakeholders, partners, and third parties.
- Support individual professional development.
- Accountable for triaging current and potential technical risks.
- Accountable for developing and communicating risk mitigation strategies for major technical risks.
- Support the team in gaining a broad understanding of what constitutes a risk - estimation (budget/timeline), security, performance, accessibility, usability, complexity (quality/maintenance) etc.
- Supporting the team in identifying, communicating, and managing risks and blockers to engineering success.
- Supporting the team in identifying and surfacing issues around best practices.
- Responsible for facilitation of implementation and release of a stable sustainable product at the end of each sprint which meets stakeholder requirements, passes quality standards (e.g. functionality, code quality, security, performance, accessibility), and conforms to established best practices.
- Responsible for facilitation of establishment and implementation of development operations, processes, tools, and schedules surrounding local development, code workflows and promotion, automation, and environment usage.
- Responsible for technical architecture.
- Responsible for ensuring design and coding standard compliance.
- Responsible for applying continuous learning within project engineering teams, CivicActions engineering team, and relevant practice Areas.
- Responsible for leading code review processes.
- Responsible for keeping project engineering documentation thorough and current to the extent that the project can be handed off to a new engineering team.
- Responsible for ensuring Agile best practices are followed within the engineering team.
- Support establishing and implementing continuous integration tools and processes.
- Support security compliance documentation.
@todo Needs review.
- Accountable for coordinating on-call support depending on the project.
- Accountable for coordinating and delivering RCA.
- Support establishing and implementing site reliability, load testing, and related policy and procedures.
- Support disaster recovery policy and procedure.
- Accountable for facilitating standards around implementation plans, estimates, and testing steps on tickets and holding the team accountable to these.
- Accountable for ticket risk assessment.
- Support the project team in removing ticket blockers.
- Support facilitating standards around ticket creation.
- Support ticket prioritization.
- Support assignment of tickets when applicable.
- Supports the Project Manager reviewing tickets for proper formatting (implementation plans, estimates, user stories) and ensures that tickets appropriately document the issue and the resolution.
- Supports developing order of operations to support design and engineering collaboration.
- Supports engineering and design teams to design technically feasible and practical solutions.
Responsibilities not expected
- Knowing everything about a project: knowledge is shared among all project participants.
- Coding everything: the Tech Lead's primary responsibilities are around leading and supporting the engineering team, not the engineering itself.
- Primary organizational contact with the Product Owner: that is part of the Project Manager's role.
- Final authority on development and ticket backlog priorities: that is part of the Product Owner's role.
- Availability and support outside of established working hours, unless mutually agreed upon as a project responsibility.
- Building, leading and managing project engineering teams.
- Coaching and mentoring engineers.
- Complex problem solving.
- Risk analysis and management.
- Estimating level of effort.
- Technical prioritization.
- Managing competing priorities, parallel work streams.
- Executive functioning — organizational and planning skills applied to self and team.
- Time management for self and team.
- Communicating technical subjects to technical and non-technical audiences.
- Presenting to audiences.
- Familiar with common technical tools, their appropriate applications and strengths and weaknesses.
- Familiar with best practices of chosen technical stack.
- Relationship building.
- Conflict resolution.
- Qualities: Motivating, self-directed, bias towards action, self and team awareness,
- Values: Collaboration, listening, empathy, perseverance, resilience, adaptability, transparency, attention to detail, ownership, accountability.
- Gathering, defining, and translating technical requirements.
- Architecting best-of-breed technical solutions based on requirements.
- Roadmapping technical solutions.
- Implementing and continuously improving engineering processes.
- Implementing complex development tasks.
- Managing and integrating codebases on large teams.
- Reviewing code with an eye for best practices, efficiency, performance, and security.
- Testing and debugging code.
- Release management.
- Agile methodology and best practices.
- Exposure to a variety of projects of varying team sizes and durations.
- Remote-based work.
Technical Leadership Project Roles at CivicActions
Any of the following technical leadership roles may be employed on a project team depending on the size, scope, and duration of the effort. Responsibilities, skills and experience required for each role will vary based on the scope of the role and adjacent project roles and will reflect that listed above to varying degrees.
Technical Lead (TL)
Technical Lead is the de facto role for a project engineering lead, commonly responsible for leading a team of engineers and responsible for the technical direction of a project (or a single project engineering team on projects with multiple engineering teams)
Assistant Technical Lead (ATL)
The Assistant Technical Lead project role is the first step for an engineer to grow into a Technical Lead as part of their professional development. The ATL supports the TL on the project team with a mutually-agreed upon division of responsibilities. A common division of labor is for the ATL to focus on internal team activities (including code reviews, code management, ticket refinement, etc.) so the TL can support more external activities (including meetings, stakeholder support, communications, coordination with other teams, etc.). The ATL project role is commonly an internally-identified project role whereas the other technical leadership project roles may be defined in the contract.
Is a TL an individual on the project or a project role?
This is a project role, which means that:
- One individual could perform one role on one project and another role on another project (e.g. a TL on project A could also be a frontend engineer on project B).
- Multiple roles on a project could be shared by the same person (e.g. the TL could also be the Lead Engineer). This is the norm for many small and medium projects.
How does one become a TL?
- An individual could be hired to fulfil the project role.
- An individual could show interest and experience and volunteer for the project role.
- An individual who has experience can be asked to take on the project role.
- An individual can first step into the Assistant Technical Lead project role and work towards gaining experience with the different responsibilities before they take on the TL project role.
What are some personal OKRs that I can use to gain experience to become a TL or as an ATL?
Objectives and key results (OKRs) should target various responsibilities listed above with specific key results. Examples:
- Getting involved in sales and business development.
- Completed 1-3 project scorecards.
- Participated in 1-3 project proposals.
- Leading development initiatives.
- Map out the implementation for 3-5 features end to end.
- Peer review all tickets for 3-5 epics.
- New developers are up and running within 2 business days.
Are TLs always backend engineers at heart? What about Frontend and DevSecOps engineers?
The TL project role is one type of growth path to consider. Any engineer is welcome to work towards the TL project role. An engineer who is interested in TL should identify if they can take on the responsibilities or have gaps and work towards closing those gaps.
Should the ability to perform these responsibilities not be expected of any engineer who has attained "some" level of experience on projects?
Yes. Ultimately this project role (an individual or multiple team members) is given the ownership of those expectations in formal documentation.
Important Links for TLs
- #engineering-techlead slack channel (review the pinned messages).
- Tech Lead Reading List.
- Tech Lead Call Agendas, Resources, and Notes.
- Onboarding a New Project Team Member.