views:

240

answers:

4

I am hired in one of the electricity providers in our country and will start next month. There are three existing programmers, and each of them are assigned in the different departments. They do have an IT department but no head. The result is that the development of the software systems is not centralized because each programmer is on his own. And they are competing each other, in fact not sharing ideas, as one of the programmers told me after my interview. My question is how should I conduct in such situation.

I am taking this job because the salary is way, way much higher than my current salary, and the opportunities for the trainings and seminars are great.

+1  A: 

It is a difficult situation to be in, and a difficult question to answer. If a competitive situation already exists (as you say) then the only way to solve this is having all the developers report to a single person (preferably a technical lead), who is responsible for having the final say in all technical decisions, but also has a vested interest in getting good outcomes from all of the developers involved (and not just some of them).

You could try another approach of leading by example: if you use good practices that make you more accurate/efficient, you might find the other devs coming round to your point of view.

It's a big problem when the existing devs are 'old hands' and know the domain and internal company practices well (even though they may be writing terrible code and following poor practices), and you rely on them to provide information.

[I've been in this situation some years ago where a programmer who worked on his own in another department, refused to check code into source control. The matter was never satisfactorily resolved, as he had the 'ear' of his manager and simply set up his own SCC repository that noone else had access to!]

Mitch Wheat
A: 

Are you the manager of these other engineers? If so, it isn't exactly your problem that their management structure is so convoluted and terrible.

I would suggest trying to do your job as much as possible without interacting with them or their code. You could try complaining upwards up the chain but if something was going to get done about it, it probably already would have.

I would also suggest looking for a new job. After 6 months - 1 year of this you should be able to find a new job with your current salary (or better), at your current position (or more senior).

Succinctly, I recommend the following strategy: Endure and leave.

Colin Barrett
+1  A: 

Sounds like you probably shouldn't worry about it much. From your description, it sounds like you have no authority to do anything.

Go in, learn your job inside and out. Get recognized as someone that can be counted on to deliver results. Once you have established credibility, everything else gets easier.

When you are just starting out, if you have to work with one of the other devs - don't go in like you know everything. Don't start ranting on everything you think should change, or how you did things at your previous job. Listen, observe, learn.

... sigh ...

Now, if I could only learn to follow my own advice ...

+3  A: 

Align yourself with whichever existing programmer has the better technical solution. Doing so will start to edge toward a critical mass for future work.

Andrew
Or you could align yourself with the other two - they might be more receptive to new ways of doing things. Plus there's two of them - if you align with the best one, it would still be 2-on-2.
MusiGenesis