Great article and interesting discussion.
ckempste, second vote for your article. Not entirely sure what you were leaning towards on the first post, but I'd be interested to hear more.
I've had management and tech jobs over the last 12 years and I've seen successful, implemented, and failed projects. While I mostly agree with things in the article, there are some things I've noticed that I wanted to comment on.
First, most projects I've seen don't fail in that they are not implemented. Usually they are late, or implemented and thrown out much sooner than expected. Maybe I've been lucky, but relatively few projects are actually funded with some $$ and never deployed. Perhaps that's the "I've invested in this, I can't throw it out" mentality, but that's been my experience.
So it seems most projects are only some % successful (10%, 90%, ?? not sure what the number is), but are often not well received. I think lots of this goes to many things, but mainly communication.
Developing software is hard. Not only for the programmers and architect/analyst, but also for the client. It's such an abstract thing that we often don't know what we want. Even I don't know. Until I see something, I can't completely visual what would work best (or better). I think this was and still is a huge problem in software. I've started to come around that we should only aim for, build, and budget for 60% of what we want and leave a blank check (time and money) for the 40% because we will modify things after that. I'm also a big "small modules and increments" kind of programmer.
So should I run the company and make the decisions? Not all of them for sure. I like being technical and worrying about my area. I don't want to worry about sales. That should be what the upper management ponders.
However the article and posts do point out some great problems here. We are human and we drive for our own adgenda. And that is where things break down. Executives worry about their reputation and their scorecard (salary) more than the long term health of the company. Does the stock price matter if the company is making money? A little since you do have an obligation to the shareholders. But also to the employees and company. And the short sighted, Q to Q mentaility leads to decisions that "throw money out the window".
Middle managers, technical and other, have different agendas. Furthering your career - Why take on a project what has a poor reward/risk ratio. Comfortable? Why rock the boat?, Bored? why make work for yourself?
I know I'm rambling, but the human factor is important. It's what gets in the way of efficient operation. Which is what us techies want, right?
Well, that gets in the way as well. I've worked with guys that engineered to death, missing the point that we have to finish. Worked with guys who'd rather play doom/quake/etc. and didn't test code. Seen code written that worked ok, but wasn't well engineered.
<gross generalization>The dot coms were mainly filled with techies that didn't understand business.</gross generalization> And they failed, but they also built some great technology.
That could have been used elsewhere and made money.
OK, I'm rambling so I'll drop off with my ideal view of corporate workings.
The company should exist to grow itself, care for it's employees, and better society. The profit motive should be there, but has to be tempered by looking at the place of the company in society. You do have an obligation to employees that includes the need to keep their interests (security, training, etc.) in balance with those of the shareholders. A code of ethics balances the executive goals with that of the company, employees, and shareholders, so that the Q-Q view of the world is not more important than the long term. Executives are not compensated out of line with other workers (and they are in the US). Emplyoees work for the good of themselves tempered with that of the company. Keep the total objective in line. You get paid, have security, etc. and you help the company grow itself for the long term.
Lastly, everyone respects each other, both as individuals and corporations.
Crazy, but throwing money out the window happens everywhere, not just in software. And it's not anyone's fault. It's everyone's fault.