The theme for much of the conference is Visual Studio Team System (VSTS). Improving Team Development, the session I am currently attending, is presented by Mario Rodriguez, the VSTS program manager at Microsoft. Note, while this is largely a Microsoft technology focused conference, most of the presenters are independent of Microsoft, and sometimes subtly vocal about Microsoft’s blunders, as they see them.
An ineffective team has some attributes:
-
Completes (works on) tasks with no business value
-
Divergent or incompatible agendas of the members
-
Incomplete or unknown requirements
-
Poor estimates, late delivery
-
Delivery of low quality software
-
Lack of defined roles of team members
-
Inability or poor team member communication
I have had the fortune to work on both successful and unsuccessful teams. I would agree with this list faults.
Success attributes include delivering customer value as the driver of a project; a top-down approach is constraining by focusing the team on a list of planned tasks. A top-down method is not a bad approach, but it is less efficient. By focusing on the customer requirements throughout the development process, you gain the following successful attributes
-
The customer can evaluate the deliverables
-
Quality assurance is embedded in the process
-
Eliminates process that deliver poor quality code
VSTS tools help produce quality code by enhancing, streamlining and enabling these attributes. Additionally, VSTS has Agile and CMMI templates, which are customizable. I agree with that, to a point. Having the tools available will help, and good tool integration will help a lot (I have to suffer with that where I work). Ultimately, the development team needs to work with these processes.