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