Sunday, July 22, 2007

The Two Solitudes

For several weeks my colleague David Marsh and I have been discussing the work we do with SharePoint, what the impact of it is, and where web development trends are heading. One topic that kept being raised was the arrival of a new shared development model.

Often our work in client projects involves acting as a sort of intermediary between the Information Technology team (whatever its precise title) and the End Users - what you might call the "Two Solitudes". I don't mean to suggest that these two broad groups are in conflict with each other - simply that they have distinct perspectives that are not always reconciled.

In most companies, the IT team has long had the primary responsibility for building and maintaining software. As a result of recent web technologies and trends, end users have been handed powerful new tools that make them de facto software developers. However, they are still in the habit of turning to IT whenever there is a problem. IT for its part has difficulty tracking what end users have done and also faces increased complexity managing the runaway adoption of collaborative software for blogs, wikis, and chat.

SharePoint 2007 is a perfect example of this challenge. It is intended to reduce the burden IT has to face, and it does this very successfully. The IT team is no longer a bottleneck when an end user with "Contribute" or "Manage lists" permissions can create lists, upload content, manage group membership, and add, modify and delete web parts at will. End users can even use SharePoint Designer to modify the look and feel of their sites. However, there are still times when they run into problems - if they delete or incorrectly modify a site for example or have problems with a DataView web part. In such a case there is no history in SharePoint Designer, and IT will have a very difficult time responding.

Also, even when all goes well, there is a management issue. The ability to assign metadata and provision sites at will is fine in the abstract, but it sidesteps the valuable practice of researching and planning the business requirements - something that IT knows how to do as part of the software development life cycle. SharePoint's ease of use makes it mighty tempting to act in haste and repent at leisure.

Nobody wants to turn back the clock - and the present trend of shifting development responsibilities towards the end user (whether in SharePoint or any other recent technology stack) is only going to become more pronounced.

So it is important to identify ways IT and end users can share the development mantle. I think there are four major "virtues" required to overcome these challenges and share the development role:

  1. Discipline
  2. Vision
  3. Communication
  4. Leadership

By "Discipline" I mean the effort required to understand how the technology works, what its potential is and what limitations it has. It also describes the effort needed to adhere to the governance guidelines, any development standards that are in place, and industry and community best practices.

"Vision" provides a road map for IT and End Users to understand where they are heading collectively. Without a shared vision development is inherently tactical and aimless.

"Communication" is necessary because without it IT and end users have no realistic chance to pull in the same direction, even if they are disciplined and share the same vision. The old saying, "the left hand doesn't know what the right hand is doing" leaps to mind.

The previous three virtues are unlikely to spring up and be sustained without the fourth virtue - leadership. Leadership is necessary at all levels: Power users have to champion the use of the software and encourage their coworkers to use it. Managers need to allocate the time (and budget!) to leverage the technology most  effectively. Finally, the executives need to agree that the technology can be a multiplier of their success, and they are the ones who need to put the main impetus behind it to get buy-in from the rest of the business.

These four virtues have to be cultivated and will only become more important over time as the shared development paradigm takes hold in the business.

"Friendly brokers" will gain importance over time, too. These will be people with technical skills who can speak to the end users. They will help end users understand how the development process works, what the software life cycle stages are, how to gather and communicate business requirements to each other and to IT. Friendly brokers can help IT accept that these end user-developers are removing some of the burden from their shoulders.

The end result is a development partnership that benefits everyone.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.