Lorem Ipsum therefore I am

An example of drifting away in dev

Ignore the rants, jump to conclusion

This is a tiny reminder to myself.

When making any kind of program, it seems that, to reduce the stresses associated with the development of a complex system, some developers including myself tend to begin very early with code.

How can we not be stressed, we face very complex systems and broad requirements many of them invisible but required the client needs a "simple" app that just works, You need to thing of storage, AUTH, accessibility, UI that by experience you know will be changed many time over the course of development once the client start to think in "softwares", storage, UX, when client can only imagine that one table that shows some records, you know that you need to think about empty states, empty search result, loading state, sort, search, filter, wide rows on narrow devices, that one weirdly sized tablet the client picked up from a trip to Vietnam for 1/3 of the price and the width is just between two of your breakpoints, columns that client keep realizing they need over the course of 6 months, pagination ... .

So open the console, <package manager> create <stack> client_project, now at least you opened something, you took that first step, yay, good for you. Now keep on fighting, keep thrusting forward to make that first wound critical in your fight with your limited resources including your short focus or interest span. Go on, go forward, add that i18n feature, add that auth method that you know well, the persistence is straightforward, you did that many times, go forth. Until you hit something that stalls you, your pickaxe hits a hard rock.

I remember my immense frustration in more than one project! "But I'm using the most popular language on the planet and the most popular framework on top of that", "What do you mean that there are no components for that?" "What do you mean that there are no tutorials on that?" "Millions of devs use this piece of software; how can the docs be so obscure?" "They release new breaking changes every 3 months, the docs update every 4 months, and now AI only knows code that won't work a version higher or lower than a version with serious bugs."

Maybe every one of those 10 million developers got so tired after figuring things out that they just continued with their lives without telling anyone about it, like an ever silent abuse victim too broken to be able to keep in touch with reality, let alone fight against the body of crime in the society. I remember well, searching, tens of posts and tutorials showing how to use a component to create some text, but absolutely nothing on how to use that component to edit texts, and very subtle bugs that were introduced when using that particular component with other caveats in a very complex system. They would have known if they actually used it. Just unbelievable.

Maybe I will write another post or a book about my frustrations, but let's wrap things up.

In my latest project I did the same thing, started with code, code code code, until there was no localized version of a datepicker component for the UI framework that I'm using. OK, ditch the requirement for UI similarity with my framework; nope, there is no reliable and lightweight component at all! They are buggy, ditched, or limited in functionality, but you see, I'm a warrior. If the world attacks me, tries to push me around, prevents me from using the things that I like, I fight back. I ditch sleep, deadlines, health, family, I become a tiger. By the way, that is called tunnel vision and is a prelude to mental apocalypse. After some days of searching and weighing the amount of work needed to write my own, which was a lot, I got frustrated and abandoned the development for a while.

After the passing of the hurricane of pride and vengeance, it occurred to me, why do you even need that component??

  1. 90% of the users are going to use other locales
  2. 90% of the new records will be on the same day as they happen in the real world, so you don't need to pick a date if the current date is the default, so users of that particular locale will face the inconvenience of using another calendar system only 10% of the time
  3. Even if there are no readymade date pickers, we still can show very good UI and localized calendar reports so other areas are covered.

So I was not fighting for the user needs; I was fighting for my own ego and not accepting the truth, telling myself that somebody had to have made something like this in the past!

TL;DR

SO key takeaways:

1- WHEN THERE IS BLOCKAGE, take a step backward, calm yourself, don't push push push, set a time limit for your frustration

2- WRITE THAT MANIFEST BEFORE WRITING CODE. Create a readme.md, at least create these sections and fill them even if you know them in your head:

And those questions should be repeated twice, once for MVP and another list for the end product. If you get stuck on MVP it will kill your momentum and it will be hell going forward.

Thanks for reading; this is just for releasing my frustration and to facilitate more procrastination and has no educational or reading value.

:)