Once again an awesome video. The only thing that I would add though is that to become a lead developer or be a good lead developer you should not perceive the other developers as a threat to you. If another developer has awesome ideas, or works faster, or whatever . . . you should embrace that as being an advantage to you as well. As someone most famously said: There is no "I" in team. And, being a lead developer means you are part of a team.
I've been a professional developer for over 20 years and have served in a lead role for more than half of those years. For me personally I find my happy place to be the senior developer role. You get to spend a lot more time heads down coding and still have a lot of influence over technical/architecture direction and the ability to mentor other developers. I've always really enjoyed the hands on act of "building stuff" and as a lead would typically only get to do that in my free time at night or on the weekends. There was just too much overhead involved in running a busy team working on important stuff to spend much time in the code outside of reviews. I guess my only point is that it isn't for everyone.
It's amazing how far and wide the dev community stretches with all the methodologies and all the coding languages, etc. Yet we all experience similar issues and I really feel like your videos hit the mark so well. I've personally turned to a lot of your videos for inspiration and have most certainly benefitted from it. I haven't commented before now, but it's early on a Sunday morning and I've been up since 5am "Practicing" ;) Just wanted to pop in and say thanks for your contribution to our dev community world wide and in my team especially, your videos are frequently shared as reference and guide to help us sort out our issues.
You are the first foreign RUclips channel i came across in 6 years of using RUclips whom i understood completely.I watched your video on stored procedures in sql and i understood it . Love from India.You have gained a subscriber and i will recommend this channel to my friends. The problem with most tech channels is that they explain only syntax its hard to understand the logic behind the code i hope you understand what i mean.
How to grow interpersonal skill as an introvert? Yes, I dislike interacting with people, makes me nervous most of the time. Got into a new job 6 months ago as a Lead Developer (15 years of software development experience), did mentioned to my interviewer (now my boss) I can give it a try as a lead. Months later, got complains from people that they are very surprised with my lack of interpersonal skills. And very soon, I was strip off as a lead, and now full time just doing development.
Being an introvert myself, it helped a lot to get coached in a cognitive behavioral therapy (CBT). Meditating and mindfulness excercises help me to calm down and concentrate better. And when it comes to speaking to peers or in front of (smaller) groups, practice, practice, practice. Oh, and develop a natural interest in the needs and concerns of your colleagues. Ask to understand, not to answer.
I am a junior developer having less than a year of experience in a company, I realized I have many of the skills and interest required to be (eventually) a decent lead developer. And got offered a job application for a lead developer on other company. This video helped me reflect that I should be patient and learn the ins and outs of the real deal. How could I lead a team if I'm learning and even trying to keep up with people who are still intermediate. May be in a start up, may be in projects made to build a portfolio. Yeah I could practice there, but in the business I would just be an incompetent leader since I lack the most important feature of a lead developer. Experience. Very insightful video Tim! Thank you.
@@bezimienny5 I've been working as a consultant for the company for about 4 years. It's a big company (billion dollar range), but they've never had dev leads in the teams I've been involved with before.
@@WorstDeveloper oh no! Are you doing okay? How do your responsibilities nowadays compare with just being one of the regular devs? Is it stressful? On one hand you don't have to live up to any expectations since the teams never had a team lead, but on the other hand you might need to improvise a bit I can imagine. Are you enjoying your new position or not so much?
@@bezimienny5 I've had to learn as I go. I've been dev lead for about 2 weeks now. My role has changed quite a bit lately. I no longer spend that much time programming, but instead I focus on solving technical challenges in projects, and planning/prioritizing work. I also help juniors a lot, and do loads of code reviews. The reason for why I was assigned this role was because the company brought in a bunch of new developers, and they're planning on bringing in even more. I'm the guy with the most knowledge about these applications (I built them), so the role naturally fell on me. I do like the role, but I haven't quite adjusted to it yet. There's still a lot to learn. I've felt a bit ill prepared during these weeks, since I by no means consider myself a senior developer. I don't always have the answers people seek. The role also required a lot of people skills, which is pretty draining for me as an introvert.
09:54 very good points! To be honest, those were some major problems I had in the beginning of my career: being dogmatic and self-opinionated, unwilling to compromise, and especially not seeing those problems. Luckily, this was a long time ago and I learned (especially about myself) and improved a lot.
Another great subject, thanks Tim. Having done a lot of job interviews this year, I've been asked to take the lead on several occasions, even though I don't have the experience yet. Must be my age and the number of years I've been a developer that suggest I would be able to do it. I'm not convinced that I am. I don't have the people skills, so I'm not going to go for Lead. Although I have experienced worse leads than I would probably be :)
I think I am in the similar situation as you. And I was given the opportunity, I tried, and I failed. The environment (colleagues, teammates etc.) will just pull you back down if you are just not mend to be a lead. And this really hits the nail in the head, "I have experienced worse leads than I would probably be". Keeps me wondering how did they do it.
Great points, Tim. I feel I have a good balance of strengths you mentioned, but find I need something else to navigate these times during a pendemic. Some are handling it well, but others are not doing as well. It takes a little more time to focus on the personal element, but it seems required in these challenging times.
Even though I am still a student, I got the opportunity to manage (as a project manager) and lead (as a lead developer) a project's development in a startup. I am looking for ways to accomplish these responsibilities well. And this video has helped me identify what my responsibilities would be as a lead developer. I am excited as I am frustrated.
I've observed this a number of times at small organizations: as most good developers move on, the few people left are not the best, but still automatically get promoted to a lead role. Yet they lack sufficient technical and leadership skills. They often even didn't have a good mentor themselves, so have no idea what that should be. These companies get a difficult working environment, and can't keep new employees for long. And that will probably be a death sentence for the company in the long run.
Example, so time ago I was at a company where the "lead developer" was just the guy that build the first version of the tool 5 years ago. He was still mostly just writing new code... and left debugging and writing unit tests to the junior developers... who often left after a few months. Management had once tried to do something about that, but he threatened he would quit if he couldn't work the way he wanted, and as he was the only one who the tool worked, they let it be.
It is called the Peter Principle - the idea that people are promoted to "a level of respective incompetence". Basically, if you are doing great as a developer, you should lead developers (even though you might not be a good leader). That is a common issue, and one that is hard to get past since it seems disrespectful to hire a new manager to manage someone who knows more than the manager. But as you pointed out, that causes problems for businesses too. The good news is that not every organization is like that. Also, not every person who is offered the opportunity to rise to a level of incompetence chooses to do so.
I've been in a position of a guy who does it all (web, mobile, desktop clients, databases, web backends, clouds, whole business solutions , you name it) but the management cared more about the people who actually hurt the business. They simply had longer history in the companies. Finally I've decided to develop and sale my own products. It is harder, but at least my career does not depend upon some manager's mood. It should be exactly as Tim explains, but reality is that not so many companies have a culture. The moral: don't waste your time somewhere where they do not value people.
@@GreenDimka1 I think it's a lock-in situation. Those "bad leads" dig themselves in to te company in a way that the company becomes dependent on them, e.g by writing his amounts of unmaintainable, untested code. For small companies there is then no real choice: they cannot afford to rebuild their product. They're stuck with this kind of parasite.
@@jhbonarius that is true: they write their code in such a "style" - to have their position forever, because it is never tested, never documented. Instead of using a typical solution for a typical problem - they build strange workarounds which, often, lock the business decisions. And the companies trust them, ignoring the parasitic behavior.
This is a pretty good synopsis. There's an aspect of being a lead that I've found over the years, though, that you missed. As a lead developer, often times, you sort of become the lead "mentor" or maybe even better... the lead trainer. You'll find that new developers need to get assigned work that furthers their skills, so you have to rotate the work around to people based on what they need for their own professional development. Have a dev who's showing great progress on the back end? Give them a few front end tasks so that they can work on those skills. Everybody wants to prepare for their "next" title. They don't just want to sit and stagnate doing assembly line work. To do this, you have to trust them, and let your devs express their creativity. Ride their skills and curiosity to success. I like to approach every day as if I'm consciously, "training my replacement".
I would have said the number one thing to have as a lead is knowledge. Know your tech and tools in and out. But maybe that's just me, I have a lot of practice but never thought of reading through all/most the documentation first. Then reading about industry standards, like SOLID, and design patterns and then also the newest trends in the industry and fully understanding it all. I would just work in whatever project skeleton already laid out by devs or leads that had long since left without fully grasping the entire project and putting it into the context of frameworks, industry standards, trends. I spent so much time googling and copy pasta and hoping it would work with a vague understanding, it was a real source of anxiety and I could have avoided so much by just first reading or doing tutorials.
I would also ask my seniors a lot of questions and it took me many years to realise that they didn't know much either and hence why they were almost always so hostile, that hostility was a great source of pain and frustration. I just wish I had thought of reading things on my own, but in the back of my mind I figured I couldn't because I didn't know what I didn't know and was relying on others to point me in the right direction. Just start reading and you will eventually cover all you need to know
Reading documentation is great, but experience is more important. Just like a lead pilot should be someone who has flown a lot, not just read a lot of manuals.
He is part of the Development Team, as a so-called "leader without a title". He brings in his T-shaped skills as part of the cross-functionality and helps in self-organization.
Thanks, Tim! A great definition for Lead. A question though . . . Who is it who sets the schedule for testing? I mean, way back when, they had a “SDLC” or Software Development Life Cycle. Is that still practiced? Thanks, and always helpful as usual
Not sure what type of testing you are referring to. Unit testing? That should be done every time the application is built. If you mean testing by humans, that is going to be up to the organization. Personally, I think it should be done before every deployment and by someone other than the developer who built the feature.
Why is this a topic? I work in the industry for 10+ years as a developer but we work in scrum teams. So the lead developer role is an ancient role and nowadays not applicable…
To follow the modern times, the question is how you avoid becoming one. People don't want more work for the same pay or empty titles anymore. Hell they're done with getting more pay if they already have enough for a normal lifestyle. The rat race is over.
I think that's taking things too far. Yes, you don't want to be in a position where you have more work for the same pay, but not every employer is like that. The key is to find a good employer and to focus on that more than just money. The problem a lot of people have is that they focus on what provides the most money, rather than on what provides the best work/life balance. The former often leads to bad situations whereas the latter can provide a better overall quality of life.
Once again an awesome video. The only thing that I would add though is that to become a lead developer or be a good lead developer you should not perceive the other developers as a threat to you. If another developer has awesome ideas, or works faster, or whatever . . . you should embrace that as being an advantage to you as well. As someone most famously said: There is no "I" in team. And, being a lead developer means you are part of a team.
Good point.
Nicely said.
I've been a professional developer for over 20 years and have served in a lead role for more than half of those years. For me personally I find my happy place to be the senior developer role. You get to spend a lot more time heads down coding and still have a lot of influence over technical/architecture direction and the ability to mentor other developers. I've always really enjoyed the hands on act of "building stuff" and as a lead would typically only get to do that in my free time at night or on the weekends. There was just too much overhead involved in running a busy team working on important stuff to spend much time in the code outside of reviews.
I guess my only point is that it isn't for everyone.
It's amazing how far and wide the dev community stretches with all the methodologies and all the coding languages, etc. Yet we all experience similar issues and I really feel like your videos hit the mark so well. I've personally turned to a lot of your videos for inspiration and have most certainly benefitted from it. I haven't commented before now, but it's early on a Sunday morning and I've been up since 5am "Practicing" ;) Just wanted to pop in and say thanks for your contribution to our dev community world wide and in my team especially, your videos are frequently shared as reference and guide to help us sort out our issues.
Awesome! I am glad my content has been so helpful.
You are the first foreign RUclips channel i came across in 6 years of using RUclips whom i understood completely.I watched your video on stored procedures in sql and i understood it .
Love from India.You have gained a subscriber and i will recommend this channel to my friends.
The problem with most tech channels is that they explain only syntax its hard to understand the logic behind the code i hope you understand what i mean.
I am glad my content is easy to understand and is helpful.
How to grow interpersonal skill as an introvert? Yes, I dislike interacting with people, makes me nervous most of the time. Got into a new job 6 months ago as a Lead Developer (15 years of software development experience), did mentioned to my interviewer (now my boss) I can give it a try as a lead. Months later, got complains from people that they are very surprised with my lack of interpersonal skills. And very soon, I was strip off as a lead, and now full time just doing development.
Being an introvert myself, it helped a lot to get coached in a cognitive behavioral therapy (CBT). Meditating and mindfulness excercises help me to calm down and concentrate better. And when it comes to speaking to peers or in front of (smaller) groups, practice, practice, practice. Oh, and develop a natural interest in the needs and concerns of your colleagues. Ask to understand, not to answer.
I am a junior developer having less than a year of experience in a company, I realized I have many of the skills and interest required to be (eventually) a decent lead developer. And got offered a job application for a lead developer on other company. This video helped me reflect that I should be patient and learn the ins and outs of the real deal. How could I lead a team if I'm learning and even trying to keep up with people who are still intermediate. May be in a start up, may be in projects made to build a portfolio. Yeah I could practice there, but in the business I would just be an incompetent leader since I lack the most important feature of a lead developer. Experience.
Very insightful video Tim! Thank you.
I am glad it was helpful.
This is perfect timing. I just got assigned as a lead developer out of nowhere.
Great!
As a junior?
@@bezimienny5 I've been working as a consultant for the company for about 4 years. It's a big company (billion dollar range), but they've never had dev leads in the teams I've been involved with before.
@@WorstDeveloper oh no! Are you doing okay? How do your responsibilities nowadays compare with just being one of the regular devs? Is it stressful? On one hand you don't have to live up to any expectations since the teams never had a team lead, but on the other hand you might need to improvise a bit I can imagine. Are you enjoying your new position or not so much?
@@bezimienny5 I've had to learn as I go. I've been dev lead for about 2 weeks now. My role has changed quite a bit lately. I no longer spend that much time programming, but instead I focus on solving technical challenges in projects, and planning/prioritizing work. I also help juniors a lot, and do loads of code reviews. The reason for why I was assigned this role was because the company brought in a bunch of new developers, and they're planning on bringing in even more. I'm the guy with the most knowledge about these applications (I built them), so the role naturally fell on me.
I do like the role, but I haven't quite adjusted to it yet. There's still a lot to learn. I've felt a bit ill prepared during these weeks, since I by no means consider myself a senior developer. I don't always have the answers people seek. The role also required a lot of people skills, which is pretty draining for me as an introvert.
I am working as senior developer now I have clear vision for the team lead.
Great!
Quite Insightful,Thanks for the quick pointers.
You are welcome.
Great explanation Thanks Tim
You are welcome.
09:54 very good points! To be honest, those were some major problems I had in the beginning of my career: being dogmatic and self-opinionated, unwilling to compromise, and especially not seeing those problems. Luckily, this was a long time ago and I learned (especially about myself) and improved a lot.
Awesome! Thanks for sharing.
Another great subject, thanks Tim. Having done a lot of job interviews this year, I've been asked to take the lead on several occasions, even though I don't have the experience yet. Must be my age and the number of years I've been a developer that suggest I would be able to do it. I'm not convinced that I am.
I don't have the people skills, so I'm not going to go for Lead. Although I have experienced worse leads than I would probably be :)
I think I am in the similar situation as you. And I was given the opportunity, I tried, and I failed. The environment (colleagues, teammates etc.) will just pull you back down if you are just not mend to be a lead. And this really hits the nail in the head, "I have experienced worse leads than I would probably be". Keeps me wondering how did they do it.
Hi Tim, great pointers :) thank you for sharing!
You are welcome.
Great points, Tim. I feel I have a good balance of strengths you mentioned, but find I need something else to navigate these times during a pendemic. Some are handling it well, but others are not doing as well. It takes a little more time to focus on the personal element, but it seems required in these challenging times.
Yes, it definitely does.
Even though I am still a student, I got the opportunity to manage (as a project manager) and lead (as a lead developer) a project's development in a startup. I am looking for ways to accomplish these responsibilities well. And this video has helped me identify what my responsibilities would be as a lead developer. I am excited as I am frustrated.
Great! Best wishes on your new opportunity.
Ya I’m a recent graduate and I’m shock a company wanted to to interview me w/o software experience
I've observed this a number of times at small organizations: as most good developers move on, the few people left are not the best, but still automatically get promoted to a lead role. Yet they lack sufficient technical and leadership skills. They often even didn't have a good mentor themselves, so have no idea what that should be.
These companies get a difficult working environment, and can't keep new employees for long. And that will probably be a death sentence for the company in the long run.
Example, so time ago I was at a company where the "lead developer" was just the guy that build the first version of the tool 5 years ago. He was still mostly just writing new code... and left debugging and writing unit tests to the junior developers... who often left after a few months.
Management had once tried to do something about that, but he threatened he would quit if he couldn't work the way he wanted, and as he was the only one who the tool worked, they let it be.
It is called the Peter Principle - the idea that people are promoted to "a level of respective incompetence". Basically, if you are doing great as a developer, you should lead developers (even though you might not be a good leader). That is a common issue, and one that is hard to get past since it seems disrespectful to hire a new manager to manage someone who knows more than the manager. But as you pointed out, that causes problems for businesses too. The good news is that not every organization is like that. Also, not every person who is offered the opportunity to rise to a level of incompetence chooses to do so.
I've been in a position of a guy who does it all (web, mobile, desktop clients, databases, web backends, clouds, whole business solutions , you name it) but the management cared more about the people who actually hurt the business. They simply had longer history in the companies.
Finally I've decided to develop and sale my own products. It is harder, but at least my career does not depend upon some manager's mood.
It should be exactly as Tim explains, but reality is that not so many companies have a culture.
The moral: don't waste your time somewhere where they do not value people.
@@GreenDimka1 I think it's a lock-in situation. Those "bad leads" dig themselves in to te company in a way that the company becomes dependent on them, e.g by writing his amounts of unmaintainable, untested code. For small companies there is then no real choice: they cannot afford to rebuild their product. They're stuck with this kind of parasite.
@@jhbonarius that is true: they write their code in such a "style" - to have their position forever, because it is never tested, never documented. Instead of using a typical solution for a typical problem - they build strange workarounds which, often, lock the business decisions.
And the companies trust them, ignoring the parasitic behavior.
This is a pretty good synopsis. There's an aspect of being a lead that I've found over the years, though, that you missed. As a lead developer, often times, you sort of become the lead "mentor" or maybe even better... the lead trainer. You'll find that new developers need to get assigned work that furthers their skills, so you have to rotate the work around to people based on what they need for their own professional development. Have a dev who's showing great progress on the back end? Give them a few front end tasks so that they can work on those skills. Everybody wants to prepare for their "next" title. They don't just want to sit and stagnate doing assembly line work. To do this, you have to trust them, and let your devs express their creativity. Ride their skills and curiosity to success. I like to approach every day as if I'm consciously, "training my replacement".
Good points. Thanks for sharing.
I would have said the number one thing to have as a lead is knowledge. Know your tech and tools in and out. But maybe that's just me, I have a lot of practice but never thought of reading through all/most the documentation first. Then reading about industry standards, like SOLID, and design patterns and then also the newest trends in the industry and fully understanding it all. I would just work in whatever project skeleton already laid out by devs or leads that had long since left without fully grasping the entire project and putting it into the context of frameworks, industry standards, trends. I spent so much time googling and copy pasta and hoping it would work with a vague understanding, it was a real source of anxiety and I could have avoided so much by just first reading or doing tutorials.
I would also ask my seniors a lot of questions and it took me many years to realise that they didn't know much either and hence why they were almost always so hostile, that hostility was a great source of pain and frustration. I just wish I had thought of reading things on my own, but in the back of my mind I figured I couldn't because I didn't know what I didn't know and was relying on others to point me in the right direction. Just start reading and you will eventually cover all you need to know
I suppose you kind of have that covered by saying that one should already be a senior. I.e. understanding everything
Reading documentation is great, but experience is more important. Just like a lead pilot should be someone who has flown a lot, not just read a lot of manuals.
Thanks for video!
You are welcome.
It is supposed to be a transition to management or ar hitecture. Not a forever in the same project
Hey Tim. Thanks for another geat video!
Question! When will you're monthly enrollment pass be available again?
Best regards from Denmark
We don't have a published schedule for when it opens. The best way to hear is to get on the mailing list.
Thanks!
You are welcome.
So where's the lead developer in a SCRUM team/process/environment?
He is part of the Development Team, as a so-called "leader without a title". He brings in his T-shaped skills as part of the cross-functionality and helps in self-organization.
Hi Tim...can we have a .Net 6 Dll targeting Net6.0 TFM containing only .Net 6 APIs (which is for All platforms) referenced in a Xamarin Project.
I do not believe so because .NET MAUI (the successor to Xamarin Forms) did not make the .NET 6 cut and won't be out until Q2 2022.
@@IAmTimCorey Thanx Tim. Appreciate your reply.
Thanks, Tim! A great definition for Lead. A question though . . . Who is it who sets the schedule for testing?
I mean, way back when, they had a “SDLC” or Software Development Life Cycle. Is that still practiced?
Thanks, and always helpful as usual
Not sure what type of testing you are referring to. Unit testing? That should be done every time the application is built. If you mean testing by humans, that is going to be up to the organization. Personally, I think it should be done before every deployment and by someone other than the developer who built the feature.
Could you please tell what hardware configuration (non apple) is required coding?
What are the deliverables of the Solutions Architect?
Usually to design the application, but it varies from company to company.
Nice shirt, Tim :)
Thanks!
How about a Technical Lead position? :)
I'm so tired of that term. Basically, though, it would be that of a Lead Developer.
Great video! Your content is overall good. I want to make my own channel also
Thanks!
Next question: is the personAnnouncing the episode Sue Storm?
No, sorry.
Team Lead, Lead Developer, Technical Lead. My title is Team Lead. But they call me with all of those. Are they even same thing I don't know xd
It depends on what the company means. Each company does things a bit differently.
Why is this a topic? I work in the industry for 10+ years as a developer but we work in scrum teams. So the lead developer role is an ancient role and nowadays not applicable…
That may be true for your company but it is definitely not true for the industry as a whole. The Lead Developer role is alive and well.
To follow the modern times, the question is how you avoid becoming one.
People don't want more work for the same pay or empty titles anymore. Hell they're done with getting more pay if they already have enough for a normal lifestyle. The rat race is over.
I think that's taking things too far. Yes, you don't want to be in a position where you have more work for the same pay, but not every employer is like that. The key is to find a good employer and to focus on that more than just money. The problem a lot of people have is that they focus on what provides the most money, rather than on what provides the best work/life balance. The former often leads to bad situations whereas the latter can provide a better overall quality of life.
You really need to be a company person and accept your tech skills will erode as your not focusing on it.
I'm not what you mean by this.