There is a very good blog entry located here which lists questions every development team and team leads should ask themselves during development cycles.
From the article:
- What can we automate?
- where are we "Reinventing the wheel"?
- what are the tools that slow us down?
- what tools can we use better?
- are there bugs that I could have found earlier? how do I make sure I find them earlier?
- when do we find out we built the right thing?
- when do we find out our code\design sucks? how can we make that earlier?
- How do we show progress at the team level? at the management level?
- How many meetings does each dev have every week? how can we remove them?
- Are we building by feature or by layer?
- can we make all our team sit in the same place?
- daily: what bottlenecks exist in the team? what have I solved?
- will my devs be better in a month or two than they were before? if not, how do I make that happen?
- what prevents my devs from working? what am I doing about this?
Some of them are very useful, but I thought I’d expand on the list from my own experiences:
- What is our focus this week?
- How do we effectively communicate who is doing what?
- Do we have any change requests or outstanding requirement clarifications?
- Can these be satisfied in a reasonable time frame?
- Are we ‘on track’ to meet agreed deliverables?
- How can we make our work more visible & available to the customer(s)?
- What resources (physical/technical) do the team require? Are they available/scheduled?
- Do we have any ‘single points of failure’? If so, how can this be mitigated?
- Are client expectations being met? If not, what can be changed to fix this?
It’s really important to understand what is a “team responsibility” versus a “team lead responsibility”.
Some forms of Agile development practice make this a little unclear, but in my experience, someone needs to be responsible for ensuring team goals and responsibilities are being met on a weekly (or daily) basis.
Some of this could be shared by a project manager as well as a team lead/architect, but the important take away is to ensure someone is asking these questions on a regular basis. Keeping client expectations in mind is a critical step.