We misinterpret and simplify productivity: we think it is measured by how much do you produce or how busy you are with several projects in parallel.
Also, people resort to being busy when they lack clarity and purpose of their work (you can read about this effect in a great book called "Essentialism").
Historically, a studying of productivity was bounded to factories producing physical goods. This analogy is very tempting. But we are knowledge workers and not factory workers. We do not produce the same way as factories does, though on a high level the work flow can be managed in a similar way. Our motivation is different from other types of work.
At Metadevelopment, we prefer a definition of productivity given in Trello productivity guide : "making sure you’re getting the right things done, in the right timeframe, in a successful and effective way".
This definition incorporates priorities, efficiency and timeliness of your projects.
Here is the crux: optimizing for productivity can be harmful! Here is a good example of over-productive system. And here is a good explanation of how boredom can make you more creative.
Productivity and Software Engineering
It is very easy to get into the trap of optimizing for productivity when you treat yourself as a production unit or misinterpret high performance.
Also, it's very easy to become a productivity junky if your only job is to just write code without questions asked.
Along with out intuition to pursue productivity, we are neglecting other effects and factors we need to be aware of as engineers:
- Network effect (the more people are using your product - the more valuable it is)
- Sustainability (enhancing the current situation without doing harm for the future situation)
- Human Factors (taking in account safety, comfort, human error)
- Social Influence (affecting a person’s emotions, opinions and behaviors)
- Cognitive Biases (systematic pattern of deviation from norm or rationality in judgment)
- Applied Ethics (the analysis of particular moral issues in private and public life)
Software Engineering is an application of systematic, disciplined, quantifiable approach to development, operation and maintenance of software (IEEE90 definition).
As an engineer, you can have an impact in every area of product development cycle. Why would you care only about being productive coder if you can be an efficient engineer?