Chris Donnan : Programming – Brooklyn Style
software, trading, family, fun
Managing a development team
Posted Uncategorized on Tuesday, March 28th, 2006.
Posted Uncategorized on Tuesday, March 28th, 2006.
Managing a development team is something that takes time to learn. There are a few key components that a team lead should manage to deal with on a daily basis. As a manager of software teams – you should be making sure that your team leads are doing these things.
Basic agenda
- Deliver working software as rapidly as possible
- Expect constant changes in:
- Requirements
- Dates
- People
- Don’t give features the users do not want
- Prioritize features
- Deliver iteratively
- Keep constant communication with all team members and the stakeholders
Team management
- Check task list progress
- Consider mentorship goals for team members
- Check software metrics
- LOC growth/ shrinkage
- Code Coverage
- Test suite status
Communication up the organization
- Communicate metrics, status
- Get directives, changes, etc
Communication with the users or user proxies
- Check in frequently with questions of details etc. Since we should be defering details to the last responsible moment – these chats are key.
Impromptu meetings/ Modeling sessions with dev team
- This is architecting as a group. Get a few folks to model out part of the software solution.
- Consider larger refactorings in concert.
Code Review
- Review developers work
- Review total solution’s integrity, isolate areas of concern
Pairing/ Solo Coding
- pull task from list
- Consider usage, write initial tests
- Write code to satisfy tests
Pairing Guidelines
- Alternate driving
- Switch pairs partners at least 2x per day
Coding guidelines
- Have a team code standard – enforce it
- Seperate interface from implementation
- Practice IoC
- Write side effect free routines whenever you can
- Name methods, variables and classes approprate to their tasks
- Makes classes for 1 purpose
- Make methods for 1 purpose
- Refactor code as you go
Unit testing guidelines
- Test everything – goal is to cover all code
- Only instantiate your ONE test class as a concrete class.
- All other classes that the CUT (Class Under Test) depends on should be mocked
Task guidelines
- Tasks should be less than 1/2 day in length – preferably much shorter
- Tasks should be detailed
- Tasks must reference the user story, use case, feature, bug etc that they address.
- Tasks must be executed in time boxes
Infrastructure/ Tools
- Make sure the team has the tools required – they are probably cheaper than more developers
- MUST HAVE INFRASTRUCURE
- Seperate development, QA/ UAT, Production environments (machines, databases, etc)
- Continuous integration process
- Source Control
- xUnit
- Wiki for team details
- Simple Bug/ Feature Tracking
- At least Simple Static analysis software
- At least Simple code metrics software
Comment on this post below
You must be logged in to post a comment.
You can leave a response, or trackback from your own site.







