Most efforts I see in large organization, internal system software development is on-going improvements, tweaks, overhauls to existing systems, etc.. Systems are CRM, large customer support, work flow, billing, collections, etc. Years and years of changes. Given changes of people and processes and technology, how do you know what a system is doing when you start a given project? emails? experts? People on Agile teams here are saying things like, "go find a developer who worked on it last and have him look at the code"... Or go find the last director of the line of business using the software.... There are no functional specs. Functioning software is all that matters, etc.