See also WorldDomination, IndustrialSociology
What are the technical and social forces in the commercial software world that lead to an Imbalance of Power?
Heres my stab at some forces:
Have I missed any forces? -- some guy
That's most helpful, some guy. What I've been mulling over a lot is how much all the above forces are then compounded by the absolutely lousy quality of most commercial software - when you really are called in to deal with the code. Any approach that begins to deal with the real issues is a godsend (if you'll forgive the phrase) - even restricted to TeamsOfUpToTwelve.
Which properties in particular did you have in mind when you say "lousy"? Performance? Design? Documentation? Requirements? or do you think it varies too much for classification? None of them. I was trying not to think about any particular. No, all of them. It hurts to think about things one has seen, tried to refactor/produce value with in small steps under great pressure and then be blamed for. Varies too much for classification. Those are my initial thoughts. That's what it does to you. Will still refactor, will still refactor. What was that about once and only once?
Some guy did a great job in interpreting this phrase after a long piece of mine many months ago, with the addition of NetworkExternalities this weekend strengthening the particular (and useful) direction that he's taken.
My original point I now think would probably have been better expressed as the ImbalanceOfEconomicIncentive?. That is: given the background of the ImbalanceOfPower is there ever going to be sufficient economic incentive to do software right? I ask this not to be defeatist but because I sense that there is a major opportunity presented right now to reform the economics and ethics of our business.
If you're dealing with standards such as file formats and protocols, you can choose how tolerant you are of the other party, and how strict you are with respect to the standard. You could try to repair broken input, and output only pristine stuff. On the other hand, you might want to embrace and extend... If you get a big enough market share, maybe you can use this to turn an official standard into a de-facto one. On the other hand, if you handle input in sub-format Y.X, you could say you support the Y standard. Just think how bad it'll look on your competitors when you reject input in sub-format Y.Z (which they use.) Perhaps I'm being cynical, or perhaps "compatibility engineering" really does get taken into consideration.
see IsThereEverGoingToBeSufficientEconomicIncentiveToDoSoftwareRight
I wonder what company would be blamed for the mistake. The one which produces Y.Z or the one which rejects Y.Z? Usually big companies advertise themselves as Y compatible, but only when you read the small letters they say they won't be 100% compatible any time soon.
It is interesting to realize why such a company would have success. In the case of a CIO who decides to align all the software of the company to the big company offerings, he does it because of the prestige that such action will bring on him. If the decision proves wrong, he will say he was deceived by the big company which has deceived a lot of people, so he is not the one to blame. If he instead decided in favor of a small company, if there is a perceived problem with that software, he would take responsibility. In that case he would delegate the decision to a technical manager who would have to make that decision and take the blame in case of a perceived failure.
The big company's ability to capture new audience must be faster than its ability to deceive customers. Probably that is why big companies prohibit customers to publish their findings about the licensed software.
I wonder if the combination of ProfessionalPerfectionism and FearUncertaintyAndDoubt results in an ImbalanceOfPower.
Have I missed any forces?