Consider information where it is rather than bend reality to my will
This is the 17th post from my sincere dev manifesto series.
Taylorism and lean are very close. Taylorism is scientific management. It’s proposition was to analyze how we do work and improve it in scientific way. Rings a bell to lean folks right? But taylorism also split people between brains and arms. Some analyze and think, while others apply conclusions stupidly with their sweat. There’s a quote I can’t find saying something like “I needed pairs of arms, which unfortunately came with brains”. Taylorism was a great progress towards paying people fairly, and building an infrastructure for humans. But it had this limit in brains quantity, and left workers close to slavery.
Lean changed that by pushing analysis and decisions as close to the information as possible. That is, on the field, where people work. Problem solving has now infinite potential, and the scientific approach is now actually based on every single piece of detailed data on the field.
OK, dev is not about bolts and nuts. But it is about problem solving. And if you observe traditional environments, you will notice our tendency to push decisions towards an imaginary world, rather than reality:
- specs in written documents
- decision boards in meeting rooms
- authorizations from management
- asking users what they want
- pre-production environments
- reporting up the hierarchy
Though some of these are necessary for organization alignment, we must not sacrifice actual data for our superstition for climbing upwards. Every time data is communicated, gathered, interpreted, summed up, presented, told, heard, understood, a portion of it is lost, or even replaced by something else. Reality quickly becomes fiction.
I tend to lean towards the anarchy team, so I prefer autonomy and facing reality:
- test in production
- observe users in their habitat
- help people who need information write documentation themselves
- help workers learn problem solving themselves
- push autonomy as close to the gemba as possible
- iterate on hypotheses validation
- top-down TDD as much as possible
- observability over integration tests
- gather usage metrics
- measure before optimize
Reality is where the reliable information is. I try to push the cursor towards this side of the spectrum.
I commit to pushing gateways away in order to observe reality, rather than rely on fortune tellers.