Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

How to deal with the developers refusing to use certain technologies or tools?

Note: Good help is hard to find, so answer 'Let them go' doesn't work in this case. Besides, they are very good in what they do, just don't want to do what they don't want to do.

Examples: "Get away from me with this Crystal Reports stuff or you will never see me again."

"I am not using SSIS for anything."

"You can integrate sytem with MAS 500 yourself, I won't touch it with a 10-foot pole."

General Comment: "Ask developers to provide a better solution" is not always an option as the technology / tool maybe given to us by the customer.

  • Customer has people familiar with CR to tweak reports after they are delivered
  • Customer already has Microsoft SQL server and don't want to invest in any other ETL
  • Customer uses MAS 500 and doesn't want to switch to the other accounting package
share|improve this question
add comment

migrated from stackoverflow.com Jun 15 '11 at 22:58

This question came from our site for professional and enthusiast programmers.

26 Answers

up vote 61 down vote accepted

Developers who act like children (refusing to use a tool mandated by a customer!) are not good developers no matter what their coding skills. If an employee acts like a child he should be treated like a child. This is business not a democracy where everybody gets a vote. If I told him to use a tool and he didn't, I'd return the work to him until he did it correctly. If he did it twice, I'd write him up as a performance problem (that is what this is). If he did it three times, I'd fire him.

share|improve this answer
3  
On the flipside, people who say yes to absolutely every technical request made by a customer before consulting their devs typically aren't doing client, employee or themselves any favors. –  Erik Reppen Jun 6 '13 at 6:37
add comment

ask them what they would use instead, and then see if what they suggest is reasonable.

share|improve this answer
5  
if you don't know how to use them, why did you accept the work from the customer? –  Steven A. Lowe Sep 24 '08 at 20:25
show 1 more comment

You can employ something like pair programming and work with them directly to teach them and to show them why technology X is necessary in your business.

If you can, you could also ask for a recommendation for alternative technologies. I think that many times when people don't like something, they at least know something they like more. It would also help to ask for reasons as of why the refuse to work with something. Maybe you can resolve their cut and dried opinions.

Last but not least, you can always look for a replacement.

share|improve this answer
add comment

Your best bet is to actually sell them on the technology, and not to just tell them they have to. If you truely believe the certain technology is the best route, you should be able to have a conversation with them about why it is the best.

If they still refuse, ask them how they suggest to achieve the same goal. If they have nothing, there really is no other choice but to tell them to do it (if you are the boss) or to hit the road.

While I understand developers (I am one) have our opinions of the best way to accomplish a task, once we shoot down the bosses idea, and can't suggest a better route, what good are we.

share|improve this answer
add comment

Put it back on them... You want a feature that you think technology X will provide. They don't want to use technology X. So ask them how they would provide the feature without using it. Now it is a challenge. You have a solution. Now they must come up with one. If they can not provide the feature, well now you may have to consider the 'let them go' option. But if they can, your happy because the feature exists and they are happy because they 'proved their technical prowess'.

share|improve this answer
3  
So this manager either has to find different customers or different developers. If neither is an option, then finding a different job might be in order. –  dacracot Sep 24 '08 at 20:20
show 1 more comment

First off, find out what their objection is and listen to their reasoning. Ask what they would use as an alternative approach and see if it's feasible. Be open to using alternate technologies when possible, but negotiate flexibility from your developers as well.

If there's a hard and fast requirement or you believe the technology at hand to be the correct one to use even after discussion, but the developer remains intransigent, your choice is push or slide. Either you put your foot down or you work around them. But, you should try to avoid getting to that point.

share|improve this answer
add comment

If the technologies are being proscribed by customers, then I'd suggest you try the Google way: pay those that are willing to work with unpopular tools more than those that won't. Try the "there's a week's pay as a bonus for the first person to offer to use MAS 500" ought to change the developers' attitudes to such technologies.

share|improve this answer
2  
There's some scholarly evidence that this doesn't always work well (see: ted.com/talks/dan_pink_on_motivation.html) –  Steve Evers Jun 30 '10 at 0:15
show 1 more comment

First, loosen everyone up a bit, start with a little heads-up:

So, Sally, our new person up in Finance, isn't comfortable with our current payroll module, so she implemented a really cleaver DOS batch file she copied and pasted from experts-exchange. "Don't worry" she said, "I personally checked every GOTO."

