Those are the things that really grind enthusiastic people doing hard, creative work to dust.
Proving to the pointy-haired that going to a 4-day week won't hurt "because metrics" only puts a band-aid on the real problem which stems from the fact that many enterprises view people as "components"-- as means a to a corporate-defined end.
For many people a 4-day work week only prolongs the path to burnout, IMHO.
Not just as far as remote working is concerned, but running better companies as well. I'd say it's fairly clear that knowledge workers don't all fit in the 9-5 schedule, people have different sleep/productivity rythms, there's other beneficial activities that help foster creativity and focus (meditation, exercise, stretching, post-meal nap, ...) that one would ideally enable and even encourage employees to engage in...
But all of that brings a huge problem, that in some way we also need to measure productivity - both to prevent (fire/reeducate) people from abusing the system (freeloaders), and to fairly reward people (avoid negative selection). An additional complication is that productivity is even ill-defined - is banging out tons of code day after day more or less valuable than brainstorming for a few months and coming up with a revolutionary new product? What about basic research, which takes years and has an uncertain outcome?
Probably computing is one of the best test cases for better systems, as programmers have almost complete freedom to work when-/where-/however, it's not a heavily regulated industry, most code is not critical (so it's easy to iterate quickly, as well as experiment with different objectives - slow&correct vs move-fast-and-break-things), and also programmers are productive enough that a few bad apples is unlikely to break the company...
I'm really interested in this general topic, I'd welcome any ideas/discussion/experience!
I work for a mid-sized university. We're a bit unique, for higher ed, in that we have centralized IT. Our projects support university 5-year plans. When projects do not complete successfully or are extraordinarily late people notice. If teams are hitting their goals - university goals - does it matter if every person on a team is hitting some averaged-out metric for productivity? If a team isn't hitting its goals, usually it's not due to individual contribution, it's due to poor communication, unrealistic goals, frequently shifting requirements/priorities, etc. Usually a sit down with the team to get feedback will tell more of why the team failed.
A hobby of mine is coaching youth basketball. To increase my ability, I joined a forum. Today the moderator posted a quote from NBA player Marc Gasol. Marc lamented the tracking of individual stats because the stats don't tell the story. He stated, correctly IMO, that many critical factors are not tracked and would be hard to measure the importance of. For instance, a player who doesn't score much but prevents his defensive assignment from being a play maker (play makers are more than just scorers). Or the player who sets up the plays that allow other people to score (for those familiar with basketball, think screens/picks). Or the guy who is on the bench but helps calm down players when their team is down.
I've come to feel the same way about IT teams. A win is a team win; a loss is a team loss. In both situations, many factors came into play in order for the outcome to occur. My experience is that individual productivity stats don't give you a clear idea why the outcome occurred. In the end, it's all about the success of the organization.
> For instance, a player who doesn't score much but prevents his defensive assignment from being a play maker (play makers are more than just scorers). Or the player who sets up the plays that allow other people to score (for those familiar with basketball, think screens/picks). Or the guy who is on the bench but helps calm down players when their team is down.
Yeah, these are certainly good criteria. The benefit is that in such sport, it's probably easier to assess performance/impact, as it's all face time. To some degree, these criteria are applicable to tech work as well ("he's in the office 2 days/week only, but he always solves the problem when the server goes down overnight or over the weekend" or "she works remotely, I never saw her before, but she found 37 critical security bugs in the past year").
YES!
Are you aware of pair and mob programming?
People want to be successful. No one likes to lose. Even a freeloader is expressing that behavior because they believe that is the best way to win.
Pair and mob programming completely makes freeloading impossible. It also is true teamwork
Hrm: PNS?
Basically, there's a dichotomy between 2 different kinds of work: Convergent vs Emergent.
In "Convergent" work you are delivering what a market has asked for. You are measured on meeting these requirements with accuracy, speed, cost. Predictability of outcomes is paramount, schedules are everything, people expect to be able to control all variables.
By contrast, in "Emergent" work, you are effectively creating a market. You introduce something that hasn't existed before and which isn't merely a tweak in an existing product. The outcome of Emergent work is new ways of doing things, new products, and new resources. This introduces a lot of "grey area" and lack of focus.
The most successful enterprises find the right balance between Convergent and Emergent work. In manufacturing (my domain), most initiatives are Convergent and expectations focus on meeting some deadline or numeric goal, literally everything else is subordinate to that. Start-ups, of course, have the opposite inclination. In those, a "runway of money" is burnt to introduce some potentially new product with only vague expectations of profit at some time in the future (despite whatever they tell VC's). You sort of need both in an organization and staff (as a whole) need to assimilate both types of work to really succeed.
What I had in mind was things like Customer Support or QA personel (which exist even in start-ups & tech companies), where the tasks are pretty clearly defined, it's easy to track progress, and it's fairly important to "do the hours" (e.g. if you need 24-hour customer support), but you can offer things like location independence (precisely because work is so easy to track).
Unfortunately, however, I think that most programming work (and this probably extends to most technological work) isn't quite as easy to categorise... basically, even if your objective is 100% convergent ("our client wants this, we'll make it"), there's still different (better or worse) ways of getting to that goal, so there's still a lot of creativity/decisionmaking involved... and it's obvious that simple metrics don't really work ("I fixed 100 bugs today!" "Yeah but you wrote all of them yesterday.")...
Are you aware of pair and mob programming?
People want to be successful. No one likes to lose. Even a freeloader is expressing that behavior because they believe that is the best way to win.
Pair and mob programming completely makes freeloading impossible. It also is true teamwork where everyone is literally on the same page.
Perhaps a win for themselves personally. A freeloader is a selfish individual in team dynamics. They only want accolades/home runs for themselves, and not a World Series for the team.
> Perhaps a win for themselves personally.
EVERYONE who's logical wants a win for themselves personally.
Your non selffish teammate wants the company to do well so they continue to get paid, builds a reputation for success and gets the bonuses.
Your CEO wants the company to do well so they continue to get paid, builds a reputation for success and gets the bonuses. Their role require them to think about the company as a whole or there will be guaranteed failure.
The single mother is working hard over multiple shifts for HER children to be fed and schooled. She's not doing the hard work for my family. I don't see a single cent from her.
The billionaire contributes millions to charity so that the planet he lives in is cleaner and better just like you and I spend hundreds of dollars in cleaning OUR houses or helping our neighbors so that it's cleaner and better. No sane person wants to live in a dump or in a place where everyone hates each other.
> A freeloader is a selfish individual in team dynamics. They only want accolades/home runs for themselves, and not a World Series for the team.
I really wish people were more selfish.
Then it would be easier to reason about the world.
The most complicated individuals are those who are "not selfish" - very difficult to reason about IMHO!
There cannot be action without motivation, so what is their motivation, exactly?
Is their motivation to work hard because they want to make the starving kids in Africa more educated?
Do they understand what it takes to make the starving kids in Africa more educated?
Do they have control over what it takes to make the starving kids in Africa more educated?
Do the starving kids in Africa actually want to be more educated or do they want something else first, like food?
How will they behave if one day they realize it's not going to happen like they envisioned? Can I continue to depend on them to deliver they have been or will there be a meltdown?
Selfish people seem to have better clarity over what they need and can communicate it better.
They have better and closer/direct control over their needs and wants. It's not dependent on another random thing or individual or group.
If you have a freeloader on your team and your team agrees on the matter - WHY is that freeloader still around if they are not providing any value?
When I was in college, there was a group of students who were frustrated about how the pub they frequented had a bunch of young women who seemed to go out with much older, well off men. They were upset that the attention of these young women were being taken away by the older, well off men and the men were distracting the women and exploiting them.
They theorized about the ethics, long term effects, viability and so on about the situation.
Since they were computer science students, they wondered whether making better dating apps would improve the situation for these young women who were perhaps not finding the right men.
The reality is the young women were getting something from the older, well off men; the older, well off men were getting something from the young women. Both parties were selfish and knew exactly what was needed and wanted and provided.
Maybe the selfish freeloader at your company is giving the company something it needs and wants that they can't get from the less selfish team members to further its business objectives?
My last job was for a large enterprise that viewed employees as drop-in components. Not only was it dehumanizing, but it was a terrible way to get any work done.
If you have a system where a freeloader can win, then you have a system that encourages freeloaders.
There are other systems that make freeloading impossible.
Are you aware of pair and mob programming?
People want to be successful.
No one likes to lose.
Even a freeloader is expressing that behavior because they believe that is the best way to win.
Pair and mob programming completely makes freeloading impossible. It also is true teamwork where everyone is literally on the same page.
The reason why you have a system where a freeloader can win is management that believes pair or mob programming is a waste of time.
This allows silos to build up, provokes and allows for dividing politics of who can know how something works or not and breaks team morale.
You get the behavior you design for.
We prevent freeloader problem by requiring everyone to pay taxes. The equivalent at work is requiring ass-in-the-seat / face-time policies.
I don’t see how pair programming can solve anything, people can still contribute zero (except their presence).
I'm confused - it seems to me that you understand that ass-in-the-seat / face-time policies only address the presence problem but cannot address contribution.
1. Do you agree with this? 2. What's your solution to fixing the contribution problem?
That's not how pair programming works.
Pair programming is not sitting and doing facebook while the other person churns out code.
Infact, in pair programming, that is exactly what you cant do.
Once you understand this, you intuitively understand why mob programming is so much more efficient.
The primary difference of interest here is the way an employee owned cooperative is directed by people the employees (who know what is really going on in the company) and for their benefit, rather than for the benefit of disinterested shareholders.
Wow, great solution!
Except that, of course, you're missing the problem. Firing the employee isn't the problem - I don't think it's relevant whether it's done democratically or if the CEO "dictates" it.
The problem is, how to find freeloaders? In absence of objective metrics (which is what the parent raged against), it's an art! Or, it will come down to internal politics, ass-in-the-seat time, popularity contests, ... not that much better than in a non-cooperative company.
Without a clear provider of vision and decision, it crumbled. This part is true of any venture, but I think becomes even more critical in a co-op since the authority is necessarily shared.
I think in broader terms, cooperatives are bound to be less efficient than an equivalent capitalist controlled venture, but that difference doesn't have to be a death sentence for the cooperative.
If you are brilliant at engine design does not mean you are brilliant at selling cars.
Selling cars make money. There is negative value in a bunch of engines lying around.
As software engineers we design automation to make a business more efficient.
To make money you need to run a business.
As you say, bad metrics are a problem. But some form of loop-closing is essential.