Thinking of software as similar to how an oyster makes a pearl or bug fixing as tending to diseased parts of the code is what metaphor?
The growing metaphor
If you were using "growing" as a metaphor for how software changes, what would be an example of something from nature that is similar to how software grows (a progressive accretion of small parts)?
How an oyster makes a pearl
Thinking of software as starting as a single-celled organism and incrementally changing into a large, complex beast is what metaphor?
The evolution metaphor
Using experiences of previous software releases to adapt the code to ensure its long term survival is thinking consistent with what metaphor?
The evolution metaphor
What is the longest phase of software development?
Maintenance
What phase does most of the overall effort in software development go to?
Maintenance
B.W. Boehm observed what percentage of total software development time is spent in maintenance?
40-80 percent
Brooks found what percentage of code changes fixing faults also introduced new faults?
40 percent
What unfortunately happens to code whether you modify it or not?
Code rot
What is the simple answer given by Code Craft as to why we make such a big mess of code?
Complexity
In software development, what commonly pile atop one another and act as nails in the original design's coffin?
Quick-and-dirty fixes
Large classes, large functions, cryptic names, surprising side effects, lack of structure, duplication, high coupling, blurry APIs, implementation details leaking, work-arounds, functions with long parameter lists, code that you can't even consider trying to improve, out of date documentation, warnings, comments saying "Don't touch this" are all forms of code rot that together might be considered?
Syntactic gunk
What form of what Code Craft calls "syntactic gunk" could taking its elimination too far lead to what APoSD calls "classitis"?
Large classes
What two forms of higher-level code rot are harder to see than typical syntactic gunk (that you may only notice once you are deeply immersed in the system)?
Modifications that fudge the original code architecture or subtly circumvent program conventions
To dispel the belief that doing software development properly always takes more time, what must you factor in?
Time saved later
What does Code Craft say are the cornerstones of modern software engineering?
Modularity and information hiding
Code Craft says that simplicity or performance is almost always more desirable?
Simplicity
In software design according to Code Craft, you should not be satisfied with any changes that do what?
Leave the system in a worse state
Previous card
First card
Random order
Next card