Creeping elegance

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, and the software developer is left with the hopeless case 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 dive into a cesspit of ancient, complex, poorly documented and, hackish code, and often this will lead to easter eggs and intentional exploit vulnerabilities and staff turnover.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.