Featured Post

The great debacle of healthcare.gov

This is the first time in history when the president of the United States of America, or probably for any head of state around the world,...

Saturday, July 2, 2011

Managing a Software Development Team and its process

Managing a Software Development Team is different from Leading a Software Development Team. Here is how I differentiate Managing a Team with Leading a Team -

Leading a Development Team is a full time technical role to provide the team the right direction, best solution and appropriate guidance. This role requires a person with highly knowledgeable and skilled in technologies relevant to the job, and who can lead through example. Also can rolls up his/her sleeves to get to the solution when the team needs it.

Managing a Development Team is a blend of Management and Technical knowledge that provides a person to lead the team technically and orchestrate the team's development activity to achieve efficiency with the means of development process, tools, techniques and best practices. I'll explain the process, tools and techniques with example in the subsequent sections.

Here are the processes, tools and techniques:

1. Review the Requirement Specifications with the Full Team

Process: Team Review -> Feedback
Tools: Meeting; Review Feedback Document

2. Create the Draft Development Detail Plan and publish to the team. Review with the team members to firm up the work effort and Update the Development plan and publish the finalized plan

Process: Individual discussion to vet the work effort
Tools: Development Project Plan

3. Unit Testing

Process: create unit test scenario including regression test cases
Tools: Unit Test Cases documents

4. Peer Review: should review code, any technical specifications, unit test cases and test the functionality. The review should start with a one to one session between the coder and reviewer

Process: One-on-One review session
Tools: Peer Review Feedback Document

5. Sanity checking of deployed code - Have a sanity check list of all the high level functionalities and features that needs to checked before releasing to Testing Team

Process: Test in Development environment and Deployed environment
Tools: Sanity check result

6. Lesson Learned at the end of each Release (Retrospective meeting style discussion in Agile terminology)