I came across a note of mine from last year on my baseline expectations for developers:
- All code is checked into source control on an hourly basis or at most daily.
- Every project has an automated build. (Maven, Ant)
- All projects are setup in continuous integration (Hudson)
- All code follows the current Java/Groovy coding standards.
- Unit test coverage of new code must meet a 70% target. TDD is preferred.
- Code reviews or regular pair programming are required.
- Code should meet a standard of low cyclomatic complexity through refactoring and design.
- Some level of functional, integration, and acceptance tests should be performed.
- High value documentation is maintained.
Pretty good list. I would add something about the bug backlog as well – perhaps a trending metric.
Not a bad idea, but I’ve lately been trying to figure out how useful trending is with bug trackers. I can’t think of a time where I used them for trending other than to show a general pattern on our TDD projects that we saw a very noticeable decrease in defects. Still the danger there is you can game bug tracking very easily. I’ve always used them, but in an Agile context you can often just track them on a card and leave off the official defect tracker.