Starting Simple
We’re living in a complex world. Take a look at the thing I’m using to type this text (called computer). Whenever I press a button on the keyboard:
- electric circuit is being closed
- it’s interpreted as a signal
- converted many times to different forms
- passed from one abstraction layer to another
- …to finally reach text editor I’m currently using (VIM ofc)
- …and then it’ll be written as some 1s and 0s in many places
- …and rendered on the screen.
All of that happens in far less than a millisecond and it’s greatly simplified with many details omitted.
Everybody is using smartphone daily, but no one can explain how it works. Also, most of us (humans) don’t know what happens after we push gas in our cars. I mean - we know that car goes straight and it drinks fuel but very often this is the moment where our understanding ends. Don’t even let me start on what happens when you click enter in your browser (especially if it interacts with some LLM on the way), press button in your coffee machine or… flush the toilet.
Fortunately, we don’t need to understand how things work under the hood - in most cases that’s a good thing. For typical user, the more complexity is hidden, the better. Things should be easy to use and do the job.
However, not understanding how things work kicks us in the ass in few cases:
- when evaluating which thing will be a better choice
- when something breaks
- when you want to create something
I want to focus on the last one - creating something. The expectations are pretty high for anything you create. New application? Will it be available 99.999% of time? Will it be in 18 languages? Will it work well on mobile and computer screen? Will AI agents be able to interact with it? Will it be compliant with all these non-sense EU GDPR laws and others? What about accessibility? Have you thought about all the people with disabilities when creating the app? What? You don’t have the dark mode? You may lose data sometimes? The list goes on…
It may be super overwhelming when you think about building something. All of above are important decisions to make… someday. If you want to reach the final destination you need to build simple thing first. It needs to work well. It needs to be tested and you need to make sure you’re building the thing you want. You need to be radical and cut everything that is not essential. Once you start accepting too much into your creation, you lost. If you don’t say NO to a lot of ideas - probably you’re not starting simple.
When you show the first version of the thing to people, embarassement should be the feeling accompanying you rather than pride.
Few reminders:
- Computers started as useless huge calculators (and they’re still a calculators but now with benefits ;)).
- Cars evolved from super simple chaises
- Whole process of making coffee automatically was fully manual earlier
- This blog started as: 1 html file + 1 markdown file
It’s fine when the thing you’re building is far from PERFECT. If you put work into it regularly - time becomes your friend and embarassingly simple thing you started with may become something incredible one day. Just keep showing up!