5 ms·
I notice that there seems to be this debate (as exemplified by @georgieporgie below) between manager straw men who are only concerned with creating value and en
by singular 15y ago
I notice that there seems to be this debate (as exemplified by @georgieporgie below) between manager straw men who are only concerned with creating value and engineer straw men who are vain + concerned with writing elegant aesthetic code disconnected from reality.
There is a false dichotomy at play here I think - it's possible to write good code and also provide business value, one does not imply the abandonment of the other.
Trying to write clean, elegant code does not mean you then get to throw business concerns out of the window, nor do business concerns mean you get to ignore code quality.
To me, quality code is as clean + maintainable as possible while maintaining simplicity. Some of the more 'elegant' approaches (the 1-line incorrect haskell quicksort springs to mind) seem to somewhat sacrifice simplicity for the power of a clever trick. I'd prefer a more verbose + arguably simpler solution to that.
The big mistake people make here is to act as if the code doesn't have an impact on the business value, of course it does. It affects the quality of the product in 1000 different often less-than-obvious ways. To begin with, you have maintainability and extensibility which literally have extremely direct affects on your ability to sustain and grow your product, but you also have endless other factors which are a direct consequence of code quality.
For example, if your codebase starts getting really crufty and closely-coupled, it starts to become very hard to write code that doesn't fit into the design as-is, so if the customer/business need you to do X, X might turn out to be insanely hard, completely unintuitively to the business people. Try explaining to them how that's related to the code.
Also, try choosing naive O(n^2) or even O(n!) algorithms when you are scaling some software up to heavy levels of usage. The abstract non-business minded concerns start mattering quite a bit to the business there.