On thorny software projects, formal specifications can serve as beacons that illuminate the terrain ahead.| increment.com