Question posted anonymously for obvious reasons. I am working in a company with a dev group of 5-6 developers, and I am in a situation which I have a hard time dealing with.

Every technical choice (language, framework, database, database scheme, configuration scheme, etc...) is decided by the CEO, often without much rationale. It is very hard to modify those choices, and his main argument consists in "I don't like this", even though we propose several alternative with detailed pros/cons. He will also decide to rewrite from scratch our core product without giving a reason why, and he never participates to dev meetings because he considers it makes things slower... I am already looking at alternative job opportunities, but I was wondering if there anything we (the developers) could do to improve the situation.

Two examples which shocked me:

he will ask us to implement something akin to configuration management, but he reject any existing framework because they are not written in the language he likes (even though the implementation language is irrelevant). He also expects us to be able to write those systems in a couple of days, "because it is very simple".

he keeps rewriting from scratch on his own our core product because the current codebase is too bad (codebase whose design was his). We are at our third rewrite in one year, each rewrite worse than the previous one.

Things I have tried so far is doing elaborate benchmarks on our product (he keeps complaining that our software is too slow, and justifies rewrites to make it faster), implement solutions with existing products as working proof instead of just making pros/cons charts, etc... But still 90 % of those efforts go to the trashbox (never with any kind of rationale behind he does not like it, again), and often get reprimanded because I don't do exactly as he wants (not realizing that what he wants is impossible).

Does your CEO live in Santa Clara, CA by any chance? If so, does his first name begin with V? I had a similar situation and I stuck it out for three years. That was far too long in retrospect.
–
leed25dDec 29 '10 at 6:54

8

Oh man, forget it, just get out of there. Solid programmers can get other job offers in a heartbeat, why would you linger in such an environment? If you live in (or would relocate to) NYC, take a look at my profile and get in touch about roles at my company.
–
nganjuDec 29 '10 at 9:37

10 Answers
10

Don't bother. As you mentioned, you're already looking for new work. Life is too short to put up with a miserable job. In the meantime just say "sure, whatever", and take solace in the likelihood that irresponsible decisions will ultimately catch up with the CEO.

Making software is an inherently risky endeavor which frequently results in failure. Even if you convince your boss to do it some other way, the project could ultimately fail through no fault of yours, but because you deviated from the bosses grand vision your head will be on the chopping block for it. It's just not worth the hassle.

Also, start asking questions about these types of issues when you are interviewing for your next job. Find out what tech the company uses and how new stuff gets brought in.
–
cjstehnoDec 29 '10 at 20:43

In the first place, you have no long-term future with the company, because it's got no long-term future. The CEO is obviously a major problem, and if he's gotten away with this sort of thing so far he'll almost certainly continue to do so until the company fails. Nor, if he hasn't listened to reason yet, is he likely to.

In the second place, you really don't want to work at a place like that. It's destructive to your self-respect, your ability to make plans, and likely your work habits.

Be very cautious about saying anything on your way off. You don't want to leave an enemy behind with the demonstrated ability to become a CEO. Also, be careful what you say about the CEO in interviews. Make statements of simple fact, and let the interviewers draw the value judgments. You don't want to be labeled as somebody who just can't get along with management.

There is no safe answer and you have two choices really, flee or fight.

A CEO who has not proven he is technically savvy but thinks he knows enough to make technical decisions is a fool. Some are smart enough to surround themselves with people who are technically savvy and then listen to their opinions, but if yours hasn't done that then, well, it's a matter of time before the ship starts leaking water and goes down.

Fighting that sort of behavior is a losing battle. The CEO has the big club - your wages, your co-workers wages, and the upper management's wages. Any disagreements with a CEO will lose in the face of that because most people will not stand up when they could lose a paycheck.

I have worked with excellent technical managers many times over, and loved it. If they didn't know something the first time it came up in a discussion they'd know it well the next time and woe to those who tried snowing them. They're out there, and you'll find them, but probably not where you are because they'll leave and go somewhere else if they're smart.

So, put your head down, grit your teeth a bit, and look for a good way out. There's nothing wrong with being a rat fleeing a sinking ship when it's not your ship!

This question is the equivalent of "My husband threatens me with violence every time I speak, blows all our money on crack, on-line poker, and paid sexual favors from neighborhood eighth-graders, and keeps getting into car accidents because he likes to go deer hunting with my Subaru. I'm considering maybe possibly thinking about investigating a divorce, but in the meantime, what can I do to fix our relationship?"

