"Ability To Do Work" is so ignored by many contemporaries. It's easier to assume that one person is pretty much the same as another, on average, and that work is done by individuals.
This way the math works out for linear gains from adding headcount.
"Capacity" has become a euphemism for headcount.
The "on average, a programmer is a programmer, a QA is just another QA" is not only wrong about individuals, it's dreadfully wrong about teams.
For people to be great soloists with equal capacity in solo work, each person has to have the same set of skills, habits, approaches, talents, knowledge as every other person. We know that isn't so. It will never be so.
But on a team? That's a whole different game. A proper team (not unteamed with solo assignments) is a tide that lifts all boats. You don't need the people to each have all the skills, you only need the skills to be in the ensemble.
All the work the team does is the work of an expert Java programmer and an expert JS programmer and a React expert, and an architect, and a testing professional, and a product specialist, and a SRE if those people are in the ensemble.
Adding a redundant set of hands to the ensemble is probably not going to make a lot of difference. Adding a needed talent is going to make a big difference.
Spreading better habits, knowledge, skills is going to make a big difference.
That's the tide that lifts all boats.
BTW: you don't get these benefits if your ensemble is "worker/watchers" or if the ensemble is doing work specifically carved out for one of the members.
It's only the work of those experts if those experts participate. That's why we self-organize, to get the right brains:task.
And instead of adding more hands, you might get a lot more benefit by removing wait states, queues, tedious repetition, style disagreements, and the (ever-present for solo programmers) muddling through when they don't know "the best way".
you might be surprised to see the improvement in quality and robustness when you improve "the ability to do work" instead of "the number of workers."
"But we need more people!"
Does that mean you need to get more work done? Or that you have a quota of people? Or that you need additional product lines?
What does "need more people" mean?
Is bigness the reason? Do you need more people so you can be bigger, because the big players have a lot of people? Is it an embarrassment to have a small staff? Or do you need more work done?

You can get more work done without hiring a lot more people or working overtime.
If you want to get more work done without becoming more skilled or efficient and without using a better process, then you're pretty much down to having more people working in more teams.
But maybe a bit of curiosity and imagination is cheaper, faster, better?

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with "Agile Otter" Tim Ottinger

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @tottinge

Feb 15
Don't say "capacity" when you mean "headcount"

A team's /capacity/ is how much they're capable of doing together.

Pretending they're equivalent is (foolishly) pretending that programming is mostly typing.
Capacity is the right idea, though.
What can you do to increase the ability to do work other than bumping up the number of developers.
But likely you can improve skills and focus and tooling and raise capacity, remove waits and queues and returns.
Your capacity isn't headcount.
BTW: if you're doing Angular but nobody really understands Angular, then maybe adding an Angular expert to the team will increase capacity. It's SKILL and FOCUS after all.
If you have individual assignments it won't help much, though.
Read 4 tweets
Feb 14
@eikonne I also find the pair-programming he’s referring to to be suboptimal.
For me to type all day while you criticize, or for me to criticize all day while you type (worker/watcher or worker/critique) is indeed a very dull and wasteful thing.

Pair Programming, on the other hand…
@eikonne … actual pair programming by co-creating code, switching roles frequently, switching partners a few times a day, is not only an excellent pedagogical tool but a great way to do work.
It also means you don’t break tasks down to individual skills, but work more whole features.
@eikonne I think that this is a classic (AKA "normal") case of confusing the antipatterns for the thing.

"Doing dishes sucks: all that food floating in dishwater"
"Dude, that's wrong. You're supposed to scrape and rinse them first."
"Oh, you purists and your No True Scotsman fallacy!"
Read 7 tweets
Feb 6
If you were born into tech in a modern corporation, you might think that “agile” is an estimation technique based on repetition and practice, or perhaps a workforce performance management system based on constant checkpoints.
Would they know it was about making software better?

Would they recognize the goals of healing the mgmt/dev divide, working within capacity, delivering early & often?

Would they recognize autonomous, cross-functional, self-managing teams as a bedrock concept?
If I were to transplant the original Agile Manifesto signers from 2001 into your shop on Monday, would they recognize anything of their work or intentions?
Read 4 tweets
Feb 4
The most difficult of all simple ideas to internalize is probably this: To be done sooner, do less.
This is true in the large and in the small.

Small: If I use the "rename" refactor, it changes all the references as I type the new name. If I don't, I have to carefully walk the code base, changing the name (spelling it correctly) every place.
Large: if we make a single-feature release, we can have it out in a few days. If we slice the feature e2e, it can be several releases a day for a few days.
Read 4 tweets
Feb 2
We assume that “Engineering == Production Engineering” and so we, as an industry, made the billion dollar mistake of attempting to improve the efficiency of software development by applying production-line techniques.
I need to apologize to everyone. I used a tool to post this and it makes it look like this is my own work. That's not the case, and I never meant it to be intellectually dishonest.

I thought it would be posted with the article link.

So: this isn't my words, but I admire them.
I will post the article link when I find it again.
Apologies to whomever's work I quoted accidentally without citation.
If that's you, please remind me of the link.
I feel awful about this.
Read 4 tweets
Feb 2
In a crisis, people pull together and work together.
They share information, volunteer their skills and expertise, shoulder the burden for each other because of the shared stress.
When it's over, they go back to the pre-stress style: solo, disconnected, competitive even.
In the various early agile teams, there seemed to be this idea of working they way we work when we're in a stressful crisis, but without any of the stress, threat, or crisis.
We work productively and voluntarily when things go wrong, couldn't we work similarly without panic?
What keeps people from happily and joyfully working together in community when nothing bad is happening, when they're not under stress, not burdened with dire consequences, just because they like to?
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

:(