Comment Re:"Just let me build a bridge!" (Score 3, Interesting) 372
those two people SHOULDN'T be the same person.
In my experience, that is the heart of what is wrong with a lot of software projects: it's considered taboo to do both architecting and developing.
The theory is obvious enough, but in practice an architect that is not implementing overlooks some very significant issues. The implementer has his hands tied because 'the architect said so' and the implementer trudges on also blindly unaware of anything beyond his little island.
The best teams I've been in have had everyone participate in architecting and development, with healthy amounts of communication.
The thing about construction projects is that they are simply so massive you need a horde of construction workers. In software development, we often like to *think* we are making something equally massive when in practice if we do need that many people working on it to get to the goal then it 99% of the time means we are doing something wrong in the first place. If we put hubris aside and realized that the scale isn't so grand as to require a trillion little dependencies and components, we produce good code. This doesn't mean the opposite situation of a gigantic monolithic blob is good, but there is a reasonable middle ground.