Nobody wants to think of themselves as a quitter; nobody wants to feel like they bailed on a situation without making an effort to fix it. But you are on the opposite end of that bell curve.

Sometimes, the only way to win is to concede that the situation has become a steaming pile of weapons-grade FAIL and walk away.

You have my condolences that your job has long since reached that stage.

GET OUT

Do not pass Go. Do not wait for your stock options to vest. Get the hell out of there before your soul is sucked out through your nose, you start to have health problems, and you end up in front of the S.E.C. trying to explain why you, as a responsible professional, "allowed" this sort of irrational behavior.

It doesnt sound like there's a whole lot you can do. He sounds like a micro-manager. A CEO really needs to learn how to delegate responsibility, and that includes technical decisions. Companies like that tend not to grow any larger than the owner/CEO can personally manage because of this.

Show results and practical real-world examples, it has never worked for me to tell all the juicy details to the technically unenthusiastic/uneducated, it is just pointless trying to convince that way.

Also, if you think a particular decision of his is bad tell him, not how it will make you suffer, but how it will cost him more and put him in disadvantage against the competition.

I've always thought it is up to the developer/programmer to educate others in the industry in any way possible, if not you, who then?.

I was recalling something Watts Humphrey said in a book, something like: "it is the manager's job to ask you to develop something at no cost in no time, it is your job to negotiate". It is highly likely that this will not be the last time you deal with someone like that, so practice.

As I mentioned in my question, I have showed practical implementations of solutions to his problem, but he wants us to do it in a very precise way which cannot possibly work. As far as cost goes, I have not found a way to convince him that using existing, proven, standard open source solutions is better than rolling our own. What kind of argument should I use to convince him to use product X if he does not want to use X because it is written in a programming language he does not like ?
–
anonymousDec 29 '10 at 5:33

Your company does not have a CTO (or similar like VP Engineering or Chief Architect)? If so, then your CTO is not doing his/her job by managing the CEO. If not, what you have is a CEO who is actually your CTO. Basically, he's doing what he's doing because there is no strong CTO in the company.

Instead of quitting flat out, why not step up? Confront him, tell him that technology is not the job of the CEO and that you want him out of the technology. Tell him the company needs a strong CTO and that he is a technology idiot. Tell him you want to be the CTO and make all the technical decisions. You can either whine about it or step up and do something about it. So, quit whining and step up.

As someone else suggested you can either fight or flee. You are already walking down the 'flee' path. Step up your efforts. :)

If I were you, once I had my exit strategy in place, I'd go and talk with the CEO. Tell him why you are leaving. Let him know truthfully what you think and why you think it. Put it in writing if you want. Put it in your resignation letter. Ask for an exit interview. Say what you need to say so that you wan walk away from the job without feeling like you didn't do enough.

This CEO is not open to constructive feedback and would probably retaliate in some way. Just make up some excuse to get another job.
–
JeffODec 29 '10 at 16:16

1

I am very, very wary of this course of action. (Aside from "flee", which I cannot agree with strongly enough.) As described by the poster, every time the facts pick a fight with this CEO's ego, the ego comes out on top. You seem to be under the impression that this will help the CEO realize his behavior is destructive; I find that highly optimistic. I think it much more likely that the CEO will take it as a personal attack. Which leaves the poster vulnerable should the CEO be friendly with other local employer-types who don't realize what a useless jackass he is.
–
BlairHippoDec 29 '10 at 16:19

I wasn't being optimistic that the CEO will all of a sudden wake up and see the error of his ways. I'm very much thinking of the OP and how he feels. If I was in his shoes I'd want to get it off my chest before I leave and then walk away with a 'clean slate' so to speak. Having been in a situation similar to this, it felt nice saying what I felt on my last day with a new job in hand. :)
–
TyannaDec 29 '10 at 17:31

1

I'm glad it worked out for you, truly. But in my experience, going for some sense of "closure" rarely works out well; the other person, unruly sonuvabitch they are, always screws up their lines. And my core point about the CEO likely taking it as a personal attack still stands. If the poster needs to pull a similar move to feel good about leaving, then they should go for it; but recognize it for the personal gratification it is.
–
BlairHippoDec 29 '10 at 18:03