davideisinger.com

My personal website
Log | Files | Refs | README

lukeplant-me-uk-ms1b6l.txt (5389B)


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