So much of what is wrong with software is that it does too much.
Instead of being simple and requiring processes to develop, and/or organically facilitating existing processes (see what I wrote in 2004), it attempts to force processes (most likely with good intentions – “best practices” – or maybe just in ways so that the complexities of their feature set can control things).
The simple solution is to build less – in many cases much less. I’m dealing with Dreamweaver right now. It wants to control the structure and updating process for my web site. Yuk.
I think this is a universal principle of organization – i.e. the inherit processes and structures of projects/groups/etc. always tend toward de- naturalization as they move from small to medium to big – that the calicification and inability to change course are not simply because the ship is larger, but because there are things inherit in our human interactions that create these environmental conditions as our groups grow larger.
I think there is a way to grow something so that it avoids these inherit pitfalls. Not sure I know what that way is, I just think that there is one. Radical deligation, severe restrictions (but not elimination of) heirarchy. A combination of top-down and bottom-up (here I’m applying some things we’ve been talking about in IA). Etc.
I’d be interested in pursuing this academically. Anyone who happens to know a moderately appropriate program, let me know.