LaunchedMotionShot- Make informative screen guides for your products, tools, and SOPs!
Published on

“Do whatever works” while building products

Authors

Let me tell you a mini story

Scene #1

You are going to your office for work on a sunny morning in your lovely car. You are relaxed and enjoying the music that is being played on the radio. You slow down the car seeing the red light on the signal board at a junction. You stop the car as you reach the line, wait till it turns green, and continue the journey. You reach the office and get busy with work!

Scene #2

Your friend is heavily injured in a fire accident. You quickly take out your car and get him inside. You rush towards the hospital. You see a signal coming up showing a red light. You speed up the vehicle before the road gets clogged with other vehicles. You break the signal rule, go to the emergency ward, and get him admitted. After a couple of hours, your friend is out of danger!

Rewind

It is the same rule for the traffic signal in both scenes. No one either changed the rule or told you to ignore the signal. You just did it as per the situation. It is correct in this situation and anything else otherwise would have been an absolute mistake. It is just common sense. There are always rules to make sure we do not go wrong but you might have to break the rules and just trust your common sense, and guts and do whatever works for that situation. As simple as that.

In product building

The internet is full of guidelines, patterns, rules, and thumb rules more and more in terms of building products, and building software systems. As I am from an engineering background, there are so many myths while writing software. They all come with jargon like scalability, microservices, frameworks, etc.

I agree that they are there for a reason but that does not mean you have to absolutely follow them. Just do whatever absolutely works. Make sure you know the consequences, what are the pros and cons of doing whatever you are doing, and do it.

This idea of doing what works overlaps a lot with doing with common sense. It is beautifully explained by (Kailash Nadh)[https://www.linkedin.com/in/kailashnadh/] — CTO of Zerodha here in two parts

  1. https://zerodha.tech/blog/scaling-with-common-sense
  2. https://zerodha.tech/blog/being-future-ready-with-common-sense

What did I do that works?

Not for one time but every time I follow this mantra. Just to give examples, I pick a few things that I did that are not conventional but I did them because they just worked for me. Here are a few things I did in my latest side project Tweelog

1. One git repository

Generally, we tend to overestimate and start multiple repositories for the frontend and backend because of multiple reasons. I did not have to care about them. It makes my life easy to just have one repository and have everything there to start with. I can break them when required but not when I start for sure.

2. One instance for dev and prod

I needed a dev/UAT environment to test whatever I build. Having two instances or machines to run the applications was too expensive and unnecessary for me. I started running them just on the DigitalOcean machine. I can surely break them when required.

3. No CI/CD

Continues integration/deployment is a very useful tool. Don’t get me wrong. I suggest you use these tools, but when it is required. When I started this project, even now, almost I am the only developer and I am okay with manually deploying stuff. In fact, I have written my own bash script to deploy the web app which pulls the code on my local machine, builds the react app, and just scp files to the server. You don’t have to do the same thing but do what just works for you. For me, this was enough to start with.

4. Jugad learning machine

I see you are laughing. Yeah, it was fun for me too to build a learning engine that I called JLM because in my head it is just a few lines of python code but it is learning based on the data I pass.

In Tweelog, I had to tag topics for each tweet that the tweet belongs. I had a very basic algorithm that works on word matching. That was just going fine but was not enough for me. I explored more and thought to consider what the public is frequently talking about, to be precise what words people regularly use in the tweets. If a word is used a lot in tweets by the public then the probability of that word being a topic is very less.

I am pretty sure this is not at all a suggested solution but that doesn’t mean I should not give it a try. I did it. After writing a few lines of python code, my so-called modal is ready to be fed by the data so that it can maintain the weights for the words. I dumped 1 million tweets and the modal was matching 66% of what I was expecting.

So I put it in use, in production and it does the job, not perfectly but it is a start. Eventually, parts and parts of it can be replaced and it ends up decent modal in future. It just worked for me. I did.


There is so much other stuff where I just did what works for me at that point in time. With common sense. This does not mean that you just blindly do stuff, you need to keep exploring, and keep improving your common sense so that your intuitions have a high hit rate. All it means is, don’t just blindly follow conventions, try your own ways, and trust your common sense and intuition.

I trust this can be applied not just for software development but in general multiple things.

It takes time and need the experience to master this but worth doing it. I would be happy to share more thoughts about it if you DM me (@pramodk73)[https://twitter.com/pramodk73]

Cheers!