Typically in a scientific endeavor if just one component of the proof turns out to be false or unprovable then the entire endeavor is considered a failure. This is not the same in software development. The successful parts are kept and the failures are deleted.But this brings me to the point. The author of Agile Web Development with Rails Fourth Edition (pragprog) quotes the Agile Manifesto and then draws an inference with Rails.“Individuals and interactions over processes and tools” –Agile Manifestoand then …There are just small groups of developers, their favorite editors, and chunks of Ruby code. –Agile Web Developmentand then all was lost…“Working software over comprehensive documentation” –Agile ManifestoYou won’t find 500-page specifications at the heart of a Rails project. –Agile Web DevelopmentThe “problem” here is that is assumes that everyone is an expert; everyone is performing to the same level all the time; that there is no attrition on the tech or business side; and that people never get bored in their jobs.It’s nice to say that everyone can look at a SHA-512 function and determine what and how it works from the function prototype and the code… as easily as they would understand a hello world. That is simply not the case. The existence of the SHA-512 is based on a rigorous mathematical proof that is akin to the 500 pages of requirements.I recently tweeted that I could not imagine the construction crew of the Empire State Building or the Brooklyn Bridge completing their projects without (a) a requirements doc (b) a blueprint or two.The Agile group can work on small and less complicated projects but once you get to a certain scale in complexity or Mythical Man Month scale then Agile is the real myth.