Fog Creek Software
Discussion Board




SW Mgmt Part 2 - Design by Dictatorship?

I realize that the question I posed on software project management was essentially "stupid" in that it was front-loaded with many assumptions.  I realize everyone who replied was too polite to point this out, so I am saving you the trouble. ;-)

My client's ~20 person company is run by the owner who is also the head programmer and SW designer. He has *always* developed projects by: dictating class and procedural flow; writing up ponderous documents describing the stuff; and delegating the specs to the poor unwashed bastards who work for him.

Some hallmarks:

He never but ever reveals his overall scheme for the program being designed.

He changes his mind continually about implementation details as well as the top level flow of control.

He never actually debugs stuff that he delegates. He flogs his people into doing so. He tends to develop grandiose "foundations" that he says people "should" use. But he seemingly never tries to write program 1 from scratch using his own stuff. He never eats his own dog food.

He overengineers EVERYTHING. Why have a boolean return value, when you could return a ragged array of variant data types? Why NOT make "hello world" a death march? It will be more fun! :-(

He blows off any and all discussion of his methods. He owns the building, so he is the smartest guy in the building, by definition (speaking ironically here.) He just won't discuss any aspect of his grand scheme.

Oh, and he isn't even qualified by training or experience to be a SW architect. He's an accountant.

And after taking a look at some low end CASE tools, I am as impressed by the beauty and utility of these tools (particularly Enterprise Architect) as I am by the utter futility of trying to use UML in an environment that is rotten to the core. I am saying that tools aren't the problem here.

Here is what I wanted to ask, then:

In what context, if ever, is such a methodology - massive specs, heavyhanded overbearing control - workable? The only places I have seen *anything* approaching this done were DOD contractors, and a stint at IBM where an "architect" designed all data structures and the system.

Is such a methodology ever scalable to a team smaller than, say, 20?

Is it ever possible to reason with someone who is so far down the path of feeding their own ego that they see all disputes as essentially the other person't fault or inadequacy?

I think I will have to "pass" on working with him after my current work is up. It's just too stressful to work on hacked up overcomplicated shit.

Any other thoughts? Even "you're nuts to turn down billable work in this environment".

Bored Bystander
Sunday, November 02, 2003

Speaking from experience, I have never been able to properly architect something new without doing a "spike solution" or prototype to figure out what works and adjust my design accordingly.  If he isn't eating his own dog food and he's simultaneously breaking new ground on work that he hasn't done a thousand times before, then you are indeed most likely working on a pile of dog s***.

Richard Kuo
Sunday, November 02, 2003

Your only real choice is to kill the man.  It's cool.  Everyone will understand.

H. Lally Singh
Sunday, November 02, 2003

why don't people argue?  If someone tells me to write something in a horrible fashion, and I know its a bad idea, i'll argue with them.  Most of the time though, my boss will want something done one way, i'll want something done another way, we'll discuss it, and unless there is a really good reason why my way is better (once and a while, not too often) we'll go with his way. 

Vince
Sunday, November 02, 2003

Sounds very similar to my job (details are different but concepts remain the same).

I suggest you get out if you can, no joy can come from it. It will gradually sap your soul until you no longer have the will to get out.

Sum Dum Gai
Sunday, November 02, 2003

All the more reason to kill him :-)  Self defense.  See, it's ok.

H. Lally Singh
Sunday, November 02, 2003

On a more serious note, perhaps its best to go after  these issues one at a time. 

Start off with some basic software economics to show him how much the additional generality he's designing in costs.  The tough part is getting it to him without his defenses coming up.  Herb Cohen's books have some good methods on that.

Getting him to really delegate the work is gonna be tough.  Perhaps convince him he's too important for it?  That his time's too valuable, and that he should be worried about 'more strategic issues.' 

As for methodology, your customer's is only good when he actually knows what he's doing.  And even then, with a team of 4-5.  Beyond that and it's a real waste of resources.  For teams of 20, take a "pick & choose" approach to the parts of the methodologies in the current literature.  Most of them have good ideas & bad ones, and some that would be real nice if they applied.  From everything I've learned so far about SPM, a good manager will design the process him/herself, even if it's limited to tweaking the RUP.