(Management gave it two thumbs up for its cost saving effect (ie. you guys don't get paid as much now).

share|improve this answer
add comment

It is not workable situation.
I will not have a person in my team that refuse to do something i tell.
I'm always open to here another opinion and in a lot of cases i change my mind if ppl in my team convince me that i wrong and they suggestion is better, but if not i will decide what to do and my team will respect it.I don't see how it's can work in a different way. You need to earn you right to say a last word, by listening to your team when it's possible.

share|improve this answer
add comment

Perhaps I've missed something or there is some detail missing.

On the face of it effectively you have gathered some customers who want you to do something that your business cannot do. Has something gone wrong in your sales department, or have the developers who could do the work disappeared? I'm assuming that the developers aren't saying 'no' out of sheer bloody mindedness but rather their expertise lies elsewhere.

The only answer I could practically see is: a) Use contractors, or sub-contract the work b) Understand the capabilities of your development team when pitching for sales.

Apologies if i'm off the mark, but it sounds a bit fishy to me.

share|improve this answer
add comment

One way is to make sure that they are also customer facing. It's far harder to tell a customer they won't do something than their manager.

share|improve this answer
show 3 more comments

I d say you hired a developer and you are trying to get them to do professional services work, Why? Any decent developer would refuse to use such tools (particularly Crystal) because that is simply not their job ( at least thats my definition of software developer)

share|improve this answer
6  
I 100% agree. Unless he knew when he was hired that he would be expected to do these things. If my employer said that he needed some Chrystal Reports developed on a reg basis I would say "Well, you should prob hire a CR developer then" –  Sara Chipps Sep 24 '08 at 20:23
2  
Im sure you have the happiest and most performant employees. Go back to your cave :) –  Miau Jul 4 '11 at 9:58
4  
this thread is about putting developers to do professional services work I dont think any developer would see moving from writing code to drag drop reporting creation as a learning experience. As for language change I would say most developers would feel really excited about that, it depends on the person tho –  Miau Jul 5 '11 at 10:24
show 3 more comments

Rmind them who pays their salaries - the customer.

HLGEM is right though - children need to be treated as such. Take away their toys (ie perks - flexible working, all the internet except management-approved sites, etc)

share|improve this answer
1  
Great idea. Developers respond really well to this kind of treatment. No, really! –  Ace Nov 26 '08 at 7:49
2  
What a great boss you must be. What's that? You're NOT the boss? –  Robert Harvey Jun 22 '09 at 21:20
3  
heh. and I guess you two are those with the toys and the attitudes. Work is for working, not for your personal enjoyment. If crappy things need to be done, they have to be done. You go to work and get paid to do the things the business needs, not what you want to do (or we'd all be 'working' on desert islands with laptops balanced on the thighs of a dusky maiden :) ) –  gbjbaanb Jun 23 '09 at 11:42
1  
The arrogant nerd/child would better open his own company and hire other nerds/children like him. It is unlikely that the world of adults will respect their dominance otherwise. –  phaedrus Sep 2 '09 at 6:49
show 2 more comments

HLGEM is correct. You dont want us to say "let them go" but truth be told, they dont deserve to work you you with that attitude. Remind them who the boss is. Its one thing to want to suggest a new idea or product to work with and give the reasons why. But, if you are truly getting those sort of remarks then you really do need to consider showing them where the door is. Sorry. Business is business.

You added:

Good help is hard to find, so answer 'Let them go' doesn't work in this case. Besides, they are very good in what they do, just don't want to do what they don't want to do.

Why not? There are plenty of programmers who have been outsourced and laid-off who would more than happy to get their hands dirty in some Crystal Reports development - even if they hate it, like I hate it. :-)

So, if you dont let them go and find someone else who would be happy to do Crystal Reports (yuck) or SSIS (yuck) or MAS 500, then who will do that work?? You? Or a very unhappy programmer? Either of those two scenarios is far worse, in my opinion, than seeking new help. I'd rather interview a dozen people a day than know someone working for me is unhappy - for the reasons you gave.

We dont control what products the customer has for us to work with. I dont like doing CR or SSIS myself but I would never say no to a client and I would never take no from anyone on my team. If they want to do whatever they want to do then they can go an start their own gig. Trust me, its worth going out on your own gigs and all, however you dont REALLY get to do whatever it is you want to do - all of the time. They'll see.

Good help is hard to find, you've actually proven that by posting this. :-)

share|improve this answer
add comment

Sometimes having to find new help is a better solution than insubordination.

However, having said that, it is your job, as the manager, to convince/motivate the developer to do their job, even when it is difficult. So I would try to empathize with them about how they feel, explain to them you have been in that situation before your self, and you found a way to deal with it.

If they continue to fight you on getting the job done, you need to remove the developer from the job.

share|improve this answer
add comment

While a Draconian approach ("Do this OR ELSE") should be a last resort... it is a last resort.

If it's absolutely required (e.g. asking for alternate recommendations isn't viable, per your examples) then substitute these for your question, and I think you'll find the answer:

