Large-scale software development requires coordination within and between very large engineering teams which may be located in different buildings, on different company campuses, and in different time zones. It requires delivering to a feature specification set months, perhaps even years, before actual development occurs. It nearly always needs ......