Skip to main content
Mod Moved Comments To Chat
Formatting
Source Link
Chris E
  • 43.3k
  • 26
  • 144
  • 178

•According to them, the guy is a jerk, and has no respect towards the other members of the team. One recent quote of him talking to a junior programmer in front of the team is very illustrative: “I worked for twenty-five years in this industry, and you? What have you done? You've been a code monkey for three years. So shut up, you, moron! Nobody cares about your opinion, a******.”

  • According to them, the guy is a jerk, and has no respect towards the other members of the team. One recent quote of him talking to a junior programmer in front of the team is very illustrative: “I worked for twenty-five years in this industry, and you? What have you done? You've been a code monkey for three years. So shut up, you, moron! Nobody cares about your opinion, a******.”

•In the past, decisions were taken by all team members. When members wouldn't agree, they would discuss it all together and come to an agreement, or at least explain the reasoning to the ones who won't agree.

  • In the past, decisions were taken by all team members. When members wouldn't agree, they would discuss it all together and come to an agreement, or at least explain the reasoning to the ones who won't agree.

1.He hates IDEs, auto-completion, and features which are intended to help programmers write code faster, and claims that the team should use Notepad++ to be productive. While it makes sense in different circumstances, it's difficult to imagine C# developers suddenly abandoning Visual Studio for Notepad++.

  1. He hates IDEs, auto-completion, and features which are intended to help programmers write code faster, and claims that the team should use Notepad++ to be productive. While it makes sense in different circumstances, it's difficult to imagine C# developers suddenly abandoning Visual Studio for Notepad++.

2.He doesn't refactor the code, and doesn't care about style (which is inconsistent across his own code), the reason being that “he only cares about things that actually matter”. As a side note, style was previously checked by a nightly build, which started to fail since the arrival of the new lead.

  1. He doesn't refactor the code, and doesn't care about style (which is inconsistent across his own code), the reason being that “he only cares about things that actually matter”. As a side note, style was previously checked by a nightly build, which started to fail since the arrival of the new lead.

3.He rejects the idea of a nightly build, as well as automated tests. According to him, “any professional developer tests his code anyway by hand, so there is no reason to waste time writing automated tests”. The nightly build is also a waste of time, according to him.

  1. He rejects the idea of a nightly build, as well as automated tests. According to him, “any professional developer tests his code anyway by hand, so there is no reason to waste time writing automated tests”. The nightly build is also a waste of time, according to him.

