We enumerate a litany of the most important woes that may befall a hapless programmer when transitioning from an algorithm to software. These woes include software that produces incorrect results, software whose performance differs significantly from that suggested by algorithm analysis, general unpredictability of performance, and problems related to undecidability and intractability.