H. Lally Singh
Sunday, November 02, 2003

FWIW - this is contracting, not full time employment. This is my only current client. I have worked with this place the better part of a decade and their techniques have always sucked in the ways I am stating. If anything is a constant, it's the absolute hamfisted arrogance of the owner.

A few quickies:

Yes, it's a pile of dogsh*t. The only way this company has *ever* gotten anything to work is massive amounts of uncompensated overtime donated by the coder employees. Any application written in this guy's stuff always looks like spaghetti.

Yes, the workstyle of this client has been sapping my will. I just realized that today! I am scared to look for new work. The effect this work has been having on me has been insidious. In the past, I was always relieved to get away from this place for awhile.  This just reinforces the need to get out. It's work but it's destroying my will to be independent.

"Why don't people argue?" One thing this person is noted for is lambasting his employees for not *thinking* about the exact thing he wants them to think about in a given nanosecond. He's a fascist about the basic reasoning process. The problem is, he always imposes a huge continual overtime burden on his FTEs. If any of these people visibly defied him, he would add to the pressure that they were not succeeding because they were "thinking wrongly". No, I'm not kidding. Lastly, he only hires pussies who don't have backbones or minds of their own. (As Samir said in Office Space - "yes, I am also not a pussy." )

Kill him because everyone will understand...? Er, not worth the manslaughter rap. ;-)

I think the angle on convincing my client that he needs to do more strategic stuff than fuss over APIs may be the most constructive.

However, he will probably twist it around as an attack on his methods and a vote of non confidence. Which it is. Sigh.

I don't think this is an exercise in turning lemon into lemonade. It's more like an exercise in turning urine into lemonade....

Bored Bystander
Sunday, November 02, 2003

I think you should tell him. "There's point in keeping a guard dog if you don't listen to him bark." One could argue he's paying for your expertise and you owe it to him whether or not he wants it. I get maximum respect when I speak my mind instead of hiding out of fear.

> Is it ever possible to reason with someone who is so far down the path of feeding their own ego that they see all disputes as essentially the other person't fault or inadequacy?

A Young Friend once said to me: "Ill discuss anything with anyone, but if it turns into an argument I say 'you're right' and walk away." If you've already decided you can walk away, and will if things don't look up, then you're free to speak your mind.

As a tactic, instead of talking about his methods being a problem, talk about the problems (unpaid overtime, no staff development, unmaintainable spaghetti, or whatever) for which you'd like to suggest alternate methods to try as a solution.

> He never but ever reveals his overall scheme for the program being designed.

Software benefits from having architecture. He should read the literature if he wants to do this professionally. <g>

> He changes his mind continually about implementation details as well as the top level flow of control.

You can do that (agile, iterative, refactoring), but if you're going to do it then it's better to do it skillfully.

> He never actually debugs stuff that he delegates... He never eats his own dog food.

Is there anything he does well?