"What would you do if a developer on your team absolutely refused to show up to work?" "What would you do if a developer insisted on coding all GUI elements in French, even for English projects?" "What would you do if a developer insisted on developing on a Solaris box in C, even though the product is for Windows and build in .NET"

or better:

"What would a restaurant chef do if a cook refused to follow the recipe, or make the food that is on the menu?"

Because, at the end of the day, is there a difference? It's definitely true: business isn't a democracy, and they call it "going to work" (as opposed to "going to play") for a reason. Everyone likes to have input, but sometimes it's not practical.

You should definitely try - first, to reason/convince/cajole/bribe the person (degree depends upon their skill). However, a smarter manager than I once told me (regarding a really good employee of mine who had a severe attendance issue), someone who does great work when they're there, but doesn't show up, isn't doing great work. This is the same kind of situation.

share|improve this answer
2  
Or "What would you do if your cook refused to make food that wasn't on the menu?". Or "What would you do if your .net programmers refused to develop on a Solaris box in C?" Oh, wait...Sorry for fixing your analogy. The devs were presumably hired because of what they could do, and to force them to do stuff that they weren't hired to do is counter-productive, since they probably can't/won't do it well, and they're probably aware of that fact (and the fact that they'll catch hell if they don't do what they can't do). So they quite rightly say "I can't/won't put myself in that situation." –  cHao Jun 15 '11 at 16:35
2  
+1 RE: your last paragraph. I had to term a guy even though he was outstanding simply because he was entirely unpredictable. I had no idea when he was going to be in, do tasks, or generally take care of the daily things he needed to. What he produced was great; but I'd rather have someone putting in consistent solid work over someone whose work, although stellar, was highly inconsistent. –  Chris Lively Jul 1 '11 at 20:06
add comment

It's very simple: the needs of the business are that you use a certain technology or tool. That need exists for a reason (your customer wants to tweak reports after they're delivered, your customer has certain licensing restrictions, your customer has certain security restrictions, etc). Developers exist to serve the needs of the business (AKA, make money for the business). If they don't want to serve the needs of the business then there is no longer a need for their services.

share|improve this answer
1  
@HLGEM: Most jobs i've had didn't try to interpret "other duties as assigned" to mean "everything we damn well please". (And the one that did, i actively recommend that candidates not accept a salaried job offer there.) There's a limit to that clause, esp regarding the reasonability of deviations and expectations of quality. Surpass the limit, and you're actually losing money -- to training costs, to crappy code that's going to need fixing, to ill will over fraudulent job descriptions, etc. Otherwise it'd make sense to hire PHP noobs at $30k/yr and have them write C++ code all day. –  cHao May 31 '13 at 0:34
show 3 more comments

I agree with @tonylo. If you are asking your developers to learn out of band stuff that is not the focus of your company, then you are going to have difficulty, and this is not necessarily a case of bad developers.

If your company has no focus technology wise, use contractors for dirty work, or work where you can't sustain FTEs.

share|improve this answer
add comment

With all things like this you need to go through a process.

Firstly, talk to the developer; make them explain why they think the tool shouldn't be used. They need to explain why it's bad for the business, not just that they don't like it.

Unless they changed your mind, you then explain to them why using the tool is best for the business, especially pointing out when there are non-technical reasons for using it. If the customer has insisted on the tool, that's a good enough reason. You are here to serve the customer, not to amuse yourselves. Again unless they managed to persuade you otherwise, tell them that that's they way it's going to be. Let them calm down for a few days after this.

If at this point they are really refusing to use this tool, that 's when you have to start getting heavy. Point out that if they refuse to do what they are told there will be consequences. If this is a big company offer them a transfer to a different part of it. Maybe allow them to work on a part of the project that minimizes their involvement with the tool. But point out that their attitude is not making them look good, and will be remembered when performance review comes round.

Finally if they are still flat out refusing to do as they are told, they need to be formally disciplined, and if that doesn't work, fired. It doesn't matter how good they are. If they can't play as part of the team you don't want them.

share|improve this answer
add comment

So, if the management has promised a customer that a particular solution will be developed using tool X, but the developers refuse to use tool X it sounds like management screwed up. Managers who promise customers things that cant be delivered don't last long.

Yeah, go ahead and force tools on your developers and fire them if they don't have the right slave mentality. Your best developers will leave first.

Development works best when management and customers concentrate on specifications, and let the craftsmen choose the tools. Tool dictation is a symptom.

share|improve this answer
add comment

a lot of good points here. i like what HLGEM has said, only i would be more diplomatic about it (as is to be expected from a project manager).

a few focal points: 1) coders get paid for their behavior, not their technology preferences, 2) business isnt a democracy, 3) the purpose of a business is to maintain its existing clients and garner new ones.

