124 lines
5.3 KiB
Plaintext
124 lines
5.3 KiB
Plaintext
• Site
|
||
□ [1]Home
|
||
□ [2]About me
|
||
• Blog
|
||
□ [3]Posts
|
||
□ [4]Categories
|
||
• Post
|
||
□ [5]Comments
|
||
□ [6]Related
|
||
|
||
No one actually wants simplicity
|
||
|
||
by [7]Luke Plant
|
||
Posted in:
|
||
|
||
• [8]Rants
|
||
• [9]Software development
|
||
• [10]Web development
|
||
|
||
— August 22, 2023 18:49
|
||
|
||
The reason that modern web development is [11]swamped with complexity is that
|
||
no one really wants things to be simple. We just think we do, while our choices
|
||
prove otherwise.
|
||
|
||
A lot of developers want simplicity in the same way that a lot of clients claim
|
||
they want a fast website. You respond “OK, so we can remove some of these 17
|
||
Javascript trackers and other bloat that’s making your website horribly slow?”
|
||
– no, apparently those are all critical business functionality.
|
||
|
||
In other words, they prioritise everything over speed. And then they wonder why
|
||
using their website is like rowing a boat through a lake of molasses on a cold
|
||
day using nothing but a small plastic spoon.
|
||
|
||
The same is often true of complexity. The real test is the question “what are
|
||
you willing to sacrifice to achieve simplicity?” If the answer is “nothing”,
|
||
then you don’t actually love simplicity at all, it’s your lowest priority.
|
||
|
||
When I say “sacrifice”, I don’t mean that choosing simplicity will mean you are
|
||
worse off overall – simplicity brings massive benefits. But it does mean that
|
||
there will be some things that tempt you to believe you are missing out.
|
||
|
||
For every developer, it might be something different. For one, the tedium of
|
||
having to spend half an hour a month ensuring that two different things are
|
||
kept in sync easily justifies the adoption of a bulky framework that solves
|
||
that particular problem. For another, the ability to control how a checkbox
|
||
animates when you check it is of course a valid reason to add another 50
|
||
packages and 3 layers of frameworks to their product. For another, adding an
|
||
abstraction with thousands of lines of codes, dozens of classes and page after
|
||
page of documentation in order to avoid manually writing a [12]tiny factory
|
||
function for a test is a great trade-off.
|
||
|
||
Of course we all claim to hate complexity, but it’s actually just complexity
|
||
added by other people that we hate — our own bugbears are always exempted, and
|
||
for things we understand we quickly become unable to even see there is a
|
||
potential problem for other people. Certainly there are frameworks and
|
||
dependencies that justify their existence and adoption, but working out which
|
||
ones they are is hard.
|
||
|
||
I think a good test of whether you truly love simplicity is whether you are
|
||
able to remove things you have added, especially code you’ve written, even when
|
||
it is still providing value, because you realise it is not providing enough
|
||
value.
|
||
|
||
Another test is what you are tempted to do when a problem arises with some of
|
||
the complexity you’ve added. Is your first instinct to add even more stuff to
|
||
fix it, or is it to remove and live with the loss?
|
||
|
||
The only path I can see through all this is to cultivate an almost obsessive
|
||
suspicion of [13]FOMO. I think that’s probably key to learning to [14]say no.
|
||
|
||
Links
|
||
|
||
• [15]Discussion of this post on Lobsters
|
||
|
||
You may also like: [16]§
|
||
|
||
• [17]Super-fast Sphinx docs, and SNOB driven development
|
||
• [18]Test smarter, not harder
|
||
• [19]Announcement: Django Views - The Right Way
|
||
• [20]Wedding hacks - seating planner using simulated annealing
|
||
• [21]Wedding hacks - John Lewis gift list hyperlink
|
||
• [22]A prayer to the programming gods
|
||
• [23]Why learning Haskell/Python makes you a worse programmer
|
||
|
||
Comments [24]§
|
||
|
||
Comments should load when you scroll to here...
|
||
|
||
Copyright Luke Plant
|
||
|
||
Built using [25]Nikola
|
||
Powered by [26]DigitalOcean
|
||
|
||
|
||
References:
|
||
|
||
[1] https://lukeplant.me.uk/
|
||
[2] https://lukeplant.me.uk/personal/
|
||
[3] https://lukeplant.me.uk/blog/
|
||
[4] https://lukeplant.me.uk/blog/categories/
|
||
[5] https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#comments
|
||
[6] https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#related
|
||
[7] https://lukeplant.me.uk/
|
||
[8] https://lukeplant.me.uk/blog/categories/rants/
|
||
[9] https://lukeplant.me.uk/blog/categories/software-development/
|
||
[10] https://lukeplant.me.uk/blog/categories/web-development/
|
||
[11] https://www.youtube.com/watch?v=BtJAsvJOlhM
|
||
[12] https://lukeplant.me.uk/blog/posts/test-factory-functions-in-django/
|
||
[13] https://en.wikipedia.org/wiki/Fear_of_missing_out
|
||
[14] https://grugbrain.dev/#grug-on-saying-no
|
||
[15] https://lobste.rs/s/ao2x0v/no_one_actually_wants_simplicity
|
||
[16] https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#related
|
||
[17] https://lukeplant.me.uk/blog/posts/super-fast-sphinx-docs/
|
||
[18] https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/
|
||
[19] https://lukeplant.me.uk/blog/posts/announcement-django-views-the-right-way/
|
||
[20] https://lukeplant.me.uk/blog/posts/wedding-hacks---seating-planner-using-simulated-annealing/
|
||
[21] https://lukeplant.me.uk/blog/posts/wedding-hacks---john-lewis-gift-list-hyperlink/
|
||
[22] https://lukeplant.me.uk/blog/posts/a-prayer-to-the-programming-gods/
|
||
[23] https://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/
|
||
[24] https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#comments
|
||
[25] https://getnikola.com/
|
||
[26] https://m.do.co/c/cef485980f20
|