Continuous Improvement through the lens of a Programmer

Sahaj
4 min readNov 2, 2020

How the Kaizen mentality can change the way you work

Taken from wikipedia

There’s been an idea in my head for the past couple of months that I’ve been meaning to implement. It’s something that every programmer at some stage of their career thinks about: “I should build a site.” Most web developers or even backend developers know they can do it, it’s not a question of one’s ability. I’m talking about the roadblock that prevents most developers from starting their pet project: “Seeking perfection before a single iteration.”

We might have crazy ideas of what the end product would do or how we would implement it but most of us never get off the ground. This was the mental block I was facing before building my site. The idea of the site was very real in my mind and I knew what technologies I would use to create it but I would never do it. I was trying to implement a perfect product rather than just getting something built. A key line that would eventually become my mantra for my short career really came into view: “just build things.” We become so caught up in the details of what the end product should be that we forget to actually do the thing. I would go back and forth on what pages I should implement and what services I would use that I never got around to actually using them.

Kaizen

I stumbled onto the idea of Kaizen a little later and I was instantly hooked, it was a simple concept and it helped me put things into perspective. Kaizen is the idea of constant iteration, it drives home the point of making something better over time. Toyota famously used this idea to consistently make their manufacturing process better and now it’s the envy of many carmakers. There’s a similar concept in programming proposed by Andrew Hunt in Pragmatic Programmer of Good Enough Programming. This idea actually has evolved into something much bigger called Good Enough Architecture.

Good Enough Architecture

The idea behind Good Enough Architecture is Kaizen in another form. Consistently improving something over time rather than trying to deliver a perfect product is more beneficial to the user and the person developing the product. For the developer, they can focus on making just getting something done rather than trying to come up with different ways of accomplishing it. You should spend some time thinking about the best technologies and decisions you can make to get something out the door but time-box yourself. Don’t get stuck in a circle of trying to come up with different technologies and their trade-offs. Instead of looking at the first product as the final form of what the product will be think about it as an iteration of the best product you can have.

My Site

This idea of Kaizen has real-world implications, I know because I spent a couple of days going back and forth on how I would implement my site. I looked at other people’s sites and I was amazed at how beautiful they were. The problem is that I was viewing someone’s nth iteration rather than their first iteration of the site. The person who made this site probably had a first iteration that was not as good as the current site looks. I decided to start building my site from the base up, making small decisions as I went along. This allowed me to iterate and build better and better pages. I would go back and re-do some of the pages which I knew I could fix based on what I just learned. By the end of the week, I had something built that I was proud of, it was also something I knew I could improve in the future. The thing about personal projects is that we all can be better, but there’s an upfront cost of time. Just make small changes over time rather than trying to change the big things right now and your project will improve overall.

Abstractions

This idea of Kaizen can also be applied to life in general and how you grow your career. I was sitting in an interview with a FAANG company and I was asked by the manager what the biggest lesson I had learned from my career so far, the idea of consistent improvement came up. I found that I would often look back at the code that I wrote a couple of months ago and say to myself “what was I thinking?”. I knew looking back at the code that I could implement a solution that’s better and more concise. As a programmer you will have a lot of these moments, it’s a good thing, this means that you’re growing and becoming better. It’s not a type of improvement that you can get by taking a day and just studying patterns and architecture, it’s a quiet improvement that can only come from iterating over your skills. The idea of Kaizen in your broader life means that you take the first step of becoming a programmer or whatever you are right now and not focus too much on where you want to be in the future. You focus on the skills you have right now and make them better, take small steps towards your destination, and eventually, you’ll end up there.

A final word

This isn’t meant to be something that you just read to make yourself feel better and then make plans about doing something in the future. If there’s something you can take away from this post it’s this: “just build something.” Don’t go out to build Facebook or Google, build something small and then iterate over it. Grow that tangible product by building it one brick at a time and make it better over time. Just Build Something Medium Link (If you like the article, give this a click so I get more views)

Just Build Something

--

--

Sahaj
0 Followers

Just a Software Engineer trying his best to make sense of the world.