20

With a team of 3 other web developers i have the title as lead web developer for a year now. This is my first job as a lead.

I'm pretty set on what my roles are from management. I'm curious what other senior level developers do. I primarily curious as to what others people responsibilities are as the lead/senior developer in other organizations; as I've only encountered working in a small/medium company.

(a) What would one expect out of a senior / lead web developer of an organization (regardless of size)?

(b) Is there a difference between web development leader and senior web developer?

I reviewed some threads and there was just one that discussed when you should call yourself a senior developer but doesn't comprehensively discuss the roles of what a senior developer should do with his/her team.

8 Answers 8

22

Project manager's point of view

You are the single (or default) point of contact for anything related to the technical side of things. You are expected to keep the work of the other developers' moving by sheer force, leading by example, or whatever your method is.

Not-lead developer's point of view

You are the role model. Expect the lesser-experienced developers to look up to you and to ask you technical questions when they're stuck.

Think

If you're really asking the internet to define your role/job, stop. Talk to management for a real answer.

1
  • 5
    +1 - "Think" ... or to put it another way, the only definition of the role of "senior web developer" that is relevant to you is your manager's definition.
    – Stephen C
    Sep 2, 2011 at 7:49
9

Your have two primary roles as lead developer: to be an advocate for your team with the business side of your operation, and to provide technical guidance to your team.

As advocate, you should be helping to communicate requirements to your team, pushing back when the business side (be it management, project managers or sales people) makes unrealistic requests or demands, and generally dealing with anything that stops your team from writing code.

As technical mentor, you need to help your team make good decisions, assist them with any technical problems they have, and direct them to proper solutions. You should be encouraging them to improve their skills, and be an absolute stickler for following proper development standards.

Most importantly, you need to be an impeccable role model. Your code should be of the highest standard, your projects should be delivered on time and be of the highest quality. What you do is going to be far more important than what you say.

EDIT: One further thing. You need to be proactive with technical issues. Do not wait for your team to come to you with problems. Be aware of what they're working on, and go to them if they're taking too long, if you know they're on something tricky or outside their core skill set, or if they look frustrated. Listen when people on your team start discussing technical problems without you, and step in if (and only if) you feel like they're starting to drift away from a decent solution, or if they're going in circles and not accomplishing anything.

5

Well, let's explain... leadership.

All your team's mistakes are now yours to take blame of.

Same goes goes for the successes, but really, this is software development, success is modest, you will hardly have any problem in dealing with an excess of success.

Focus on those mistakes. Avoid them, minimize them, try to keep them in check.

And don't get bossy, your team does more mistakes if you do.

4

IMO the role is one of guidance. You've been around the block, so if another (not junior but not senior) developer has a question or runs into an issue in the Foobar module, you're the go-to guy to ask "I'm trying to do X with Foobar, any ideas?". You should also be communicating the team's goals and effort to management while siding with the team on technical matters (e.g. if you and the team figure a project will take 4 months to do, don't cave in and tell the CEO it'll be done in 1 month, and then force everyone to work overtime). You should also be responsible for making sure the code is of appropriate quality and the other team members are doing things right and not just hacking out garbage that's going to collapse down the road.

Of course that's all the theoretical. It depends on the team; I've worked under "seniors" who knew nothing about any modern development in the past 5 years and were "Smithers" to senior management and would say "Sir, yes sir!" to any demand no matter how ridiculous, stifled creativity from other team members, and encouraged a very lackluster work environment instead of one of constant learning and craftsmanship. I've also worked under very knowledgeable senior developers that took an active role making sure things were as best as they could be and never caved to management pressure.

4

I'm a senior devloper and I have several tech leads I work with. The difference is that they are the technical project managers. If there is a conflict between developers over a technicial issue, they make the decison as to what to do. If things are behind, they decide how to address that. They are responsible for making sure that people charge their time to project, that more hours are requested as needed, that new tasks are assigned, that code reviews are done (as senior I may do the code reviews), etc. As a senior, I am generally assigned the more difficult tasks. As a senior I am consulted and expected to mentor junior folks. Tech leads do all that too, but they have the decision power and responsibility for the overall success of the project. As a senior, I'm only responsible for my own part of the project.

2

There could be many different points of view, as Jonathan mentions above.

As a senior developer, you may set the architectural decisions for your group and act as your team's representative for higher-level development group meetings. You may also serve as a mentor and direct the technical activities of your team members.

Frequently, you may also be a liaison with both project management and the business users. You'll help decide how and when to deliver project deliverables and may have the opportunity to negotiate the priorities of project items over the longer term.

In short, your role is what you choose to make of it, given boundaries set by your own management (both technical and business-side).

2

Other people have covered the basic leadership aspect of this question, so I'll try to focus my points on the direct questions asked:

(a) What would one expect out of a senior / lead web developer of an organization (regardless of size)?

I would expect an individual with a strong character and technical knowledge-base. I would expect someone who will not just tear down ideas but propose new ideas to replace the ones they find to be deficient. I would expect someone who doesn't push or bully subordinate developers but tries to find ways that motivate, teach, guide each individual. I would expect someone willing to take responsibility and ownership of projects, concepts and decisions. "Yes-men" and "wall flowers" need not apply. A senior/lead needs to be able to deal with people just as effectively as (s)he does with code... possibly even better in some cases.

(b) Is there a difference between web development leader and senior web developer?

The primary difference I've observed is one of scope, and I've never seen it written down anywhere. A lead is typically responsible for the productivity of a single team. A senior may be responsible for several teams, a single team or no team. A lead is expected to help his subordinate developers achieve their goals within the scope of a specific project or assignment. By subordinate I simply mean developers who have been assigned to a project for which the lead is technically "in charge". I find often I am the lead on projects where several of the developers are either equal to or have more seniority than I do, so it's not a given that the lead will be the most "senior" member of the team. Given that scope, a senior developer is someone that entire organization can count on to have the necessary knowledge and experience to help anyone. A senior is expected to be a role model (as someone else said) to any developer in the organization and is also expected to assist junior developers with technical issues.

In short, for me: A lead helps. A senior teaches.

2

Senior web developers can be viewed as the person that can take a problem, find various solutions and implement the best on their own. The one person army in a sense. Mentor junior developers to help improve the overall team performance. Could also be brought in to harness expertise in various software packages as the senior may be expected to really know something better than other developers in some cases. Generally the skills the developer has get used for the maximum benefit which can be a combination of mentoring, consulting, coding, designing and creating processes.

Lead web developers can come in a couple of different forms to my mind. The lead for a team is the administrative head and is who would do an overall performance review, be aware of which projects a developer is allocated and handle some paperwork while also being a developer once that is done. There is also the lead for a project which is where the person's focus is much more narrow as it is just for this project that this person has the responsibility of enforcing standards and practices within the team. Thus there is the question what is the lead really leading? A project or a group of developers from an administrative perspective?

Not the answer you're looking for? Browse other questions tagged or ask your own question.