Files
davideisinger.com/static/archive/lukeplant-me-uk-ms1b6l.txt
2024-01-17 12:05:58 -05:00

124 lines
5.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
• 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 thats 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 dont actually love simplicity at all, its your lowest priority.
When I say “sacrifice”, I dont 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 its 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 youve 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 youve 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 thats 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