Knowledge Workers in Software Engineering
There are two kinds of engineers I had the pleasure of working with in the course of my 20 year career. For lack of a better term, let's classify them as knowledge workers and intellectual laborers. In this post, I want to describe the knowledge worker. In a follow-up post, I'll describe the intellectual laborer.
I define a knowledge worker as an engineer (This term can be extended to other fields beyond engineering IMHO) who take ownership of a system/subsystem of a project and is fully invested in seeing it succeed. In software engineering parlance, she could be a person who owns a module and handles everything from requirements all the way through to automation testing/regression test-cases and production support.
For example, She would
- pay attention to every single library/version being used in this module
- schedule library version upgrades among the deliverable tasks
- perform refactoring when required to simplify the code base
- pay attention to the technical debt being accrued in her module through the use of static code analysis
- update design documentation when requirements change
- constantly prune the product backlog to address any changes that may arise
- participate in DevOps workflows with particular attention paid to the potential effect each configuration change has on her module.
In other words, she is a person you can entrust a feature to and expect her to manage you - the team lead/product architect. She will manage her own learning needs, present and future. She will also split her learning between her interests and what is required on the job. She will also have interests in the domain she's working in, not just as an engineer, but as a consumer/user.
In a team full of knowledge workers, your management rhythm gets optimized on a daily basis. Every challenge becomes a new interesting problem to solve, rather than a road block that needs to be addressed. Most successful teams have a management structure where the business goals and scope of work flows downwards and the management flows upwards. In the innovation economy, let your employees manage you, not the other way around.