I try to be a good observer because I like learning from others, itās both fun and satisfying.
Ā
However, itās not always easy, my ego and blind spots usually prevent me from seeing things objectively, and Iāll lose a lot of good opportunities to learn as a result.
Ā
Sometimes, without consciousness, I could be overly critique to others work simply because I donāt think it raises to my standard. While I might personally hold an equal or higher standard for my own work so that I donāt feel bad morally, it rarely gets the best result it could get.
Ā
Not until recently, did I find a better way of dealing with similar situations. Itās by changing perspective.
Ā
To elaborate it a bit more, Iāll pick a recent experience that I encountered at work.
Ā
A couple weeks ago, there was a hack week event and one of my teammate came up with a prototype to an existing problem weāre facing at work, thatās we donāt have an universal typing system that allows developer to share code between front end and backend codebase written in different programming languages.
Ā
Itās similar to open source tool trpc but is adapted to our in-house infrastructure. I was very excited to see improvements like this, so I directly jumped into reading the code to see whatās going on. However, after examining the solution, I found it works fine but not as good as I would expect.
Ā
As a result, right below a few positive comments (mixed with political righteousness and sincere compliments) from different reviewers, I opted to sing a counter melody and left a few thoughts for improvements.
Ā
Not surprisingly, my suggestions, although being received, yield no result.
Ā
Similar experiences have happened before as well. On the one hand, Iām not criticizing irrationally since I appreciate that kind of efforts with sincere hope that things can get better. On the other hand, my honest feedback isnāt constructive enough to drive real changes to happen.
Ā
Taking into account of the delicacy of human motivation, the way I handle nuances in communication becomes especially important. But itās clear that what Iām proposing isnāt working well.
Ā
Looking in retrospect, the more I examine my notion of ānot good enoughā, the more it resembles an excuse of inaction of myself. By inaction, I mean the resistance to commit real time and effort to workout a better solution or communicate effectively that delivers result.
Ā
Iām only assuming thereās a better version on premise of theory without an actual āskin in the gameā. If basing conclusions on theory, how could I tell if Iām not premature optimizing or not? Or maybe Iām unconsciously falling into the common trap of nitpicking others work.
Ā
The reflection eventually leads to a paradigm shift within myself, thatās if Iām not able to come up with a better solution to any existing problems within a bounded timeframe, Iād happily embrace the existing solution as current best solution, which will serve as a stepping stone for future improvements.
Ā
And the changing in perspective works great. Instead of looking at the āIs the glass half empty or half full?ā as glass half empty, Iām grateful that itās half full.
Ā
It helps me to avoid the tendency to optimize for a local maxima (specific to the problem that Iām facing) while shifting focus to a higher level, taking the entire teamās merit into account.
Ā
Itās rare for people in corporate settings to have the drive to improve things and to see things as what can be instead of what it is. Itās both encouraging and crucial to have the foundational work being laid out first so that more improvements and contributions can arise.
Ā
Itās the practice of good enough software. Therefore, any reason not to embrace it?
Ā