Being Productive vs Feeling Productive
What does it mean to be productive? Can it be different to be productive for yourself and being productive for your company/organization? Is it possible to get a lot of things done and still not be productive? Is it possible that people get the feeling of being productive, without being productive? what would it mean to feel productive? I am sure with these questions it is easy to fill thick books, but let us examine this and other questions and collect some thoughts about the topic within this article.
But first, how do we define productivity. First I would say, different engineers have different productivity. They work with different technology, have different skill levels and are at different stages in their career. In manufacturing productivity is easier. simply count the number of items produced or services completed in a given time. In Software Development productivity is different. In a startup a single programmer can build many features in a very limited time. At a big cooperation, one coder might work on a single feature, still getting better compensation.
For most of my time as a developer, I thought to be productive when I solve a very hard problem, creating a very complex piece of software that is functioning great. The value that I produce the share of the software that I produced times the value that this software can create on the open market. and I still believe this is true as ultimate rule.
On the free market you will be compensated for how much value you can produce. So an economist would say, that value created in terms of money. Being employed there is however an other strong factor coming into effect. You get compensated what other people think/feel how much you contribute. Your boss will determine how much he is willing to pay you. along this way, you can talk a good game.
Story about Golang
Now,… compensation is only one thing how we can measure our productivity. I like to tell you a recent story. Usually I code using JavaScript. Recently I had to work on a cloud function that was developed using golang. It was me, who got the luck developing unit tests. In order to do some dependency injection I changed a few interfaces and function signatures. Making the needed changes, the IDE kept showing other places in the code that needed to get corrected because of that change. It was overwhelming, so many changes I had to do. It was a lot of work. But finally I got to the point, the program was able to get compiled again. I coded a lot. And finally it feel really good. I was able to do so many changes and have the program work again. Here is the point, I understand that engineers can really feel productive having done such a great piece of work. So much refactoring and it works. In the end of the day how ever, what did I really do? I tested one of the functions. It absolutely feel productive, but was it?
recently I wrote about productive teams. For certain projects, having a team is only of little value. For solving the very tough problem, it can be better to leave one developer a while for himself, not spending to much time explaining himself. This problems can be of many kinds, a problem with some tech, some research or just figuring out how to work effective with a certain complexity. The real ‘effectiveness’ can only be determined afterwards. It often even contains the risk, of not producing any value at all. Other then the decision to use an other way. Is someone a bad developer, when he did not figure out a problems solution?
After all this time, I still believe, to be successful in the long run, you have to be really productive. Along the way, it is important to maintain a good relation with your leader. It is important to get the back covered by the leader to make hard and potentially risky decisions, that can be rewarded with bigger results than playing it save. Soon, want to show more, what the leadership can do, to make the engineers more productive. Really!