Turns out there is good side to this pandemic situation we all have to live with in 2020: I finally have time to start a blog.
I’ll write about programming. About the things I’ve learned along the way all these years and I’m still learning every day as a programmer. About how to be a better programmer.
I like to write in first person style. While I’m writing, I imagine I’m talking with my reader.
So, let’s begin.
Let’s make it clear from the beginning that our job as programmers is to create and deliver software.
Software that works is our number one priority
We are not paid to create designs, write code, do tests, documentation, build scripts, make plans and schedules. These are just the means to reach the goal, these are just the costs of creating the software.
We are paid to deliver software that works.
Good software is all we care about
There is software that is successful and software that is not.
Successful software is the one people like to use. It might not be always the best, but it is always good. Our job is to do whatever it takes to deliver good software.
Even if we are frustrated when requirements change all the time or we are unhappy because there is no time to polish a feature. Even when we are disappointed because we cannot use the latest shiny technology that makes waves on the Internet.
Why we always forget that horrible software or awesome software can be created using the same tech?
Good Software = Meets requirements + Delivered when needed + Appropriate cost + Quality product
All of the terms from the equation are equally important. One of them is quality. And it represents 25% of the equation. Sadly all of them are really important. We don’t ship source code, our users don’t look at our code and say “Ah, that’s so pleasant”. They don’t make wallpapers with our source code.
They run our software.
Better software, not the best
The goal of this blog is to share some ideas that made me question the way I code, and ultimately the way I create software. Ideas that made me think differently. I didn’t found yet the magic bullet to create the perfect software but that’s fine, I just want to get better at it.
We are all unique, have unique experiences, we are the shape revealed by connecting the dots of our experiences. You should consider the things you’ll read, just as some of the dots you have to connect. You will not find here a full image, a dogma to follow blindly, a miraculous methodology. Just some dots that you will hopefully connect someday.
Maybe there is no magic bullet to create perfect software. But let’s try to get better at it. Every day.
We are simply never going to realise a state of software nirvana where everything is supremely satisfying. That’s an important emotional realisation. The fundamental reward of an improvement process is the experience of betterment, not some mythical destination. - Mark Slee