
Almost all activities in contemporary software projects try to predict the future - analyzing, architecting, programming, testing, budgeting, and scheduling. Since nobody can yet reliably predict the future, those activities cannot possibly work as well as desired. Unknowns:...