This actually sounds like you are one lucky guy:
In our team, we have a similar list, but nobody ever looks at it
because those points seem so blatantly obvious
Your team is already "mature" ;-). But there is always room for improvement!
To your question:
So what are examples of strong definitions of done of a mature team?
What kind of points do they include typically?
On top of your list, you could add:
Various code quality metrics:
- Instability, Abstraction
- LOC vs DLOC (documented)
- etc...
The rule of thumb could be that the metric should not get worse with your commit.
On top you could formulate a "done:withExcellence" if someone actually makes the metrics get way better. Although this (metrics getting better) is usually not part of development phases (new features) but refactoring phases.
In one of my past companies we had a definition of "done" that said that your metrics need to stay below certain thresholds, if you go above, you are not done yet. (Cyclomatic Complexity should never go above 15, unless you have a very very very good excuse, like complicated calcs.)
Same goes for Checkstyle type of violations, especially if you have a custom rule-set to check on your teams code-style. If you are in violation of the coding standard, your are not done yet.
Then you could not only execute UnitTest, you could measure code coverage. If not at least 50% are covered, you are not done. Although this is kind of a flaky defintion of done, since you should have tests for the core/main/critical methods, and not necessarily for 100% of your code base.
Oh yea... and if you have (you should) a CI server with automated branch integration... you are only done if your commit in the DEV Branch merged with the current LIVE-Branch and causes no errors either. (Unit Tests, etc.)
hmmm... that's all I can remember right know from past companies/projects, which hasn't been mentioned in your list.
I hope that gave you some ideas ;-)
Cheers,
anann