Last Updated on March 10, 2020
Leading an engineering team in an ambitious, fast-paced startup requires a unique blend of technical leadership, engineering management, project management, and people management. With constant pressure to deliver new features, ever-changing customer requirements, and one-off customizations – you need to strike a balance between assigning resources to strategic priorities and building custom code to bring in the next big deal.
In my experience, the top engineers get promoted to lead teams because of how well they understand the product and what’s required to get it to market. But being an efficient engineer does not necessarily make you a great manager, and often, managers at fast-paced startups have to learn on the job how best to run an effective engineering team.
I have faced four unique & rewarding challenges while leading the engineering team at WorkSpan and I want to share them with you:
- Time to market
- Changing priorities and constant distractions
- Building customer-specific features
Let’s deep dive into each of the four challenges.
TIME TO MARKET
In a fast-paced startup, engineering teams can easily be pulled in competing directions. There is an urgency to get new products and features to market, but on the other hand, it’s critical to have a high-quality deliverable that delights the customers.
In my experience, an agile requirement gathering process is an essential first step to gather insights into the feature direction. By doing an early customer validation with a few pilot customers via beta testing or user acceptance testing – you can get the product feature ready for market at a faster pace.
For example, when building the CRM integration functionality within the WorkSpan platform, my team and I faced a unique challenge – getting the feature to market on time vs. developing it for every edge case. Every one of our customers within the platform has unique requirements with different attributes. We incorporated the agile requirement gathering process with a core set of pilot customers. We built the CRM integration systems with the approach of making it generic enough to work for most of our customers while not immediately solving for every edge case.
We launched the CRM integration functionality quickly and built on top of it after launch to solve for more unique and esoteric edge cases.
You have to consistently juggle and strike a balance between launching a feature to market vs. error-proofing the feature for every edge case. The key is to fail fast and keep iterating for edge cases; it will help you make the feature available for key customers in a timely manner.
CHANGING PRIORITIES & CONSTANT DISTRACTIONS
The creative process within a fast-paced startup is, by its very nature, fluid and priorities can shift quickly. My team and I often face a multitude of requests from different customers, and all requests can come in with similar high priority. Furthermore, some customers can be more demanding and have a way of getting their requests to the front of the line.
At WorkSpan, we implement a ranked Kanban board to address customer escalations. It allows the organization to prioritize issues across all customers in a balanced way. Furthermore, we found that it’s far more effective to bring existing priorities to their logical conclusion before starting on a new initiative.
We have a core, small, and agile engineering team that is often pulled in different directions by forces outside of the engineering umbrella. As a manager, I will intervene in these situations to minimize distractions and keep my team firmly focused on the task at hand. The new project is assigned to the team after the task is complete. Therefore, avoiding incomplete code and features in the product.
BUILDING CUSTOMER SPECIFIC FEATURES
In a fast-paced startup such as WorkSpan, engineering teams can get inundated with one-off feature requests from customers. Therefore, making it challenging to keep the core source code clean and not cluttered with custom code.
We developed a process at WorkSpan where customer-specific code lives outside the core system in the form of data mapping or data manipulation component so the core source code remains clean. We enhanced our API endpoints instead to accept the diverse incoming data. A further enhancement is to extend your data model to have calculated fields.
This way you avoid a project that starts as a small hack and ultimately becomes a protracted engagement as the customer requirements evolve.
The challenge as an engineering leader is what kind of culture do I want to establish in my company?
At WorkSpan, I work to establish three core principles that define the team culture:
- Culture of empowerment: Within my team, everyone from the intern to the architect, has the power to make decisions at their level without the fear of failure and micromanagement. Everyone can review and critique the engineering decisions, without the fear of retribution.
- Transparency: We wanted to create a culture of transparency so every one of the team members knew what others were doing. To embody that culture, we have a regular practice of doing demos of different projects from different teams from different locations. We created a “design council,” so teams can provide their feedback on various projects and learn together. All Slack channels are public and anyone in the company can subscribe to them.
- Team of equals: Ego kills team morale faster than anything. I continuously take measures to ensure that all of the team members from developers to architects to program managers to quality engineers feel they are at the same level, and there are no silos of hierarchy. In the end, everyone has a different but critical role to play in the organization.
It’s easier said than done, and there are often challenges to maintain team morale and maintain a culture of empowerment, transparency, and equality.
I see my team as an extension of myself. And I firmly believe that just as you protect & encourage your family, you should do the same for your team. I embody the two P’s – Protect & Promote, towards every team member, as I lead and nurture them towards their best self.
- Protect your team from unnecessary project distractions and more so from office politics. Blameless issue post-mortem/RCA gives the best results, vs. putting a spotlight on an individual. Keep them focused firmly on the prize and push them to deliver a world-class product.
- Promote them when they do well and defend them when they stumble. Give your team visible roles and opportunities so everyone can see their capabilities. Be generous with your praise in public, and sensitive with your critiques in private.
Managing and leading an engineering team is a constant juggle, and you are bound to make mistakes. But when you get it right, and you start to create the next wave of leaders in your company – it will be the most fulfilling job in the world. Even though there are challenges, as I shared above, they are the most rewarding part of my role as it helps me grow as a leader.
Someone once said that,
“You can buy a man’s hand, but you can’t buy his heart; that’s where his passion lies. You can buy a man’s back, but you can’t buy his brain, that’s where his creativity lies.”
If you empower, encourage, and lead by example, you will increase your chances of leading your team to success and become a role model. I would love to hear more about your experiences in leading an engineering team. Please do share them in the comments, and I will reply.