Creeping elegance

From Wikipedia, the free encyclopedia

In software development, creeping elegance, related to creeping featurism and second-system effect, is the tendency of programmers to disproportionately emphasize elegance in software at the expense of other requirements such as functionality, shipping schedule, and usability.

Creeping elegance is also forced by customers and sales personnel in the last stages of software development. Often one comes up with "just another feature" before the delivery date,[1]: 81  and the software developer is left with the choice of prioritizing between delivery on time according to schedule or to fully satisfy customers and/or the sales department.

Complexity and readability are the main reasons why programmers tend to favor elegance over functionality all else being equal, simply to mitigate the more marginal cognitive burden of the task, which is very high compared to many other fields even in computer science.

It is definitely an area in which management and marketing conflict a lot with programmers, but most programmers will behave very petulantly when asked to deal with very old, poorly documented, or otherwise poor code, and often this will lead to easter eggs, intentional exploit vulnerabilities, and staff turnover.

References[edit]

  1. ^ Kessler, Eric H. (2000). "Tightening the belt: methods for reducing development costs associated with new product innovation". Journal of Engineering and Technology Management. 17 (1): 59–92. doi:10.1016/S0923-4748(99)00020-X. ISSN 0923-4748. Retrieved February 15, 2023.

External links[edit]