I think that "Solid, unshifting requirements" would be analogous to perfect intellegence. Nice to have, but it doens't work that way in the real world. However, one should always try to get as close to it as possible lest you end up fighting the wrong war, or the war wrong.
in reply to We are the logisticians of information
in thread Programming is combat
I really like the metaphor of IS/IT as logistics. It is very difficult to program well if one doesn't have good basic supporting infrastructure:
* A developement box
Is an OS that is patched and working, provided by IT?
* A UAT environment that is a good copy of production
* A seperate production box
If you dont' have this seperation, then it becomes very difficult to use good practices like load testing, practice installs, practice migration, User testing and acceptance, etc.
* Backups and version control software.
A must have, and a must use!
* Testing (as mentioned in parent threads)
* Shared software libs
Does programmer A use common code from programmer B? How does A know about B' code?
* Installation tools
Its fine to code the next release but have your designed, coded and tested the installation scripts?
* Good software tools
Does management pay for the software tools requested by the workers? Is there a modern bug-tracking DB used by the org? Other electronic collabaration tools? Shared docs?
* Good information and UI design
( I hate my companies products because we don't have this)
* Good documenation for your products
* Good human resource management
Who fills in when I'm gone? Does everyone have a desk, a chair and a phone? Will I loose the best programmer over a cheap, easy to fix problem? ( not enough parking, no flex time to go to the DMV, no cokes in the fridge? )
* Good project management
Has the project schedule been vetted with the programmers or driven by unrealistic external needs? Is there effective feedback from the work team back into the requirements/schedule?
* Good Strategic management
Lots of canceled projects/efforts and changes of directions? Low morale?
If you fail to provide these things to your 'troops' (aka programmers) then they will be less effective. Provide these things and you have a force multiplier.
Nothing is too wonderful to be true
-- Michael Faraday