It\'s not a secret to anyone that managers can and often will impose the program
ID: 639122 • Letter: I
Question
It's not a secret to anyone that managers can and often will impose the programming language that will be used for a project.
Being a programmer myself, I have never been able to understand this.
But now I think I do: I've just had a revelation when Joel Spolsky said on the podcast that they should use QuickBooks because "every accountant in the world knows it". This struck me as being very similar to "chose Java because every programmer in the world knows it".
Now that I've seen the same issue from another perspective,I don't know much about accounting, but I do know something about programming, I'm wondering how a programmer can help make sure the right programming language is chosen for a project?
Explanation / Answer
The mistake many programmers make is they will argue the point (or simply agree or disagree with it) based solely on technical merit. With management--and the business as a whole--you have to argue the business case and the merits for the business first and technical merits second.
This goes beyond programming language choice and pervades virtually every technical decision.
Let me give you an example: PCs. Joel argues (correctly) that developers should have top notch machines because developer time is expensive. In this he's completely right. But how do you argue this? Simple:
Example: I do a build of the code roughly 20 times a day. Each time it takes 3 minutes. If I had a fast PC I could build it in 1.5 minutes. So for an extra $1,000 every two years I can get an extra half hour a day, which for a programmer earning $100k (with on-costs of another 50% at least), that equates to roughly $10,000 per annum of time.
But arguing at the other end is HR deciding one size fits all when it comes to policy and PCs so a call centre worker earning $25k and a programmer earning four times that should for some reason have the same PC.
Technology platform and languages will have lots of factors going into the decision mix:
Strategic relationship with particular vendors. If your company is a Microsoft Gold Partner (or whatever it's called now) then good luck getting Java or Python in;
The IT department arguing a particular config because the money for the PCs comes out of their budget;
IT deciding everyone should run Windows 2000 because they don't have people running Linux;
What other systems the company already has (eg if they use Java for everything else it makes sense to use it for this even though on its own it might not be the best choice);
Risk aversion to different platforms or languages simply from a lack of experience;
More interested in arguing risk with upper management than making developers happy;
Some managers make the decisions they do simply because their hands are tied;
Budgetary reasons although this can work in your favour too as it keeps expensive boondoggles out of your house like PVCS, anything produced by Rational, etc;
Legal department aversion to open source licenses;
Not involving the technical staff in planning and project estimation;
Familiarity on the manager's part with a particular platform (technical people are guilty of this too but in both cases it's not necessarily a bad thing -- with many tools that can do the job better the devil you know).
Experience of the technical staff. If they're all from a C# background, why would they use Java, Python or Ruby?
Many other reasons
Whatever the case you need to understand the reason (and I guarantee you there'll be several reasons) and argue merits in those terms. Some programmers are quite naive in this department and seem to think such decisions are made out of ignorance or even vindictivieness when nearly always many factors are in play.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.