BASIC PRINCIPLES
Preamble
The radicalization and conceptualization of the doctrine of unshakable standards and rules have not been consolidated, for natural reasons, in the field of modern software engineering but at the same time, it has brought a fair amount of style elements, paradigms, and universalized constructs into its dense methodological space. Nevertheless, the main principles that deserve the most obvious and unconditional obedience still remain in the section of small-caliber recommendations, the implementation of which, if implied, falls on the shoulders of the artist and remains on his conscience.
These simple, impeccable principles were developed long before the soft keys of a QWERTY keyboard were touched with due reverence. They can be heard in design bureaus and found among recommendations for writing quality fiction. The imperative adherence to these elementary rules affects the implementation of any project in an impressive and inevitable way, beneficially influencing the final state of the product.
Principles
The legend says that once upon a time intelligent beings lived on Earth. They inhabited a labyrinth of deep caverns under the vastness of cyclopean mountain ranges. There they practiced engineering and were the most skilled craftsmen the world had ever known. Eyeless and voiceless, these bold, hardened virtuosos deduced universal and, at the same time, surprisingly laconic, uncomplicated principles that underlay their rich empirical practice. From time immemorial, they have reached us in the form of the names of their most honorable innovators: Quarm, Avur, Doritun, Onify.
- Quality must be rationally maximized, Quarm. Quality is not an end in itself but only a property that must be achieved. Like any property, quality can be measured and determined: we don’t always need the best quality, sometimes we just need good enough.
- Avoid unreasonable repetitions, Avur. The developed unit must be deterministic and perform an unambiguous utilitarian function. Parts of a whole that can be reduced to a single instance by merging them should be subject to such optimization. In this case, duplication is replaced by reuse.
- Don’t overcomplicate it unnecessarily, Doritun. Perfection is achieved not when there is nothing more to add but when there is nothing left to take away. The developed entity should be as simple (perfect) as possible, as long as it does not violate the first and second principles.
- Omit needless functionality, Onify. Adding or retaining functionality that might hypothetically come in handy someday but has no value in the near future is, at the very least, reckless. The rule is, “Sweep away all that is superfluous.” Unclaimed functionality, as a rule, does not find use in the future, becomes obsolete, and turns into a burden for those who have to maintain it. Requirements and granularity change faster than you think.
Epilogue
It should be remembered that the unbridled use of these principles leads to inevitable ordeals and, ultimately, turns a potentially good idea into a charred and formless memorial of futile attempts and hopeless aspirations.
Notes
- You may also have known these principles under other names. Here are some of them: DRY, YAGNI, KISS
- The writing style guide states:
Vigorous writing is concise. A sentence should contain no unnecessary words, a paragraph no unnecessary sentences, for the same reason that a drawing should have no unnecessary lines and a machine no unnecessary parts. This requires not that the writer make all his sentences short, or that he avoid all detail and treat his subjects only in outline, but that every word tells.
The Elements of Style William Strunk Jr. and E. B. White