There's a bevy of literature on building high performance teams but little that is specific to the process of building high-performance Software Development teams. While it follows that an IT Team is a Team and the building of such team is governed by the same best practices/gotchas/motivations, there are specific due to the nature of the beast that must be called out. In a multi-part series, I'll be addressing the specifics of building a high-performance IT team. This first post will be the abstract (dare I say "Vision"?) that will be executed against with subsequent posts.
The common threads are the establishment of a clear vision, the formation of a plan of action to achieve the vision, resourcing (people and tools) of that plan, execution of the plan and instrumentation (are we making progress?). Prerequisite to all of this is that Senior Management values IT as a strategic partner (does IT have a seat at the prioritization table?)
The large differences?
Vision Alignment - Software Teams are not solving daily challenges as much as they are building a foundation for the vision laid out by leaders. Establishing Architecture and Methodology and selecting the right technology components are extremely important to this. If team members are focused only on demonstrated that their implementations meet with established guidelines and best practices (rather than adhering to Object-Oriented principles of functional cohesion, modularity and reusability), you will bog down into the minutiae that DOES NOT drive a team towards the vision.
Plan of Action to implement vision = ROADMAP. Without a roadmap, your team will drive at the whims of various business stakeholders whose minds will flit to the next shiny object if you don't show them a) what they've asked for before and how you've considered that in your vision and b) when to expect change to occur and what levers to pull should they wish to change those priorities.
Resourcing - At an organizational level, understanding your needs and staffing appropriately ensures flexibility and skill-set maximization. The best IT teams don't have 5 people all with the same skills, but instead have areas of intersection as well as areas of specialization. At a project level, the Project Management Institute (PMI) cautions against the application of more resources to critical path tasks late in a project. This WILL delay the project (unless you've convinced everyone working on the project that 16 hour days are reasonable, in which case there is no calendar delay but there assuredly is impact). In addition, providing the right tools are critical in advance of the project. This means Intelligent Development Environments, Modeling, and communication tools are part of the plan and budget of a project.
Executing against the plan requires good project management, and good IT project management means selecting the right components that can bundle together to make for effective deliveries (this does NOT mean Waterfall Methodology is required, just that you have a target and you develop iteration plans to hit that target). Ensuring that these are built in a modular and reusable way goes back to Vision Alignment.
Finally, instrumentation of your program. How well are you executing against the plan to achieve your vision? As a team? Individual team members? How do you know what success means in this? In IT, various measures exists to gauge quality of delivery (defects per line of code, cyclomatic complexity, [squishy] maintainability). What are you using and why?
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment