Building your own ivory tower
— domain driven frontend, Architecting UI — 1 min read
I was so engulfed in my beautiful design that I drifted away and continued to complicate things. I was already trying to solve a gradual load of the different modules. How to lazy load packages and and only load the necessary increments when loading the second or third modules. I was thinking of smart caching mechanisms and how we could build the design system in pure html-css so our other clients could use it as well. Essentially I was caught up in my head and planning our roadmap 2-3 years down the line.
The problem was that I had so much fun planning I forgot I don't work in a vacuum. I did run it by my team, but when you use just the buzz words anything sounds awesome. "Hey, what do you think of a domain driven component library that enables you to easily compose new pages?". c'mon, who'd say no to that? So I felt good and planned ahead.
Finally, one day I actually tried to explain the matter to a few team members. We opened a few beers and cleaned up the white board. I tried to explain how this should work. At first, when we still were at the buzz words phase it seemed great. Then we slowly started to peel away the layers and things started to get mixed up. I slowly started to realize that I was planning something that is completely unrealistic. Parts that didn't work with my plan I simply said that "by the time we get there that screen won't exist" or such stuff. But more importantly, at the basic level - how to implement this, it simply didn't add up.
This reminded me of when I just started programming and I wrote a whole app without testing it once. I had so much fun writing code, I never doubted that what I write isn't correct. Then I spent a few weeks going over it from scratch to try and debug it. Fortunately, this time I had better techniques in hand, but the concept is the same:
- Keep your feet on the ground, not everything you write/think is golden.
- challenge your thoughts with other people.
- and keep your iterations small.