If your writing tests, setting up environments, and writing specs, your going to be slower than developers who just codes by the edge of his seat.
If you writing software thats needs to be correct, or maintained for many years, you might value that.
If you writing a quick prototype, you won't.
This is why star performers at one company, turn out to be duds in another and vice versa. Its quite a common thing. Switching companies can be a culture shock.
I like being a contrarian, because I force people outside of their preset view, and to see it from other side.
How many times do i see bosses calling their employees lazy, making then work over time? Yet whens its their kids, or wife having to work over time or being heavily worked, so they never see them, they think differently. A different viewing angle, thats why.
The OP made clear that the setup VMs that they do not need and ask questions "then a week later come back with the same question as though we had never talked about it". I can't see how this is related to writing specs or following proper software engineering guidelines.
Sure he might judge these people wrong, but he certainly has much more information than you. You have no information at all!
> I like being a contrarian, because I force people outside of their preset view, and to see it from other side.
Yes, that's exactly what I thought you were. But this is not a helpful attitude if you don't have the necessary contextual information.
If your going on a date with someone and they pick their nose, you probably think they are a slob. If someone has been married to someone 20 years, and they pick their nose, you might say "but they have a heart of gold".
Forcing yourself out of lazy views, is quite hard.
Yet its the number one thing thats important in management. Not jumping to conclusions, being able to see from another position, being able to reframe your views and so on.
He's offering a different perspective on what the problem might be. If your default view is that these people are "inefficient", you're probably going to be a terrible manager.
>The OP made clear that the setup VMs that they do not need and ask questions
Because the OP is having trouble figuring out what the problem is. If it was as straight-forward as "These guys don't do any work" then the solution is pretty obvious, isn't it? He also says, "Two of them just work with minimal supervision". Well, if everyone was like that, we probably wouldn't need managers.
in my experience this is nonsense. a good developer will be able to produce anywhere except the most fucked up of workplaces. if they can't, then they're not good.
in fact, this is a moot point, because good developers don't stick around to try to produce work in fucked up companies.
and a bad developer is going to suck no matter what. it's not a question of finding the magical company for him to magically become good at.
I've been close to being fired at some companies, and others promoted within months.
Mainly because of the different culture. I'm happy for it, finding a good company or position with the same values is really nice.
I will gladly admit i am not good at lots of things in software. But I know what i am good at.
Don't ask me to build slick User Interfaces for example, but I can build a reliable distrubuted fault tolerant backend if you want. I'd imagine Linus might not be that good at building slick angular apps, but you don't judge him on that.
I care about being able to thrive in my role, doing good productive quality work, and getting well compensated for that.
I am not ego maniac how likes to think he is awesome 1% programmer. I have realistic ideas of what i am good at, and try to find positions that use them.
In any case, I believe you two just have a misunderstanding. It sound as if you believe a "good" developer is one who is consistently capable of producing quality work, whereas the person you are responding to considers a "good" developer to be one who is capable of producing quality work. In my experience most people also share the second definition but that's besides the point.
I can't imagine it's hard for you to believe that if we consider someone is "good" if they are capable then being good has nothing to do with their level of motivation which is directly affected by their workplace. That being the case, obviously any developer will produce to varying degrees depending on how well they fit with their company, or probably more accurately their team.
"in fact, this is a moot point, because good developers don't stick around to try to produce work in fucked up companies."
Why? There isn't some discrete separation of good companies and "fucked up" companies. There are good companies, bad companies, and companies of all levels between. And even in companies there are good and bad teams. Just because a great developer doesn't perform on one team doesn't mean it's the team's fault; it could just be a poor match.
> one who is consistently capable of producing quality work
if you disagree with that, i don't even know how to respond.
for what it's worth, i never considered myself a very good developer. i was not capable of consistently producing good work. that's part of the reason i co-founded a startup and do a lot more than development now.
i don't see how this is so shocking for me to suggest. most people aren't that great at things.
Development is so vast. You can be doing embedded systems, mainframes, aircraft software, or web software.
It was shocking because it was rude and uncalled for.