3 ms·
Well, from the point of view that generally people really want to work with people they like and respect... no. It's bad enough in small teams, but in large te
by jwilliams 18y ago
Well, from the point of view that generally people really want to work with people they like and respect... no.
It's bad enough in small teams, but in large teams people like this can be really destructive.
- cookiecaper 18y agoI worked at a place where the lead developer had this problem. All of the other programmers were new, and he'd been there over a year, so I think we were all willing to learn and listen ... but he did not accept any feedback at all and was determined to dictate, not cooperate. There's a difference between engineers and monkeys, and the lead clearly wanted monkeys; little coding robots who didn't question his strategies or methods, didn't make suggestions, and just obediently churned out what they were told without providing any input into design or architecture. To boot, he was absolutely unforgiving if your style didn't match his (for instance, I usually put the first property of a CSS rule on the same line as the opening bracket, and he doesn't ... and he told the owner that I was incompetent for this and similar infractions), but there were no formal style guidelines; you had to look at his code and try your best to format it exactly, or suffer embarassment and wrath. The whole thing was rather demoralizing and I left in the first month, after quickly learning not to contribute if I was intent on keeping my job for even that long. The other skilled developers left shortly thereafter. He now works mostly with designers-turned-developers and purposely hires less-competent developers so that he doesn't have to field criticism. It's a little disappointing still, because there's a whole group of people who believe that myself and a group of talented ex-colleagues are incompetent because of this person's [intentional and petty] mischaracterizations and immaturity, but I'm trying to be over it. I guess that's only tangentially apropos, but cocky developers are no fun, especially when they're in powerful positions.
- MrRage 18y agoYour old boss is not really cocky, just a fascist control freak.
- thaumaturgy 18y agoWhereas I come at this from the opposite perspective. If you're absolutely certain you're correct, it's natural to want to limit the amount of discussion, feedback, and argument you have to deal with. You've already made up your mind, and that's that, and it's unlikely that a convincing enough argument exists that would cause you to change your mind. The catch is, you have to be really, really good at what you do in order to adopt this stance, otherwise it's just sheer overbearing arrogance. That's where the conflict comes in. Most people, frankly, aren't that stellar at what they do. A lot of folks kinda muddle along, and often change their opinions about accepted practices whenever they read something that takes precedence over their experience. If you doubt this, I think you need only to read some of the security-related threads here on News.YC, or just about any thread on OpenBSD-misc that incurs the wrath of one of the developers. Furthermore, if he was the team lead, and he established a particular syntactic convention -- for whatever reason -- and you didn't follow it, then -- and I say this as gently as I can -- you weren't doing your job. That doesn't mean you were incompetent, and I'm not looking to insult you. But, basically, you weren't following his rules, and he was within his authority to establish those rules. It sucks that his rules weren't written out, but on the other hand, it's really not all that hard to look at some code and then format yours similarly. (Especially with CSS.) Then apparently the lead developer started hiring what you call monkeys. I call them trainable. See, my grandfather had a similar problem. He was one of the best RF and cable TV distributions systems guys in the Bay Area up until he died a few years back. He was an idiotic businessman, but when he was dealing with the technology, he simply was one of the best. (I could bore you to tears with stories.) He absolutely refused ever to hire anybody else with cable TV experience. He hated dealing with them, because they'd been taught all of these bad habits that he would first have to un-teach before he could even begin to get them to do things his way -- the right way. Instead, he hired people with no experience at all, and they naturally just followed his lead, along with a little coaching. It isn't quite possible to do just that in software development, because I think software development requires an entirely different kind of thought process from just about anything else. But, I can see the appeal to hiring inexperienced developers, and making them do it your way right from the beginning.
- cookiecaper 18y agoRight, but that's the thing -- I've had a lot of jobs, been a contractor/freelancer for the last couple years and had three or four desk jobs before that, and I've worked with a lot of different people and a lot of different sets of style guidelines. The problem here was that there _weren't_ any style guidelines; it was all in his head. It wasn't just copying his obvious conventions, which we all did after the initial code review and realizing how unreasonable he was about it, it was also doing anything in a way that was different than what he would do, which is decidedly harder than just copying syntactical formatting. He didn't like my solution to a problem and made me redo the whole thing, and said, "When you get there next time, ask me what to do". I did this, and he came over and told me to do exactly what I did before, but because it wasn't formatted "correctly" (read: according to unwritten and shifting style guidelines existing exclusively in this man's head), he hadn't recognized it. In one instance, my colleague noticed a potential security hole in a PHP application and notified the lead ... who ignored it because "the application is running fine and I don't change production code lightly". Which is laughable because this dude actually edited code directly, live on the servers; there were no test servers, and we weren't allowed to set them up, so we just had to test what we could locally and cross our fingers when it was sent up to the real environment. And so on. I mean, I could go on with things like this for a long time. But, the point is, it wasn't that he disagreed, it was that he was entirely unreasonable and wouldn't ever even listen. If you have a group of people that do things fundamentally different than you and aren't interested in adjusting, then it makes sense to jettison them for those who are somewhat more compatible. The thing is that we were interested in adjusting and adhering to style guidelines, corporate conventions, and similar, and I personally haven't had any substantive problems following varied style guidelines in the past, but they had no conventions or guidelines here, and developers were just left to catch on as best as they could and hope that it wouldn't set off the existing members of the "company family" ... which wasn't easy here. And it's more than just the style guidelines. The act of physically typing code is not that exciting for most developers. This guy was not open to any input at all, and would shoot us down swiftly whenever we brought something that wasn't praise. It wasn't a matter of just disagreeing and then not being able to accept the boss's decision. The problem was what I typed, that he expected robots that would deliver without questioning or working to find the best solution. The whole point of an IT team is to work together and contribute and everyone listens to everyone and comes up with the best combinations of concepts, methods, etc. That's how a team of engineers works, and that's what makes IT enjoyable. That's not how it worked there. There, it's "Defy guy and be ridiculed and fired". This is enough for now. You get the drift, I hope. They've been through three different sets of qualified people now (all the while oblivious that this man is the reason why all his subordinates left, despite being notified of such), so I think that's the main reason they've settled on on-the-job development training for designers instead of real programmers.