> Why NOT make "hello world" a death march? It will be more fun! :-(

http://www.ndeepak.info/stuff/humour/helloworld.php

> He blows off any and all discussion of his methods.

Please, they're "our" methods. Still, I've worked for a non-technical guy ... things didn't totally improve until he hired a development manager to sit between himself and development.

anon
Sunday, November 02, 2003

>> "He's an accountant"

I believe there's a thread on this board something about "You can't be an accountant and run a software business" or something like that.  At any rate, I think your best bet BB is to get out.

What keeps people in bad situations?  (Not necessarily bad as in life threatening, bad as in uncomfortable, high pressure)  If it's paying your bills then I would find another client or two and leave this gentleman to himself.

This sounds like a vertical market software company.  The accountant is in charge and he hires the programmers to do the dirty work.  Except in this case he is obsessed with programming and is obviously not qualified to do the work.

I have been in a similar situation.  The best thing to do is to move on.  Personally I was very straight forward with the gentleman in charge of the company.  I told him outright that his methods of developing software were not in conformance with known industry best practices and as a result the software being produced was not as high a quality as it could be going out the door.  I informed him that I could help him achieve this if he would let me.  I told him that I would need full control of the project.  He didn't agree and I wished him luck.  Six months later the company did not exist.

November Rain
Sunday, November 02, 2003

Wow, best rant I ever read...

nat ersoz
Sunday, November 02, 2003

In approaching him towards a 'strategic' role, you could just feed his ego with his 'potential' and mention where he could go.  Don't tell him to go, just grease his ego such that he follows the path you've convinced him is really worthy of his efforts.  Hell the ego-rubbing alone will probably get your rates raised.  If it goes real well, you'd be the one who 'understands' him :-)

It all depends on the kind of person he is. But  everyone's got delusions of grandeur :-)

Herb Cohen's book is good at this stuff (_You Can Negotiate Anything_).  Also _The_48_Laws_Of_Power_ and _The_Art_Of_Seduction_, both by Robert Greene.

H. Lally Singh
Sunday, November 02, 2003

"My client's ~20 person company ..."

Hehehehehe...

All big companies are unhappy in the same way; all small companies are unhappy in their own unique ways.

Asking a question about methodology in this context is fruitless, because your dilemma is not one of software practices.  It's a matter of how you deal with the "cult of personality" atmosphere of small business in America.

Consider the alternative:

I've dealt with the "hands off," pseudo-visionary types who run small businesses, and they aren't much better than this guy.  Instead of micromanaging development processes, they just dictate business requirements (which noone underneath may contest) and expect code to appear by the right methodology.  Of course code does come about, through the magic of unpaid overtime.

But in your case, and in the one I just described, the basic problem is the same:  the insipid ego of self-made "entrepreneurs" who just haven't had their asses kicked enough.

My general feeling is that the best way to deal with these people is to accept their ways as more or less set, bill your time, and then leave at an opportune moment.  If they were receptive of external suggestions and good advice, they'd have big companies underneath them, not small ones.

it_ranter
Monday, November 03, 2003

You think you got it bad!  Our software project (which has loads of potential) is run by a BUILDER.  Not only does he know nothing about software development, he also knows nothing about project management.  You can only imagine the ego issues he has that is passed on through our planning process (or lack thereof).

I agree along the same lines as H. Lally Singh (ego stroking), convince him your ideas are his ideas, always works for me.

It also sounds like your esteem is a little battered.  Maybe you could boost your confidence by going to some job interviews, or some relevant training so you feel ready to leave when you need to.

Good Luck :-)

TES
Monday, November 03, 2003

Your boss is right, you should do as you are told and just shut up.

He has earned a lot of money right?
And you have no money right?

That's why you have to do your mouth wide open and
swallow all his huge documents, because you are a loser.
That's why you call yourself bored, because you gave
up and now you hate him because he is rich and
you are just a bystander.

Sorry bored, I just had to be tough on you to get you in
winning mood again.

I think you should not waste your energy in trying to convince the guy. Because it sucks up so much positive energy. You will not feel better when you have some minor successes after hours of debating. When you do that for a long time, you get very tired and sad.
It is the worst you can do. Alternatives: visit your grandma, read a book, learn something new, try to get an other job.

kind regards

John Fisher
Monday, November 03, 2003

It is good news that companies like this still exist.

It means that the market is still running far from efficiency,
and there is still plenty of opportunity to make money.

I look forward to the day when I can start up my own business, and my only hope is that the existing companies are being run by people like this (my experience gives me confidence.)

Ged Byrne
Monday, November 03, 2003

Ged - if anything, I find myself disappointed that I could probably succeed in business with no more vision than "I can do better than these losers!"  But, you're right, we probably could.

Mikayla
Monday, November 03, 2003

God, I think I used to work for the idiot BB is describing... does his first name begin with an 'A', by any chance?

:)

Seriously, you need to get out, and fast.  He will never change.  Cut your losses and run...

Grumpy Old-Timer
Monday, November 03, 2003

Thanks for the commiseration, guys. These are all good alternate points of view. John Fisher, I take your comments at face value. ;-)