that said, i would approach it using the feedback model from Manager Tools, with adjusting feedback. so you would say something like this to a programmer:

"John, can i give you some feedback?* When you say you dont want to use crystal reports, heres what happens; i become concerned about our ability to satisfy our clients needs, i see the potential of our clients going elsewhere to have their work done, i worry about the other guys seeing this and also deciding they dont want to use technologies our customers need. all these things connect to the company's profitability - without money from our customers the company cant keep us employed. what can you do about this?"

personally, i would also approach it with a bit of empathy. i would say "yeah, i know MAS 500 isnt a particular mind-blowing system. but sometimes we do have to do work which isnt that glamourous or exciting. i know i hate writing test plans, they sap the very energy of my soul, but i do them because theyre needed".

oh - and a point about terminating people. it is an absolute last resort, the impact it will have on the other team members can be quite significant (e.g. people start worrying about their job security and may preemptively leave for another job).

RE: contractors to do non-core work -> dont forget, there is a whole level of new communication/management overhead if you start sub-contracting work. not to mention a lot less profit to be made for a company.

share|improve this answer
1  
If your people don't already know how to do what you're asking them to do, you should already be concerned about your ability to satisfy the client's needs. –  cHao Jun 5 '13 at 14:03
add comment
  1. Mediation. Provide them with a third-party perspective so they may realize they are being irrational (posting some problems on SO may help) but use this tactic sparingly or you you won't gain respect for yourself.

  2. Manage attitudes. Judging by the harsh developer rebuttals in your question, I am inclined to think that the developer has quite an attitude problem. You may want to pick up a book on behavioural psychology or take a course on it if you want to become better at managing people and personas.

  3. Empathy. Build a relationship with them and get them to empathize with you so they may understand why you need Crystal Reports or whatever. Go out for lunches and do some bonding (include other people if you feel uncomfortable 1 on 1). The closer the bond, the easier your management will become. You could also put them in a position to manage smart interns so they may be able to relate to managerial issues.

  4. Processes. Setting processes and best practices in place can also help alleviate some of problems. Decisions like using Crystal Reports should be discussed in design meetings. Including the customer in the early design meetings may help set a customer-centric mindset for the project early on. Repeating mantras like customer-focus development can also help but YMMV.

At the end of the day if you want to tame the shrew, so to speak, you have to frame the problem in a clinical fashion and deal with it in a pragmatic manner.

Also look within your own practices. Are you micro-managing? Too soft? Building a bad vibe by cursing developers in your head? Not empathizing with them? Cut out to be a manager at all?

Always act tactfully.

share|improve this answer
add comment

Is your company growing and what customers do you want to gain?

In a small company developers will do a lot of different things. In a bigger company developers will specialize. Some will only do crystal reports and others will do only hard core programming.

Some people will leave if they can't do what they want to do. Some customers will leave if you can't deliver. The state of the job market and the number of (potential) customers are important factors.

share|improve this answer
add comment

You either have to convince them that the tools are superior, or accept that they won't use the tools.

Sure you can "force" them to use it if you're the one paying, but that's really stupid since the developer will be doing it against his will and probably create a really crappy solution for you since he have no motivation for anything else then proving his point which probably is that the technology you're forcing him to use sucks...

When that's said, you should have several warning lights/beep/flash/alarms go of when a developer says he refuses to use a technology!

Unless you're a better developer then the one refusing, then the technology probably do suck, or at least the developer doesn't have the required knowledge to use it which will make the solution he creates in it actually truly suck!

Most developers have a lot of honor regarding their work, and the only reasons why I would think that a developer "refuses" to use a specific technology is because he (often rightfully) believes that by using that technology his code and app will end up bleeding, which will make you as a customer bleed much more.

Funny that you mention Crystal Reports as an example in fact ... ;)

share|improve this answer
add comment

Seems that most everyone has bad feelings about Crystal Reports.. I did too until I attended a training class. Once I learned how to use all the features, I felt much better about it and was really impressed with the functionality. I was able to create and deploy reports in days that would have taken weeks to build by hand. Plus the Crystal Enterprise platform automates the deployment and delivery of reports to the right people. Who wants to write the same thing by hand? The value is in solving the business problem, and fast.

I've noticed that consultants that can create high-quality reports are extremely valuable. One guy was so good at it he rose up to create the profit/loss and balance sheet reports for a large corporation- and was paid $150/hour in his pocket. That is an inspiration to any developer who would prefer to spend weeks reinventing the wheel with manual coding.

share|improve this answer
show 3 more comments

Good help is hard to find, so answer 'Let them go' doesn't work in this case. Besides, they are very good in what they do, just don't want to do what they don't want to do.

If he's not helping, I wouldn't call him good help.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.