Are You Ready to be a Software Lead Developer?Tuesday, Jan 08, 2019
Technology Manager, MBS
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 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).
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.
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.
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.
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.
- 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