Adding my voice to this one. I think a lot of work 'normal people' i.e. the PMs the non-technical management, the sales people etc. really don't get how we techies work. Because they have to do 'active' work all day long to keep on top, they think everyone is like that, where in reality we are really efficient in short bursts. I can ponder a deliverable for days and then just churn it out over a few hours, only taking breaks for coffee intake/discharge. The normals keep asking me 'how far have you got with X' during the whole period, and they don't seem like it when I say 'I'm thinking about it, but I've not done anything yet'.
And, ironically, much of the work that the "normies" do is something tech guys could to hundred times faster. It's stuff like manually copy-pasting numbers from a crappy proprietary software A to a crappy proprietary software B or entering numbers from some system to Excel while it could be done by just directly pulling the numbers from the database the system uses.
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.
Hmmmmm, this is actually kind of interesting - perhaps that "continuous grind through criminally unoptimized UI" type of work is what actually constructs the "this is how you use a computer" mindset that these people have - because it's all they know.
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!)
Or maybe if you have to painstakingly copy those finance numbers and hour reports, you will be thinking about them more. You look busy enough to qualify as working, giving you time to actually think.
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.
> You look busy enough to qualify as working, giving you time to actually think.
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.
I can never do tedious work quickly. As soon as I notice work that should be automated, I start cursing at the developer of the tool I am using for not offering an easy interface for me to plug into and just automate it, instead of having to rewrite the whole thing from scratch if I want to have it automated (and that's usually too time consuming, so I don't do it). So I'd be constantly unhappy doing it, which is a recipe for avoiding it, ergo being slow at it.
That's why I am a huge fan of free software (and I've spent years on it too).
As someone who switched majors and became programmer, I experienced a great example of this when I first started programming.
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.
Thinking over a problem is valid work. The feedback is usually to timebox it or get someone 1:1 to help out if it feels like wasting time. Maybe something wasn't well defined or planned, otherwise it's no updates, no blockers.
I didn't interpret the comment to be about not working, but rather about the non-linear nature of programming work. If you have 100 documents to process then you are halfway through after 50 and it will presumably take a similar amount of time as the first 50 did.
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.
Steve Jobs had an opinion on this with which I agree:
> 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.
Agreed. I probably think about the problems I am trying to solve during most of the day. However, I don't think that is really work. That is just my brain not being able to shut off. And it isn't concentrated work - it is off and on.
The other disconnect is that they can do their work in 30-60 minute bursts (meetings).
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.
At my previous company, Monday was filled with meetings with 40-60min of spare time in between.
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.
This is a weird take, but as a junior developer, I find I'm more productive on the days with meetings because I'm 'forced' to squeeze in the 'real work' rather than just being scared.