Here's one other side issue. I verbally committed to this guy to do and finish a separate never-before-done piece of his system of which he and his people are profoundly clueless. (IE, a copy of Dr. Dobb's would burst into flames if anyone from this place picked it up and started to read it...)

He had told me up to now that he had "years" of work available. Of course, I already knew what his work was like. I chose to do this particular piece because it was well outside his willingness or ability to micromanage.

I only found out last week that his section (the heavily specd part) was nowhere near done so the section I have been working on is held up until his section gets done.

Hence, what I anticipated to be clear sailing with "my own" work has been diverted into his quagmire.

So, I am placed in the position of reneging on an implied agreement to help him. This is not so much a binding promise or contract as it is a moral commitment. Aside from me, he's got nobody with a clue.

I think my logical out is to point out to him that I've never worked "with" him on anything because he doesn't permit "with", only under. Hence all prior implied agreements are out the window.

One last thing. I can really use the income. However, I have always approached his work as an "I'll hold my nose" proposition. And I see no long term strategic value to working with him. So, I am actually holding all the cards, since I am ready to not deal with him if I don't hear what I need to hear.

It will be interesting. I will check back.

Bored Bystander
Monday, November 03, 2003

Ya know, when I saw the title, I thought the topic would be promoting the idea of having a dictator in charge of a project.

I actually think that it's a good idea, as the old joke goes, a camel is a horse designed by committee.  I've seen a lot of camels in my time.

Bored, or course, has encountered the worse case, where the 'resident dictator' is a complete idiot.  Not much you can do except leave, or grin and bear it.

AJS
Monday, November 03, 2003

I once worked for a wacky rich accountant also. It's
his company and he won't change. Move on if
it is not acceptable.

son of parnas
Monday, November 03, 2003

BB,

If he's that big of an asshole, what do his client's think of him?  Why don't you hire away his employees and take away his client base?

Jason
Monday, November 03, 2003

I don't know where you are, but it's usually not hard to find a piece of empty land (a forest, desert, etc), where nobody really passes by.  Chloroform and a shovel go a long way.

Other than that, you can always find someone else to do the work you're morally obliged to do.  Find some other work and leave ASAP.  Just make sure the poor sap who you're convincing to take over the work doesn't lurk in these forums... :-)

H. Lally Singh
Monday, November 03, 2003

An interesting thing is that, from reading the first post, I could tell that you would gradually come to this realization about the company, with some more time spent there.

Not to be glib or anything, I empathize with your situation.  Perhaps I would suggest that people who like to bully others like that don't respect anyone who takes their bullying.  You will only earn his respect by standing up to him -- whether it's worth earning is a different question, however.

Roose
Tuesday, November 04, 2003

golly, that promise doesn't seem hard to break.

you promised him you'd do something.
he promised you he'd do his part.
his part is not done.
he needs what you promised but frankly, won't get it 'til he delivers his part.

now if you wanted to work long term there, you might want to go with appeasment tactics.

mb
Tuesday, November 04, 2003

Guys/gals (?) -

Thanks for the trenchant, frank comments. I think the concensus here is "life's too short". I will report back on my results after a meeting.

Roose's comment about respect is spot-on. This guy respects me FAR more than his W2 people. His permanent people lick his boots. I regularly tell him to go jump in the lake and I take none of his sh*t.

However, an earlier comment made about this respect or victory being worthwhile also weighs. I may work myself into a frenzy just to help this guy make his next million.

At some point, the hassle factor of working with someone profoundly aggravatingly ignorant takes its toll.

Bored Bystander
Tuesday, November 04, 2003

Why be nice to him? You seem to have a strange hangup about it.

Remember the post about the Southern Baptist plumber who was nice to everybody who went to his church and screwed anybody else (having taken the precaution to put all the town lawyers on retainer and done the judge's plumbing for free)?

Act the same way. And if he does go to the same church, change - that's a right the founding fathers fought for ;)

Stephen Jones
Tuesday, November 04, 2003

*  Recent Topics

*  Fog Creek Home