You want your software development to be more like farming. Farmers are methodical in knowing the lay of the land, studying its current chemical makeup, planting, watering, weeding, and harvesting their crops. Software that is reliable, extensible, and maintainable is developed just as methodically.

— Mickey W. Mantle and Ron Lichty, Managing the Unmanageable