What are the consequences?
Before we stress ourselves, let's understand if this actually matters.“What’s the best way to ensure a team doesn’t over-commit when working on an unfamiliar technology they need to learn as they go?”
Hmmm… I’m not sure.
But I do have a question.
What are the consequences if the team does over-commit for some reason?
Before we stress ourselves about avoiding this “over-committed” state, I think it would be a good idea to understand if this actually matters.
You see, this “over-committing” idea really only seems to happen when working with fixed scope and a fixed timeframe.
If we apply an iterative development approach, then “over-committing” concern mostly goes away.
How does that work?
Well, we pick the single task that’s most important (most likely to deliver value, provide learning, help the end-user, etc) and which can be done within a few days or less. Then we do that task. Then we repeat.
In this way the team is always working on the most important things, and is always working “to capacity”. And then whenever time (or budget) runs out, the team is guaranteed to have done the most valuable things. No “over-committment” necessary.