The Essence of Software Development
This is what I had been trying to articulate, but of course, Steve McConnell says it much better:
At its essence, software development consists of working out all the details of a highly intricate, interlocking set of concepts. The essential difficulties arise from:
- the necessity of interfacing with the complex, disorderly real world;
- accurately and completely identifying the dependencies and exception cases; and
- designing solutions that can’t be just approximately correct but that must be exactly correct.
Even if we could invent a programming language that used the same terminology as the real-world problem we’re trying to solve, programming would still be difficult because of the challenge in determining precisely how the real world works. As software addresses ever-larger real-world problems, the interactions among the real-world entities become increasingly intricate, and that in turn increases the essential difficulty of the software solutions.
- Code Complete, Second Edition by Steve McConnell, p. 78.
Comments: