Developing software is not like constructing a building. Software is more organic and should be treated as a garden. This presentation takes several gardening concepts and applies them to software development.
of living things ▪ Characterized by the systematic arrangement of parts; organized; systematic ▪ Developing in a manner analogous to the natural growth and evolution characteristic of living organisms; arising as a natural outgrowth - Dictionary.com
1018 unique paths. In 1979 he described a much simpler program. It was just a loop and a few if statements. In most languages, you could write it in 20 lines of code. This program has 100 trillion paths. – Testing Computer Software, Cem Kaner
• Large class • Cyclomatic complexity • Excessive use of literals Method-level smells • Too many parameters • Too many optional parameters or nulls • Long method
– College of William and Mary 1. Most of the time, smells are introduced when code is originally written 2. Maintenance and evolution smells are characterized by peculiar metrics trends 3. Refactoring itself can introduce new smells 4. Developers with high workloads and release pressure are more likely to introduce smells http://www.cs.wm.edu/~denys/pubs/ICSE'15-BadSmells-CRC.pdf