Cutter Consortium
19 February 2008

Promote Teamwork over Politics

Giving advice about the importance of teamwork is right up there with talking about the virtues of mom and apple pie. Yet, considering that 66% of development teams choose to work around their corporate data groups, clearly this isn't happening. It's no good having the best architecture in the world if the development teams aren't interested in it. Furthermore, an IBM study that looked into customer relationship management (CRM) projects showed that the primary success factors were business-oriented and cultural in nature and not technical [1]. We need to get the people issues right and, in particular, address the challenges around the cultural impedance mismatch if we're to have a chance at data architecture.

I suggest five strategies for improving teamwork:

  1. Build cross-functional teams. IT teams, in particular development and maintenance teams, should be cross-functional. Each team should have a variety of people from different professional backgrounds, including business stakeholders. Technical team members should ideally be people who are already generalizing specialists or at least willing to become so. A generalizing specialist [2] with one or more specialties, plus a general software process knowledge, plus a good knowledge of the domain that they're working in, plus a willingness to collaborate with and learn from others is far more effective. This is supported by Larry English's work in information quality transformation -- one of his 14 points is to break down barriers between staff areas [3].

  2. Promote non-solo development. Doing IT work is a lot like swimming; it's very dangerous to do it alone. Agilists have discovered that both quality and productivity increase when people work together collaboratively, often in pairs. Agile methods include practices such as pair programming and modeling with others to enforce this approach. When people pair together, and particularly when they swap pairs regularly, they learn new skills, get the job at hand done more effectively, and build better bonds with their coworkers.

  3. Promote training, education, and mentoring. One way to improve teamwork is to ensure that people have a wide range of skills and thereby can relate to the issues that their coworkers are focused on. When developers understand the fundamentals of data architecture, management, and governance, then they would likely recognize the value that data professionals have to offer and would more likely be able to find ways to work with them effectively. Similarly, if data professionals understood modern development techniques and methods, then they would be in a better position to work in a more responsive manner.

  4. Promote explicit team-building workshops. They're a bit goofy, but my experience is that workshops that are specifically focused on team building can work wonders (although I'm still not that sure about those exercises where you fall backwards into other people's hands).

  5. Break bread with "those other people." It's amazing how quickly you'll build bonds with someone over good food, good drink, and good conversation.

I welcome your comments on this issue of the Cutter Edge and encourage you to send your insights on the market in general to me at sambler@cutter.com.

-- Scott W. Ambler, Senior Consultant, Cutter Consortium

References

1. IBM Business Consulting Services. "Doing CRM Right: What It Takes to Be Successful with CRM." IBM, 2004.

2. Ambler, Scott W. Agile Database Techniques: Effective Strategies for the Agile Development. Wiley, 2004.

3. English, Larry. "The 14 Points of Information Quality Transformation." DMReview, November 2006.

Promote Teamwork over Politics