Tithe.ly Engineering

Lessons Learned as a Tech Lead for the Past 1.5 Years

by Shawn Pyle on September 14, 2023

For the last 1.5 years, I have been a Tech Lead for the Tithe.ly Integrations team. During that time there have been changes: someone has left the team, others have joined, projects have changed status, and priorities have shifted. In the ever-changing landscape of software development for a pseudo-startup like Tithe.ly, it can be difficult to lead well. I have learned a few things along the way that have helped me to be a better tech lead (I hope) and I think that these might help you, no matter what role or industry you’re in.

Discover the Unknown

Being middle management has its perks. You’re essentially not responsible for the large decisions and don’t have to implement the details (if you don’t want to). However, if you’re in charge of more than 1 project or a handful of people, there are plenty of unknowns that need to be discovered.

The unknowns are the largest threat to a project’s success and a team’s morale. You can’t know everything but discovering as much as you are able about what is ahead will prepare your team to tackle the challenges as best as they can. Having the fewest surprises possible will help your team hit their goals.

At Tithe.ly, we like to do Pitches, borrowed from Basecamp’s shaping, for new features and projects. This is the perfect time to get feedback about what the feature does and how it will be implemented. Utilize your team to uncover as many unknowns as possible so surprises are minimized.

Maintenance Plan

Shortly before I became a Tech Lead, our team acquired another team and its project. The project was a decade old and in maintenance mode. This designation meant the project was not to receive any new features but the lights needed to be kept on.

If you develop software projects, especially those in production, you know they need regular bug fixes, security updates, and monitoring. Our team neglected some of those as we brought the new team members up to speed on our current projects. This allowed the acquired project to not get the care it required.

After numerous talks with the lead developer, we determined the lack of maintenance to be a serious threat to the company and the project. We uncovered as many unknowns as possible, determined the next steps we should take, talked to the vested parties, sought buy-in from our leadership, and started dedicating some resources to maintaining the project. This was before the maintenance mode designation was removed. We knew it was vital to the company and that our customers needed this service to operate well.

Soon after, the maintenance mode designation was removed and new feature requests were requested. Had we not planned for this, we would not have been ready to handle those features and there would have been a lot more hustle required to get things done. Now, when a project goes into maintenance mode, a maintenance plan needs to be created and implemented so we can be ready for the future of the project, whatever that may be.

Questions to Uncover the Unknown

Here are some questions to consider when uncovering the unknowns:

  1. What do I not yet know about this project or feature?
  2. What things can derail this project or feature? How do I account for that?
  3. What are the threats to our team and the company?
  4. What concerns does my team have about this project, team, or company?

Know Your Role Boundaries

I’m only one person. I can’t do it all. That’s why I have a team. In Tithe.ly, the Engineering department provides the “how” and works closely with Product who provides the “what”. Thinking of terms of responsibilities frees me up to focus on what I can control and ignore what I cannot1.

My primary responsibilities as a Tech Lead are to

  1. Manifest clarity - bring clarity of purpose and action to what we do every day, including uncovering the unknowns.
  2. Destroy obstacles - obtain and provide information and tools for the team and leadership.
  3. Unleash potential - identify strengths and passions in those around me and help them find ways to use them often.

Anything outside of my realm of responsibility is uncontrollable and I cannot spend time worrying about it. This is not to say that I don’t care about the other things that happen in the company, but I can’t let them distract me from my primary responsibilities.

Track Initiatives and Keep Focus

I love a good spreadsheet with delicious data and conditional formatting. It’s the perfect place to keep track of high-priority items, plan releases, and determine project progress. I use it to track various projects in different states. As a team, we update the completion percentage to help us see progress and discuss any blockers that are preventing us from moving forward. This is a fantastic tool to see and celebrate what the team has accomplished each quarter or year.

Here is a template of our team’s priority spreadsheet.

Lead Up

As the go-between for my team and my leaders, uncovering the unknowns is important for both directions. For my team, it provides clarity of action. For my supervisors, it alerts them of potential issues and helps them make better decisions.

In addition to helping my up-line understand what is happening closer to implementation, I must advocate for my team. I am their cheerleader and ambassador. I am the first to see issues from their perspective and I need to be the first to speak up for them. There are times when I can’t get what I need (see Know Your Role Boundaries), but I ask/beg/plead for what my team needs.

Coaching for Leaders is a fantastic resource for all things leadership. Here is a helpful episode on leading bosses.

Regular 1:1s

How do I know what is going on with my team and projects? I talk to them. 1-on-1 discussions provide an amazing opportunity to connect with a member of my team, learn what they love/hate about their job, report on the challenges they are facing, and build trust in me. Be sure to do them in a regular cadence (weekly or bi-weekly) so that you can build a relationship and get to the heart of the matters that affect them.

In addition, understanding (or uncovering “unknowns”) about the people I lead is probably the most important aspect of my job. If someone is struggling to do their work, knowing sooner is always better than later. If someone is unhappy with their role, getting them into a much more satisfying role helps everyone.

I would recommend The Manager’s Path by Camille Fournier for more information on 1:1s and other management topics. She provides a lot of practical advice for managers and tech leads.

1:1s work in the opposite direction and is a great way to implement Leading Up. Requesting regular 1:1 with a supervisor builds relationship and trust, increases the flow of information, and provides an opportunity to ask about unknowns or communicate about the needs of the team.

Sample 1:1 Agenda

Here is a sample agenda for a 1:1 to get you started. As you get to know each other better, you can likely drop these questions and talk freely. These discussions make an awesome resource for yearly performance reviews.

Impact - recognizing the impact of past performance

  1. What were your biggest win(s)?
  2. What have you learned?

Goals - leverage those strengths toward individual, team, and company goals

  1. What are your current goals?
  2. What progress did you make since we last talked?
  3. What blockers do you have from accomplishing that goal?
  4. Is there anything I can help with to make those goals more attainable?

Growth - specific and actionable feedback that unlocks personal and professional growth

  1. What are your biggest challenges in your current role?
  2. What do you need to be ready for your future role?

Work with the Product Manager

A project manager (PM) at Tithe.ly has an impossibly difficult job: be the center of Engineering, Customer Experience, and the customers themselves. After they get input from those groups, they are responsible for what the project should become.

However, it isn’t a one-way communication street. Sometimes Product doesn’t know what is even possible and that’s where Engineering can provide insight. We guide the rails of decision-making by asking the right questions and providing the desired information.

This requires a lot of trust and communication. Can I trust the PM to hear me and take it into account? Can the PM trust me to provide the right information? Can we trust each other to do what is best for the company and the customer?

Getting to know them, how they think, and what they need is a healthy part of any relationship, especially one united for a common cause. Understanding their role and yours (e.g. Know Your Role Boundaries) is an excellent way to know when to push and when to back off.

Conclusion

This isn’t hard and it also isn’t easy. I have learned a lot being a tech lead of a team responsible for many projects. I’m continuing to look for ways to grow. I hope you’ll continue to grow with me. 🌱

  1. Locus of control or circle of influence/concern was popularized by Stephen Covey in his The 7 Habits of Highly Effective People. More details can be found about the circle of influence in this PDF