Premature optimization, value and waste

Ah, premature optimization, every developer sooner or later hits that. You optimize code, iron it out so there are no extra cycles, no extra memory or what not and not terribly long after you have to take that carefully tailored code apart, just because a new requirement came in. Worse yet, the realization that the optimization was useless in the grand scheme of the app, yes the app works more efficiently but it does not affect anything at all. Some might be proud of the craftsmanship, others might be disappointed with the waste, in any case I’m not here to judge.

I am here to share a story about premature optimization but at a much higher level – a feature level. A few years back when I started writing my app I wanted it to have a feature, let’s call it “frequency determinator”- feed data to the app and it can determine how often an event occurs. In my mind, it was very cool to feed the app data and automagically determine a pattern. Well, I started with the determinator code, it was simple but working. I said “great, it is time to apply it to real data that I have”. But there was a problem, I didn’t have an app, it was just code for frequency generation, I would like to be able to upload data from my phone and see the magic. Ok, no problem, I thought to myself, I just need an UI. I wrote first version of UI, which looked very basic and was incredibly confusing to use at times even to myself. So I rewrote it, added few features, just so the app can be a bit more useful to me. I thought to myself: “well, now that I have UI would it nice to have this and that, I’ll hook up frequency determinator in next little while”. I showed my app to a friend but UI was still confusing. Ok, no problem, I rewrote it again and added more features. Since I already had some data in the app, it was becoming more and more useful. Along the way I did some more refactoring, added just few more features, changed the UI a couple more times and the app was shaping up more and more. I was happy, the app alleviate big chunk of my anxiety and with each new feature, it was becoming more valuable and refined.

Is it there yet? Nope, I still need to rewrite the UI, since there is lot of room for improvement in usability. I can definitely use couple more features and some additional features that I believe can reduce some of my anxiety. So when is “frequency determinator” coming in? I don’t know! As I was using the app, refactoring and adding features, I gradually realized that time for “frequency determinator” hasn’t come yet. There is no need and from the feedback I got, it might not be ever needed. Something that looked like great feature, a centre piece of the jewel, turns out otherwise. Once you use the app, you realize where the value is for you. Once others use the app, you see move value around. The value doesn’t exist in vacuum of your own ideas, value only exists when someone points to it.

So, what now, stop wasting time and start looking for value? I wish I can say that but in reality my ideas of “frequency determinator” kicked started initial development. I might not have started writing the app without believe that “frequency determinator” will be the key to solving my problems. So is there a value in a waste? I believe there is, we “waste time” but because of it, we come up with ideas. I think wasting time looking at the sky or laying around on the coach is actually a good thing. But nothing will come out of waste alone, entertain ideas enough, build something, use it and see if the value is there for you.

Midnight in Chernobyl

I don’t have any particular curiosity towards soviet or post-soviet history. I watched the HBO mini-series “Chernobyl” and “Chernobyl The Lost Tapes” documentary, so I got enough of an idea about what happened. Since I was born in Russia and spent good chunk of my life there, I don’t need to be explained about corruption, incompetence and the Soviet ways.

So how did I end up with the book? I have a Canadian friend, really sharp guy, reads books, thinks things through, really fun to talk to. Many years ago, yet another regular conversation took a turn towards the topic of corruption in Canada. Before long he made a broad statement: “… it is the same in Russia”. I disagreed and he disagreed with my disagreement. This was the first time when I realized that people in Canada and in the west, don’t really understand Russia, more specifically that there is a difference between corruption and Russian corruption. In nutshell it is like comparing teenage hockey and professional hockey. Not long ago, my friend, came back to the subject of corruption, but now with a totally different position, now he no longer disagreed with me. I was surprised and he elaborated on his revelation – “Midnight in Chernobyl”, insisting that I should read the book as well.

So how is the book? Well, without a doubt the book is good, very good. It is well written and can be gulped without breaks. What you don’t find in any show or movie is nitty-gritty details and the book does a lot of justice to that. You can feel and see the system at work, incompetence, secrecy, economic and social struggle in “full HD color”. I believe the book represents a relative short and concise case study of the Soviet Union and how people though, operated and sacrificed. To some degree you will be able to understand even current situation and decision making of Russia today (including Russian invasion of Ukraine). The book is about Chernobyl, it is about the tragedy but Chernobyl story spans way beyond boundary of one location and far across entire USSR.

In a nutshell:
+: Well written & easy read
+: Lots of details
+: Brief history of soviet reactor building
+: Great insight into how the state operated
+: Overview how people lived, all equal but some are more equal than others
=: It is a good book, if you have any interest in historic events, pick it up. Chernobyl is one of the greatest disasters and perhaps it is worth while to learn about it, at the very least for the sake of not repeating it.

Title: Midnight in Chernobyl: The Untold Story of the World’s Greatest Nuclear Disaster
Author: Adam Higginbotham
Cover:

Midnight in Chernobyl | Book by Adam Higginbotham | Official Publisher ...

Moving forward, Jobs and Morning routine

I figured to share few thoughts that been circulating in my brain for a while…

When you are looking for a job, don’t spam your resume to every possible site unless you are starting at ground zero. It is counter productive and might make things worse. You should be sending/applying to jobs/companies where you want to take your career or expand your knowledge. If you don’t have a list of companies, find a career marketplace with narrow focus, for example dice.com – marketplace for IT jobs (there are more out there). It is imperative to operate in simple yet effective cycles: understand if there is demand for your skills, find what you are lacking, learn it (at a basic level first) and apply, if nothing comes your way, repeat the cycle again. Some companies are looking for specialists, others willing to take a chance. Important note here is: if you are not investing into yourself, why would anyone else? Take special care for people and companies that are willing to give you feedback. Lack of feedback is the worst thing that can happen to you, yes worse than rejection! Without feedback you don’t now where to go and what to improve. Lack of feedback is very taxing mentally, you might feel worthless and that might lead into the more dangerous state of physically stopping to “moving forward”.

Learn to have a morning routine, when you take 20 minutes to learn. Why 20 minutes? Because it is more than 15 but less than 30 – it is a brain hack. The idea that “I’ll study on a weekend for a few hours” is a false one – it will not happen, trust me, it is proven empirically. If you are not use to studying for 20 minutes, you will NOT be studying once per week for a few hours – your brain is more inventive than you might suspect when it comes to “how to get out of this?”. Yes 20 minutes isn’t much but that’s starting point and you will be surprise how much stuff can be done in just 20 minutes of focused work. More over, 20 minutes every single day stacks up! You will be pleasantly surprised by the progress. Next, expand 20 minutes to whatever you can afford (25,30,40+). It is worth remembering that only you, yourself can increase your own value. Don’t expect companies to invest into you unless you are working at a good company. Even then the company will train you in whatever the company needs, which might not align with your own plans. Remember: if you don’t want to invest into yourself, why should anyone else invest into you?