Seriously, modern work is all about knowing what to do and how to do it rather than putting in a large number of hours executing a straightforward task.
Developers are always about optimization and automation and tweaking and refinement, and their tools reflect this constant pursuit of efficiency that constantly transcends and questions how a job is expressed (UI, mental modeling) and completed.
No other industry - ironically including technical management roles (maybe even especially so?) - seems to have this sort of focus.
I even hesitantly wonder if the biggest similarity I've ever seen is with accessibility type setups with screen readers and whatnot. (Ha, that says a lot about the fundamental impedance mismatch of developer tooling!)
All the time tracking tools I've ever used (at software companies!) had a bad UI. Sometimes we even have to track the same hours into two different tools. Can't we automate time-tracking away? My explanation is that this is the result of cultural evolution. Companies that make people think twice about their time and spendings are more successful. People will copy whatever successful companies are doing.
This is so messed up - and yet so interesting as a direct result of that.
I've only ever considered the idea of "looking busy" in the sense of whether or not someone is trying to optimize for shirking actual mental engagement.
I never thought of how doing that can actually make room to think. But that's so logically obvious once you mush the two ideas together!
I say this is messed up because I can totally see this being both necessary and helpful in certain situations. Wow.
That's why I am a huge fan of free software (and I've spent years on it too).
This link shows a touchline between using api and not using api https://www.swyx.io/api-economy/
But how can we build some tool for telling product managers that they should fix there automating proces?
Starting out, if I spent a whole day thinking over a problem or writing code that I ultimately had to scrap, I would tell people I got nothing done that day and it was a waste.
Now if I do that, I see if as the necessary troubleshooting that all must go through to solve the problem.
Come on guys. Plenty of software devs are actually working during the day.
What are you guys doing if you're not working? Reading articles? Playing Halo?
When writing code you might have written 10 lines of code in the past week, but the next day you write 200 because you've been thinking about the structure of the solution. In this way you might be working even if you're going on a walk or doing the dishes.
This isn't unique to programming, of course.
You hit the nail right on the head.
This is the main thing that non-programmers (i.e. Management) need to understand about "Programmers" and the key to "Manage" them effectively.
> The greatest people are self-managing -- they don't need to be managed. Once they know what to do, they'll go figure out how to do it. What they need is a common vision. And that's what leadership is: having a vision; being able to articulate that so the people around you can understand it; and getting a consensus on a common vision.
Related quote from Scott McNealy : "Agree and commit, Disagree and commit, or get out of the way."
Too many times Management/Leadership devolves into giving orders without having a clue. It then becomes nothing more than a power trip to the detriment of everything and everybody.
All "Good" people just need Autonomy, Vision, Freedom and stellar Results will auto-magically follow.
We cannot. Some things require multiple hours of uninterrupted concentration and if my calendar looks like someone fired a shotgun filled with 30 minute meetings at it, I can't achieve that.
I mostly did small bug fixes or read articles because there was no way to do anything productive. I need the mental space to properly plan and execute.