Imagine your organization is about to launch a long-term, complex project to implement a new ERP software that will impact every employee in some way. The implementation will require a substantial technical effort, including data conversion, integration, and report builds. As an ambitious techie, you are attracted to the high-profile project and want to in be charge of delivering all the technical components.
You want to be the Technical Lead.
As someone who has often been a Tech Lead and has managed many Tech Leads, I understand the appeal of the role. It’s essential to any major project with a technical component and is an excellent way to gain valuable experience, build a wide array of skills, and earn strong accolades from your organization.
But – be forewarned that many a project has failed because the tech track went too far off track. Being a Tech Lead is often a challenging and thankless role, especially for larger projects. Landmines abound. Pressure can be intense. If you’re going to put yourself out there, you need to be prepared to deftly navigate those inherent challenges, landmines, and pressure – and not create any of your own.
Accomplishing this requires an array of skills – and not just technical. In this article, I will delve into each of the critical skills and walk you through how to successfully lead the technical track of your own projects and implementations and become that Tech Lead everyone wants to work with.
The Technical Lead Role – What Is It?
My oldest childhood friend taught himself to code when he was 12 (which is saying something, considering that was in the 1980s when coding was much more esoteric). Throughout our middle and high school years, he spent many hours in his parents’ basement writing all kinds of original applications, several of which he showed me. I was quite impressed (though I didn’t want to tell him that). On his own, he had successfully executed a significant volume of technical work, despite his young age.
Now – could that same kid have been placed in an office environment to lead the technical delivery of a large project? Of course not. Sure, he could code whatever you needed; but, he didn’t possess the maturity or the non-technical skills required to lead a technical team as part of a larger project team and organization. This illustrates the difference between being a techie and being a Technical Lead.
Techies perform technical work, which is defined simply by building technical objects based on functional design. This would include interfaces, data conversion extract programs and files, reports, and other various technical objects. Then, once an object or objects are built, the techie passes them back to the functional lead or team to validate that they do indeed meet the requirements defined.
This is standard tech work – which anyone can learn to do. Being a Tech Lead, by contrast, entails so much more.
This role is responsible for delivering the entire technical track of a project on time (or early) and according to functional requirements. If you are the Tech Lead of a project, you are – among other things – the technical project manager, a thought-leader, and a relationship manager. To succeed, you need strong communication, planning/strategy, requirements gathering/documentation, organizational, resource management, and even therapeutic skills (for when your team members are stressed and need support/reassurance).
In other words, you are a leader.
Tech Lead Responsibilities in the SDLC
With this definition and these attributes in mind, I next want to examine each phase of the Software Development Life Cycle (SDLC) and the specific activities the Tech Lead is responsible for. Different people and organizations present the SDLC in different ways, but my company, Cloudworks (Part of Accenture), shows it this way:
The Tech Lead plays a critical role in each phase from start to finish.
Success in building technical objects based on functional design begins in this phase. This is when you as the Tech Lead define the technical strategy for the project based on what is known up front. Documentation should be written detailing the approach for any data conversion, interfaces, reports, etc., including specifics such as – but not limited to – the tools that will be used to build for each type of requirement, how many testing cycles will be executed, and the scope of data to be tested.
I cannot overstress the importance of starting with a solid technical strategy. Good strategy leads to good design, leads to good build. The more time spent creating and refining the strategy up front, the smoother those subsequent phases will be.
Beyond defining strategy, the Tech Lead also performs several other key activities in the Plan phase:
- An inventory of all in-scope technical objects (conversions, integrations, reports, etc.) should be documented, which will later be used to help manage the tech work.
- As a thought-leader, you will work with the Project Manager, providing input into the project plan / timeline as well as the environment strategy for the project based on the technical inventory and when/where you expect to build and deliver the objects.
- You will prepare the technical team you’re managing for the work ahead by collectively reviewing the strategy and timeline and aligning developers to the object requirements that match their respective skill sets.
Now that you have defined your technical strategy, you will design based on that strategy. This requires strong collaboration with the functional team on requirements gathering and technical build options/capabilities. Design specs for each technical object on the inventory are written, which you will need to review in detail with the functional team, asking questions, and ensuring you fully understand them so you can then assign the objects to developers and manage the delivery efforts.
The more thorough you are during this process, the smoother the next phases will be. If you spend the time to think of every question you can and get them all answered, you minimize the likelihood of encountering questions or issues later that might lead to a design change and potentially impact the project timeline.
At the end of the Design phase, each technical object on the inventory should have (a) the appropriate resource assigned to build it, and (b) a due date based on its complexity and in conjunction with the overall project plan / timeline.
All the upfront planning, analysis, and documentation is now complete and it’s time for the fun part: building the objects. As the Tech lead, you will work with / manage any developers on the project to build and unit test every technical object based on its respective spec. If any data conversion is involved, you will execute a sample data set for each business object. Once your team has completed testing of an object, it is released to the functional lead for more detailed testing. If any issues are discovered, the technical team will remediate those, retest, and resubmit to the functional team until everything is deemed successful.
While you’ve already completed some level of initial technical and functional testing, a more comprehensive and integrated approach is required for final testing. This is the phase in which System Integration Testing (SIT) and/or User Acceptance Testing (UAT) are executed to achieve signoff that all technical objects have been built according to functional requirements.
As the Tech Lead, your role is to ensure all objects are deployed to the designated testing environment. If data conversion is in scope, a full data load for all business objects will be executed. Any issues discovered with a technical object while testing will be remediated, redeployed, and retested until 100% success/signoff is achieved.
This is the validation of everything the team has completed so far, and if you have done your work thoroughly in the previous three phases, minimal issues should arise at this point; Test serves simply as an exercise in confirming everything is built properly.
It’s time to make everything official. The culmination of all the work over the past several months – and possibly years – is moved into Production and activated for users. From the technical side, the same objects deployed to the Test environment are deployed to the Production environment. Also, a full/final data conversion for all in-scope business objects is executed and any issues remediated. Finally, any recurring integrations are scheduled to run accordingly.
Typically, some period of stabilization is required after Cutover to ensure that everything installed to Production is running properly. As the Tech Lead, you would need to manage the immediate remediation of any issues discovered with conversion, interfaces, reports, etc. Again, though, if you have been thorough in the previous stages, this should be largely a non-event.
After stabilization, there is one final and critical step to close the project I must mention: CELEBRATE. For real. Do not underestimate the power of collectively celebrating the completion of all the hard work and long hours the team dedicated to the project. This fosters a sense of closure, greater camaraderie among the team members, and reenergization to tackle the next big project together and stronger (but ideally after a vacation).
I’ve walked you through the standard responsibilities for a Tech Lead, but what makes you really stand out in this critical project role? The following is a list of some simple actions you can take as you execute those responsibilities that will greatly enhance your overall effectiveness:
- Preparation – Spend the necessary time in advance to understand any upcoming tasks and/or meetings you’re involved in and be ready with confidence to participate and execute appropriately.
- Constant communication – Proactively ensure your team members and project leadership are always up to date on the status of the technical track and are aware of any roadblocks or issues you’re facing that need to be addressed.
- Prioritize Relationships – You are the representative of the entire tech team and need to build trust with every project team member and leader to be successful. The stronger your relationships are, the more cohesive and effective the team will be overall, lowering the odds of any personal conflicts or strife arising that may negatively impact the project.
- Responsiveness – Reply to all questions/e-mails quickly, even if only to provide an ETA of when you’ll have the answer to the question posed.
- Resourcefulness – Know where to go or with whom to speak for support and answers when necessary. You’re not expected to know everything off the top of your head, but you are expected to know how to quickly get the information you need to keep the project moving.
Notice that none of these actions require any special skills or training – they are all decisions anyone can make to enhance effectiveness and gain the trust of your colleagues. The only possible exception is the final one, but even being resourceful is the result of a decision to actively anticipate and learn up front the key resources you’ll need to have quick access to.
In addition to taking these specific actions, you can exhibit certain key traits to stand out as a Tech Lead even further. As with the previous list, these are all decisions and require no special training:
- Empathy – This is defined simply as understanding another person’s perspective. You should continually expend the effort to understand every team member’s role, workload, background, and viewpoints to better serve them individually and the project overall. Respecting others by actively learning who they are and where they’re coming from – even if you don’t always agree on everything – will go a long way to minimize the potential for strife and conflict on the project. You will naturally develop trusted relationships and consequently work better and more efficiently together.
- Transparency – Report technical issues early so no one is ever caught off-guard and any appropriate mitigation efforts can be pursued. If you wait too long, for whatever reason, an issue eventually may grow into a crisis and cause you – and the entire project – a lot of pain.
- Humility – Know your limitations, trust your team, and stay in your technical lane. Acting as if you are the only capable person on the team, taking on more than you can handle or roles that belong to someone else, is toxic and leads to conflict – which then damages team morale and efficiency and puts the entire project at risk. Instead, show leadership by staying within your defined role, while addressing any issues you perceive with others directly and respectfully.
- Be positive, but realistic – Both traits are required for success on a complex project. Negativity spreads like a virus, so positivity must be actively maintained and encouraged, especially in the face of challenges that threaten team morale. Healthy realism is needed, though, so major issues are accurately identified and addressed in a timely fashion and unreasonable expectations, or deadlines are not set.
- Be annoying – This is a severely underrated, but critical, skill the Tech Lead needs to be proficient with. Because the technical track is downstream from functional, we are often the ones the rest of the team is waiting for to complete much of the work before final testing can begin. And if we receive any functional requirements late, we are on the hook to deliver the same amount of work in a compressed timeframe. The proper way to mitigate this and protect the tech team – and the overall project – is to proactively and consistently follow up with any other team members you’re waiting on and specify the impact to the timeline if it will be late. This shifts the burden back to person who is delayed, where it belongs, and it is on that person – not you – to catch up. Also, you must be a stickler for the defined project scope, so you don’t take on more work than the timeline or budget allow for. Following these basic mitigation efforts can feel uncomfortable and will certainly annoy others at times; but if you neglect them, you may eventually find your tech team has too much work to deliver in too short a timeframe. And whom do you think will be blamed for that?
- Develop a thick skin – In the heat of long, stressful projects, people may say rude or insulting things to you out of frustration (that they likely don’t mean). The wisest action you can take – no matter how hard it may be – is to ignore them and keep doing your work to the best of your ability. If you instead engage and go tit-for-tat, you further inflame the conflict, which leads only to even more conflict and less precious time to get your work done properly. Best to just keep your head down, lead your team to finish the work successfully – and then you will often receive an apology from the person who was rude to you in the first place.
There is one final – and vital – decision you can make to enhance your overall effectiveness as a Tech Lead: have fun. Seriously. Long, complex projects are a slog with stress and emotions often running hot. If you inject some fun for you and your teammates, though – joking around, sharing meals, going to events outside work, talking about your personal lives – the relational bonds between you will grow stronger and tension will be lessened. As a result, the potential for efficiency-killing strife is reduced, the work will feel less like work at times, and everyone will be happier and produce a higher volume and quality of work overall.
The Tech Lead is a challenging role by nature but following all the tips and techniques above will help reduce the challenges and improve your ability to deal with them when they do arise, while simultaneously maximizing your odds for success. If you can start to put all these principles into practice, you will ultimately find that the Tech Lead role when done properly is, in fact, enjoyable.
So go enjoy it. And become that techie everyone wants leading the technical track of their project