4.He thinks that version control is mostly useless, and seem to misunderstand how to use one. This leads to the situations where he develops a feature alone for three to five days, and when he finally commits his changes, he does “take mine” for all conflicts. If other team members complain that their code was erased, he invites them to rewrite it. On several occasions, other members did the same, erasing the code of the lead developer. He looked surprised (it seems that he doesn't know how to use svn log or diffs), and did his changes again, complaining that “they were mysteriously lost” and blaming SVN for screwing up.

  1. He thinks that version control is mostly useless, and seem to misunderstand how to use one. This leads to the situations where he develops a feature alone for three to five days, and when he finally commits his changes, he does “take mine” for all conflicts. If other team members complain that their code was erased, he invites them to rewrite it. On several occasions, other members did the same, erasing the code of the lead developer. He looked surprised (it seems that he doesn't know how to use svn log or diffs), and did his changes again, complaining that “they were mysteriously lost” and blaming SVN for screwing up.

5.He overstates the importance of code optimization. His approach is correct, i.e. he runs a profiler, determines a bottleneck and fixes it; the problem is that there are no non-functional requirements of performance, and no elements indicating that the users may consider the application as being slow (and hosted on low grade development VMs, the app feels very responsive). He, on the other hand, spends practically half of the time optimizing the code.

  1. He overstates the importance of code optimization. His approach is correct, i.e. he runs a profiler, determines a bottleneck and fixes it; the problem is that there are no non-functional requirements of performance, and no elements indicating that the users may consider the application as being slow (and hosted on low grade development VMs, the app feels very responsive). He, on the other hand, spends practically half of the time optimizing the code.

6.He writes all SQL by hand, and rejects the idea of an ORM. One should note that the current product is based on Microsoft's ORM Entity Framework, and two of the five developers never used SQL before.

  1. He writes all SQL by hand, and rejects the idea of an ORM. One should note that the current product is based on Microsoft's ORM Entity Framework, and two of the five developers never used SQL before.

7.He rejects frameworks and third-party libraries, considering that it's much easier to write stuff from scratch. He decided to abandon all JavaScript libraries and frameworks except jQuery, claiming that when he started programming in JavaScript fifteen years ago, there were no frameworks, and the life was much easier.

  1. He rejects frameworks and third-party libraries, considering that it's much easier to write stuff from scratch. He decided to abandon all JavaScript libraries and frameworks except jQuery, claiming that when he started programming in JavaScript fifteen years ago, there were no frameworks, and the life was much easier.

8.He thinks that mobile devices (including tablets) are just a hype, so there is no reason to waste precious time to ensure the compatibility of the site with those devices and to make responsive design. The product is a public web application which is not expected to be used a lot from mobile devices. Responsive design, however, could be very interesting to have for this app, since even on desktops, it will be displayed on both 19-inch monitors as well as large high-res ones.

  1. He thinks that mobile devices (including tablets) are just a hype, so there is no reason to waste precious time to ensure the compatibility of the site with those devices and to make responsive design. The product is a public web application which is not expected to be used a lot from mobile devices. Responsive design, however, could be very interesting to have for this app, since even on desktops, it will be displayed on both 19-inch monitors as well as large high-res ones.

9.He asks the team to stop using internet (especially StackOverflow) and rely on their brains, the offline documentation (I didn't even know Microsoft still sells MSDN CDs!) and the books.

  1. He asks the team to stop using internet (especially StackOverflow) and rely on their brains, the offline documentation (I didn't even know Microsoft still sells MSDN CDs!) and the books.

•Either throw the lead out of the team or the company,

  • Either throw the lead out of the team or the company,

•Or force him to change his attitude towards the team?

  • Or force him to change his attitude towards the team?

•According to them, the guy is a jerk, and has no respect towards the other members of the team. One recent quote of him talking to a junior programmer in front of the team is very illustrative: “I worked for twenty-five years in this industry, and you? What have you done? You've been a code monkey for three years. So shut up, you, moron! Nobody cares about your opinion, a******.”

•In the past, decisions were taken by all team members. When members wouldn't agree, they would discuss it all together and come to an agreement, or at least explain the reasoning to the ones who won't agree.

1.He hates IDEs, auto-completion, and features which are intended to help programmers write code faster, and claims that the team should use Notepad++ to be productive. While it makes sense in different circumstances, it's difficult to imagine C# developers suddenly abandoning Visual Studio for Notepad++.

2.He doesn't refactor the code, and doesn't care about style (which is inconsistent across his own code), the reason being that “he only cares about things that actually matter”. As a side note, style was previously checked by a nightly build, which started to fail since the arrival of the new lead.

3.He rejects the idea of a nightly build, as well as automated tests. According to him, “any professional developer tests his code anyway by hand, so there is no reason to waste time writing automated tests”. The nightly build is also a waste of time, according to him.

4.He thinks that version control is mostly useless, and seem to misunderstand how to use one. This leads to the situations where he develops a feature alone for three to five days, and when he finally commits his changes, he does “take mine” for all conflicts. If other team members complain that their code was erased, he invites them to rewrite it. On several occasions, other members did the same, erasing the code of the lead developer. He looked surprised (it seems that he doesn't know how to use svn log or diffs), and did his changes again, complaining that “they were mysteriously lost” and blaming SVN for screwing up.

5.He overstates the importance of code optimization. His approach is correct, i.e. he runs a profiler, determines a bottleneck and fixes it; the problem is that there are no non-functional requirements of performance, and no elements indicating that the users may consider the application as being slow (and hosted on low grade development VMs, the app feels very responsive). He, on the other hand, spends practically half of the time optimizing the code.

6.He writes all SQL by hand, and rejects the idea of an ORM. One should note that the current product is based on Microsoft's ORM Entity Framework, and two of the five developers never used SQL before.

7.He rejects frameworks and third-party libraries, considering that it's much easier to write stuff from scratch. He decided to abandon all JavaScript libraries and frameworks except jQuery, claiming that when he started programming in JavaScript fifteen years ago, there were no frameworks, and the life was much easier.

8.He thinks that mobile devices (including tablets) are just a hype, so there is no reason to waste precious time to ensure the compatibility of the site with those devices and to make responsive design. The product is a public web application which is not expected to be used a lot from mobile devices. Responsive design, however, could be very interesting to have for this app, since even on desktops, it will be displayed on both 19-inch monitors as well as large high-res ones.

9.He asks the team to stop using internet (especially StackOverflow) and rely on their brains, the offline documentation (I didn't even know Microsoft still sells MSDN CDs!) and the books.

•Either throw the lead out of the team or the company,

•Or force him to change his attitude towards the team?

  • According to them, the guy is a jerk, and has no respect towards the other members of the team. One recent quote of him talking to a junior programmer in front of the team is very illustrative: “I worked for twenty-five years in this industry, and you? What have you done? You've been a code monkey for three years. So shut up, you, moron! Nobody cares about your opinion, a******.”
  • In the past, decisions were taken by all team members. When members wouldn't agree, they would discuss it all together and come to an agreement, or at least explain the reasoning to the ones who won't agree.
  1. He hates IDEs, auto-completion, and features which are intended to help programmers write code faster, and claims that the team should use Notepad++ to be productive. While it makes sense in different circumstances, it's difficult to imagine C# developers suddenly abandoning Visual Studio for Notepad++.
  1. He doesn't refactor the code, and doesn't care about style (which is inconsistent across his own code), the reason being that “he only cares about things that actually matter”. As a side note, style was previously checked by a nightly build, which started to fail since the arrival of the new lead.
  1. He rejects the idea of a nightly build, as well as automated tests. According to him, “any professional developer tests his code anyway by hand, so there is no reason to waste time writing automated tests”. The nightly build is also a waste of time, according to him.
  1. He thinks that version control is mostly useless, and seem to misunderstand how to use one. This leads to the situations where he develops a feature alone for three to five days, and when he finally commits his changes, he does “take mine” for all conflicts. If other team members complain that their code was erased, he invites them to rewrite it. On several occasions, other members did the same, erasing the code of the lead developer. He looked surprised (it seems that he doesn't know how to use svn log or diffs), and did his changes again, complaining that “they were mysteriously lost” and blaming SVN for screwing up.
  1. He overstates the importance of code optimization. His approach is correct, i.e. he runs a profiler, determines a bottleneck and fixes it; the problem is that there are no non-functional requirements of performance, and no elements indicating that the users may consider the application as being slow (and hosted on low grade development VMs, the app feels very responsive). He, on the other hand, spends practically half of the time optimizing the code.
  1. He writes all SQL by hand, and rejects the idea of an ORM. One should note that the current product is based on Microsoft's ORM Entity Framework, and two of the five developers never used SQL before.
  1. He rejects frameworks and third-party libraries, considering that it's much easier to write stuff from scratch. He decided to abandon all JavaScript libraries and frameworks except jQuery, claiming that when he started programming in JavaScript fifteen years ago, there were no frameworks, and the life was much easier.
  1. He thinks that mobile devices (including tablets) are just a hype, so there is no reason to waste precious time to ensure the compatibility of the site with those devices and to make responsive design. The product is a public web application which is not expected to be used a lot from mobile devices. Responsive design, however, could be very interesting to have for this app, since even on desktops, it will be displayed on both 19-inch monitors as well as large high-res ones.
  1. He asks the team to stop using internet (especially StackOverflow) and rely on their brains, the offline documentation (I didn't even know Microsoft still sells MSDN CDs!) and the books.
  • Either throw the lead out of the team or the company,
  • Or force him to change his attitude towards the team?
Source Link
Old_Lamplighter
  • 160.1k
  • 108
  • 436
  • 586

For a few years, the founder was unhappy about the technical skills of the employees, and he recently hired a senior developer for the double role of technical lead and project manager. He was the only one doing an interview, and the only one deciding to hire this person.

Sounds like the founder doesn't trust you chaps.

The team, however, became much less appreciative of his profile over two months. I had an opportunity to talk with three of five members of this team, and they all highlighted three issues:

•According to them, the guy is a jerk, and has no respect towards the other members of the team. One recent quote of him talking to a junior programmer in front of the team is very illustrative: “I worked for twenty-five years in this industry, and you? What have you done? You've been a code monkey for three years. So shut up, you, moron! Nobody cares about your opinion, a******.”

Sounds like you're only getting one side of the story. I can picture a few situations where I might need to slap down a young know-it-all myself, and I have. just playing devil's advocate here, but it sounds like he was provoked. What was the provocation?

•In the past, decisions were taken by all team members. When members wouldn't agree, they would discuss it all together and come to an agreement, or at least explain the reasoning to the ones who won't agree.

apparently, past practices did not generate the results that the founder wanted.

Now, all important decisions are taken exclusively by the lead developer. Those decisions cannot be questioned or discussed, even if all five team members find that a decision makes no sense.

Again, it sounds like a vote of no confidence from the founder. He brought in this type of person for a reason. Sounds like the reason was to whip the rest of the staff into shape.

1.He hates IDEs, auto-completion, and features which are intended to help programmers write code faster, and claims that the team should use Notepad++ to be productive. While it makes sense in different circumstances, it's difficult to imagine C# developers suddenly abandoning Visual Studio for Notepad++.

IDEs can slow you down if you're a fast programmer. Notepadd ++ is superior to some for quick coding. The idea is that you write your code, then drop it into the IDE for quick correction instead of constant interruptions.

2.He doesn't refactor the code, and doesn't care about style (which is inconsistent across his own code), the reason being that “he only cares about things that actually matter”. As a side note, style was previously checked by a nightly build, which started to fail since the arrival of the new lead.

Shop standards are something to discuss with the founder, especially since you're running it through the nightly build. But again, reading between the lines, it looks like the founder doesn't trust you.

3.He rejects the idea of a nightly build, as well as automated tests. According to him, “any professional developer tests his code anyway by hand, so there is no reason to waste time writing automated tests”. The nightly build is also a waste of time, according to him.

He's right automated tests don't account for the sheer genius of some fool doing something never intended. I've personally broken several programs that went through automated testing.

4.He thinks that version control is mostly useless, and seem to misunderstand how to use one. This leads to the situations where he develops a feature alone for three to five days, and when he finally commits his changes, he does “take mine” for all conflicts. If other team members complain that their code was erased, he invites them to rewrite it. On several occasions, other members did the same, erasing the code of the lead developer. He looked surprised (it seems that he doesn't know how to use svn log or diffs), and did his changes again, complaining that “they were mysteriously lost” and blaming SVN for screwing up.

Everyone is at fault here. Doesn't anyone backup? If he's having trouble with version control, it is the team's responsibility to work as a team and not just give him a hard time over it.

5.He overstates the importance of code optimization. His approach is correct, i.e. he runs a profiler, determines a bottleneck and fixes it; the problem is that there are no non-functional requirements of performance, and no elements indicating that the users may consider the application as being slow (and hosted on low grade development VMs, the app feels very responsive). He, on the other hand, spends practically half of the time optimizing the code.

There is no way to overstate the importance of code optimization. The purpose of code optimization is not to make sure it's running right today the purpose is to optimize it so that you're not fixing some problem three years down the line which could have been prevented with code optimization.

If you only care about the users being happy today, you're going to have them banging on your door tomorrow.

6.He writes all SQL by hand, and rejects the idea of an ORM. One should note that the current product is based on Microsoft's ORM Entity Framework, and two of the five developers never used SQL before.

Two of the five developers should be fired then. If you're relying on an ORM, you will never be able to get under the hood and fix things manually. I'm starting to see why he called someone a 'code monkey' in frustration. ORMs are fine and good, but you need to understand the SQL if you are ever going to go beyond the limitations of an ORM.

7.He rejects frameworks and third-party libraries, considering that it's much easier to write stuff from scratch. He decided to abandon all JavaScript libraries and frameworks except jQuery, claiming that when he started programming in JavaScript fifteen years ago, there were no frameworks, and the life was much easier.

He's right. Frameworks and third-party libraries have limitations, and if you don't understand enough to go in and fix it yourself, you don't understand the code. An argument could be made either way. If, however, nobody on the team can code without using the frameworks, then you have a very weak team.

8.He thinks that mobile devices (including tablets) are just a hype, so there is no reason to waste precious time to ensure the compatibility of the site with those devices and to make responsive design. The product is a public web application which is not expected to be used a lot from mobile devices. Responsive design, however, could be very interesting to have for this app, since even on desktops, it will be displayed on both 19-inch monitors as well as large high-res ones.

From everything you've stated, it sounds like he's been brought in to clean house. If mobile devices are not a major player for the application(s), spending too much time is a waste. While it might be a "nice to have" on a desktop, a "nice to have' is not a necessity for rollout.

9.He asks the team to stop using internet (especially StackOverflow) and rely on their brains, the offline documentation (I didn't even know Microsoft still sells MSDN CDs!) and the books.

Good for him. Looks like he wants to know who can do their own homework and who's been cheating.

Team members complained to the founder of the company about their new lead about those three issues. The founder responded that they are overreacting, and that he has an absolute trust in the skills of the new lead, based on his CV and the interview, which is exactly why he assigned to this person the role of a lead developer in the first place.

What should the team do to:

•Either throw the lead out of the team or the company,

•Or force him to change his attitude towards the team?

How about working with him and not sabotaging his every move.?

In all honesty, it sounds like he's been brought in to clean house, given what you've posted, it sounds more than justified.

The owner is NOT satisfied with your performance. It would behoove you to take this fellow's advice for what it's worth. We relics have a bit of experience and we know what the books will never teach you. Yet, rather than see this as an opportunity to learn and grow, your team is having a massive hissy fit.