top | item 4953404

(no title)

TheMonarch | 13 years ago

Why are the rockstar dev's not interested in things like automated builds, and unit tests? Are they really "rockstar" dev's? It might be political. Maybe they like being the only ones who know how to build the product, or that it has to be done on their machines.

Sometimes people shoot down ideas of those below them because they don't want to see a "threat" rise up to compete with them. Maybe if you can't convince the rockstars, just get everyone else onboard.

So you created the "pocket", are you getting anyone else involved? If you already tried to get official adoption of these practices and that didn't work, I dunno. You might just get it done. A lot of times managers ignore requests like this because they don't want to bother with change. THey don't realize the benefit, or they don't want to try to force change on a team (maybe they don't want to adopt anything the rockstars aren't into).

discuss

order

anonymous-dev|13 years ago

"Rockstar" developers are simply jack of all trade developers with the most experience by far in the company - they created the entire system from scratch. About it being a political thing, I believe so.

I failed to get everyone else on board (even new hires as per my last discussion) because they seems to have already pledged allegiance to the "rockstars" AND/OR don't give a fuck about good engineering/project management practices. Eg: Some have already told things like "I don't mind having a commit fixing two issues at once while the bug report clearly specifies to fix only one of them. I don't mind not raising an issue in the bug tracker about the second bug I silently fixed".

Some managers are former developers who did implement those practices while they were devs but they don't see the urge now. Maybe they know they will not have to fix the issues directly and that might be the reason why they don't push those changes as much. What do you think ?

TheMonarch|13 years ago

Well, there is no guidebook for this kind of thing. I don't know what to tell you. THere are probably people who know how to accomplish what you are trying to do, but I don't know how to advise you past this point.

The takeaway is that while you sound like you are probably a solid developer who's passionate about good software dev practices, the thing you need to work on is people skills, and the politics on how to get what you want. Basically you have a set of things you want to see done from a tech perspective, but now you need to figure out how to effect that change in the company you're in. It's not as easy as it sounds. It's not as easy as explaining the benefits to people. A lot of times, to be honest, I've felt very passionate about something and when it came time to try to convince others, I couldn't really convince them and it was really frustrating. The only thing you can do in those cases is to learn to be less rigid about it. If it's going to bother so much that youa re going to keep stickling about it, you might better off working somewhere else.

I learned that I am sometimes very rigid in how I want things done, but that is only my idealized version of how thing should be. The rest of the team may not want to adopt my ideas, so I had to learn to accept that. There is the perfect way of doing things, an then there is how things are done in real life. Everyone has different motivations. Sometimes people just aren't into their software dev jobs, sometimes they just know software as they learned it years ago and don't want to learn to do things the "right" way, or don't want to learn new technologies. Sometimes the motivations are political. Sometimes it is possible. I think it's often impossible to effect change if the "rockstars" aren't in agreement, often as we discussed before, because they don't want the guys lower on the totem pole showing them up by improving things.

It sounds like you have reached a dead end. You can either figure out how to do it on your own, which will take soft skills. You won't do it by convincing anyone that your ideas are technically the right way to do things. People generally don't care about that in the real/business world. You will have to learn to influence people, to convince them to do things they aren't into. One of the ways I know of is to do the pocket of excellence and make the team dependent on your way of doing things, and then when they are dependent on it, expand, and formalize it. The CI server is running in a VM on your workstation. You just use it and set it up, and make sure everyone on the team can access it. When they want a build, you send them a link to the URL for your CruiseControl instance (o whatever CI tool). They want to fix a piece of code you are in charge of? If they code a bug, make a unit test and ask them to write code to make the test pass. Just set things up the way you want as much as possible an force people to use it. Don't give them a choice. If yuo try to have a discussion in which you envision people agreeing with your way of doing things, that will never work. Just force them to move in the right direction by doing it. Managers aren't as powerful as you might think. The team generally does what they want. The worst that could happen is they ask you to cease and desist, but they probably won't because they probably know that you are a good contributor and they will have to put up with your desire to do things "right".

That's it, basically is to keep trying, but don't try to argue verbally, just put stuff in place and don't give people a choice, or you can find other employment. Focus on small things, and 1-2 changes at a time, you don't want to change everything at once.

Hope this helps.