Blogs
Inspiration

Are You Ready to be a Software Lead Developer?

Tuesday, Jan 08, 2019
Sameeh Alalfy

Technology Manager, MBS

01 Posts

The career of a Software Developer includes multiple steps and can be branched to different paths. In this blog post, I would like to put the spotlight on one critical position. This is the Lead Developer or Technical Lead position (I will be using the titles interchangeably).

What Does a Lead Developer Do? 

Simply, leading a team of software developers to deliver successful software product or projects. Sounds pretty easy, right? :D

Most of us are keen to climb the ladder of our career paths quickly without caring too much about risks and challenges. This is driven by false temptations such as more earnings or more power. But, take care! Quick climbing without adequate preparation and training for sure will make you fall.

As a Senior Software Engineer, I was deeply focused on how to become competent. I spent most of my time in coding and technical learning. Naturally, I aspired to advance my career and to be a Lead Developer. I charged my batteries for this move. Yet, I was unaware of needed trainings or skills. Fortunately my company (at that time) was strongly supporting employees development by very mature employee development policies and processes.

I was lucky to receive trainings such as time management, risk management, estimation and sizing techniques, configuration management, communications and soft skills.

But of course learning was not enough on its own. I was lucky again to get the chance to act as Lead for a small team with limited responsibilities. This really helped me a lot to be ready somehow for the next step. Yet, once I was an official Lead, I realized another - crystal clear - picture. Much more was needed :D 

The benefits chain is simple. A proficient Lead means, by default, more successful IT projects and products, which of course leads to the ultimate goal: "better life for humans, even if served by those software products or developed it". 

In the coming lines, I will highlight some important knowledge areas you should be aware of so you can be a successful, proficient Lead Developer. They are just highlights. I didn't probe into the details of each point.

Set Expectations for Your Duties and Responsibilities

The duties and responsibilities of a Technical Lead, differ from one company to another and from one project to another. So don't ever forget to set up a meeting with whoever is responsible for managing the project at hand once you are assigned to it. You need to understand clearly what's expected from you on this project. Identify your duties and responsibilities.

Keep Your Hands Dirty

Don’t leave coding because you are too busy doing other activities. In my opinion 50% of Technical Leads' time should be spent in implementation tasks such as coding, unit testing, troubleshooting and deployments.

If you think  that you will stop coding by being promoted to a Technical Lead, you are wrong! You are setting yourself to unpromising results. If you really want to stop doing implementation tasks such as coding, you should think about another career path.

Solution Technical Design

Mostly, Technical Leads are responsible for creating and documenting the solution detailed technical design. The technical design document simply should define how a developer can implement a certain requirement from a technical perspective.

Earlier, you may have been participating in the technical design. In your position as a Technical Lead, you are now responsible for the end-to-end project/product technical design. A tip: read and learn different architecture styles and design patterns.

Expand Your Technical Knowledge

Don’t be distracted too much with managerial tasks. Everyone considers you the technical owner of the project. Your team members consider you their technical reference. And, you should be ready and up for it. Be insatiable for learning more than before; always stay ahead of your team. Don’t limit yourself within the boundaries of your comfort zone of technologies! Go outside the box and learn about alternatives and competitors.

Software Development Lifecycle

You should have deep knowledge of different work phases needed to deliver a software product. So you should be aware of the different SDLCs' models or methodologies such as waterfall, spiral, Agile software development and incremental.

Time Management

Time will be your monster that you fear all time! You have a lot to do within short time (relatively). So be very organized, prioritize your tasks carefully and use the magic power of delegation.

As a Lead Developer, you will create development Work Breakdown Structure (WBS). WBS is simply a break down of the whole project development activities into smaller and distributable tasks that can achieve certain deliverables within an estimated effort. Once the WBS is ready, you will support the Project Manager to add it to the project schedule while recommending certain consolidation, sequence and resource allocation to have a final and complete project schedule.

A tip: you should know what are the different software estimation and sizing techniques and which one you should use, how to create development WBS, and what is project schedule (plan).

Communications Management

You should be working on improving your communication skills early enough, formally and friendly as well as verbal and written.

Now you have three dimensions of communications. One with the one who are reporting to you. One with whom you are reporting to. The third one is with the customer. All of the three dimensions are really important, you can't afford to fall short in any one of them.

Emails will be an important part of your life. A lot of developers hate reading or writing emails. Yet, it's a known fact that email are part of your new role. Practice well on how to write effective emails and how to read it efficiently as well.

Meetings will consume a lot of your time. So, hold effective meetings with clear objectives and outputs. Avoid being dragged into a meeting without knowing the objectives and attendees of this meeting.

People Management

Leadership is about leading others to achieve a desired result. You are not alone anymore. You are responsible for a family now!

You will be spending a lot of time motivating, mentoring, coaching, training and guiding your team members. Take care of developing proficient team members and they will take care of you and the project.

Scope Management

You, along with the Project Manager, have a great responsibility in defining and controlling the project scope. It's not only the Project Manager's responsibility.

You should not accept any scope changes without communicating such as incident to the Project Manager to take an action.

Quality

You will be responsible of the delivered product quality. Spread the quality culture all around. Start by making sure that your team is following the same coding guidelines, planning and executing unit testing as well as sharing knowledge and supporting each other.

Do not avoid code review, instead, do it as habit!

Everything should be documented. Do it wisely! All developers hate this task, but you can't depend on know-how being caged in the developer's head. 

Final Recommendations

  • Be prepared
  • Get a chance to act as a Lead first
  • Be organized
  • There are lot of tools out there that you can use to make your life easier
  • Always ask for help and guidance

Comments

  • user avatar

    Mayank Gupta

    Wednesday, Oct 06, 2021

    Thankyou for sharing such a useful Information. Please keep posting these kind of information in future also. We at Service CRM also provide Services like Software Development, Custom Software Development, Mobile Application, Field Service Management App

Some of our features will not be working properly on IE. We recommend using this website from our supported browsers ex: Google Chrome, Firefox, Opera, Microsoft Edge