Years ago, I started the venture of creating a startup company with my client as he has developed his own idea for his business.
He wants me to lead the team and organize everything from top to bottom, from source code to servers with the two of us starting the venture together.
I have to confess that it is a rough path for me to lead and get that startup going as much as possible with little experience as a lead developer since mostly I’m tied in developing software apps for the most part. As such, with the responsibility the client has given me, I believed that the experience allowed me to see the bigger picture of what was it like to run a startup company these days.
Without further ado, these are my confessions, and lessons that I learned while I played my role as Lead Developer in a startup company:
You wear many hats
You focus not just in coding and programming every logic that you can do but also learning how to see other moving parts of software ecosystem that fit in our needs such as cloud servers, Continuous Integration, Continuous Deployment, version control to use such as git, and checking the quality of the code being shipped to production.
Not only that, but you also need to consider which stacks are you going to use to build the system. What kind of database are we going to use? Back-end Programming Language? Front-end libraries and frameworks to tie together? Are these economically viable and sustainable?
As a Lead Developer, you don’t get the luxury of just simply wearing your favorite hat (which I often do). Just because you’re good at programming and tackling new features or tasks doesn’t mean you have to abandon every other responsibility you have in a startup. Remember that when you’re in a startup scenario, you get to carry every responsibility you can carry — even recruiting the best developers you can ever recruit in the market which I often do.
You need to get the right people to do the task
This sounds like HR-ish thing to do, but remember that you’re the lead developer and must take responsibility on getting the right people whether developers or administrators to get the job done. A team of people with the right skills can accomplish a lot and can come a long way.
We used Upwork to hire the right people for us. We’re thankful that the platform has a lot of talented developers we can find that we can’t find elsewhere in the local marketplace.
You also need to learn to mentor your people
One of the few things Lead Developers need to learn is learning to mentor your people. While the above point is true that we need to get the right people in the team to get the job done, but our job doesn’t end there.
Learning to mentor people on your team is a winning strategy for a startup. It boosts their morale, their ability to thrive and grow, and you improve your relationships with them resulting in high retention of developers.
You need to have an ability to decide critically with conciseness
Ranging from what technology stacks to use into deciding how the company should run. At any rate, having an ability to decide critically with conciseness is a must have especially when it feels like you’re running the company with your client.
This includes what tech stack should fit into your needs, what developer talents should we need, and a lot more.
You need to constantly learn and cope up with the changing times
Constant learning should be part of becoming a lead developer for the most part. If not, it is very challenging to start everything from scratch with your client as your partner in building a startup especially if your client does not know much about technology.
I was a constant learner before I find myself a client who is starting the startup from scratch and asked for recommended tech stacks that make sense in his requirements and business model.
Another challenge of the startup is when to upgrade technologies. Is it time to upgrade? Or just stick with what we have at the moment?
You need to learn to organize and prioritize tasks that need priority
As the one leading the team, you need to know which tasks to
This is a must-have skill for any Lead Developer out there so that you can fully utilize the potential of technology and capabilities of each
You need to learn to manage stress
I think this is true of all professions that we take into, but worth mentioning. As a Lead Developer, it is a must to manage your stress very well as you are the one in charge and leading the team.
As always, you must be rational in every decision you make.
You need to communicate with the team
Team communication is essential for the startup to blossom and prosper which I admit not doing consistently. By communicating and checking each
A stand up meeting is a good example of this. I experienced this kind of meeting when I was working at a previous startup company.
Know when to push through and know when to give up
There are times we solve seemingly difficult problems within the team. It is at this time that I, myself as a Lead Developer have to decide on when to push through and solve the problem, and when to give up on it and move on to other urgent matters. Time is of the essence when dealing with the problems.
Learn to do code reviews
Code reviews are a big part of what it means to be a great Lead Developer. You have the experience of what code is bad and good, and which patterns should your developers have to follow. All of which ensures that the code is minimizing future bugs and errors which we can’t avoid at all times.
I only seldom do code reviews as I was focused on dealing with critical issues at hand. So, I was a little bit guilty that I cannot review every code that developers commit in our source control.
Learning to decide when to scale
More often than not, we see ourselves trapped in most mundane, repetitive tasks such as fixing issues and reviewing the code of other developers. We didn’t ever noticed that the time is ticking and scaling up or stepping up our game never crossed our mind till we bumped in one big obstacle that is, fixing most of “high-priority” issues/bugs.
This is often one of the most difficult things to do, especially when the startup is deciding to scale, and when is the right time to scale when we’re constantly facing high-priority issues to the point that we might potentially lose customers because of bugs.
Often, the decision of scaling isn’t that easy to come up as well. There are times that the team is comfortable in just the way it is and doesn’t want change. Other times the client expects me that we scale the startup within this “xyz timeframe”. At any rate, there are a lot of contributing factors to consider when or when not to scale the startup.
It’s a hard decision for me to do considering how inexperienced I am in acting as Lead Developer where I get to decide which technology suits best for our needs and whether we need additional developers to speed things up.
At the end of the day, the decision of scaling is all about what feels and economically right to do depending on whether the startup is performing well or not or whether the startup has budget for scaling. If it is, despite other urgent matters, then we need to do everything we can to scale so that we can solve other existing problems.
Don’t forget to ask for help and learn from others
This is what Lead Developers are afraid of doing so very often. Since they are expected to lead and make a decision on their own for the most part, they don’t ask for help.
I personally think that asking for help and learning from others are necessary whenever you find yourself getting stuck on something so the team can move forward without wasting too much time. Lead Developers are not “know-it-all” people after all.
Leading the team is not always an easy task especially in ever-changing times of tech industry. You are the ones leading the client and your team on the path of success to make your client’s idea come true and make it into the consumer marketplace to be used.