Software development used to be an evolutionary process, where a person would take a program and rewrite parts of it for one new feature, and then another person would rewrite parts to add another feature; this could continue over a period of twenty years.