Requirements Analysis in Real Life
and the
Difference Between Mathematics and Programming:
Why For Sure, There Will Never Be a Silver Bullet

Daniel M. Berry

Cheriton School of Computer Science
University of Waterloo
Waterloo, ON, Canada


After I draw lessons from the first real-life application I wrote in 1965, we are drawn to Fred Brooks's conclusion that the hardest part of software development is determining its requirements. We look at various reasons that determining requirements is so difficult. The fundamental difference between mathematical modeling and programming, each of which builds mathematical models of the real world, lies at the heart of this difficulty. This difference and our human ambitions lead us to the conclusion that there can be no long lasting software engineering silver bullet.