Since Microsoft Office SharePoint Server is a mature platform for collaboration, content management and portals, companies can implement the package without much planning or even requirements gathering. Too often, the IT department is assigned the task of technically implementing SharePoint, with little context for its use or its potential value to the organization. The individuals in Business Units or Departments, who will use the system, are kept in the dark about the plans and the functionality of SharePoint. Once IT is satisfied that MOSS is technically stable, it rolls the package out to users with little training or follow-up. This approach rarely succeeds.
In this post, I want to examine how to set the foundation for a successful SharePoint implementation by starting with a clear understanding of user requirements and the business results stakeholders want to achieve. Governance, Site construction, etc. can wait until there is a base level of understanding of the business objectives and user requirements.
Requirements analysis is a standard process step in the software development lifecycle. Usually, developers, who are assigned requirements gathering, are unfamiliar with what actual users need from applications. Various methods have evolved over time to extract system and user requirements from business people. Historically, this has involved a slow process of interviews to discover the user’s real business needs. Hard working developers struggle to craft requirements from their interviews, but lack the understanding or a common vocabulary to ensure that they capture the user’s real needs. To futher complicate matters, most MOSS 2007 functionality is preconfigured. The most important requirements involve the ways that information is organized and presented based on user tasks: information architecture, content types, metadata, search configuration, and site navigation. SharePoint has many “out of the box” extensions to meet these common user requirements. Unfortunately, for developers, this means MOSS 2007 needs configuration rather than development.
Two software development methods that can be used simultaneously to make requirements analysis more effective are Agile and Lean. Agile software development methods seek to overcome the lack of actionable requirements by involving users directly in the development process, getting feedback immediately and making sure there is a constant conversation with users. Agile methods seek to quickly deliver functionality to users from which they can get immediate feedback. Lean is focused on eliminating rework and failures that can result from miscommunication between users and developers. Together these methods can be used to involve users, accelerate the project and eliminate wasted effort.
The following diagram presents an example of a requirements gathering process that is fast and focused. It involves users and quickly iterates toward confirming and testing requirements (rather than leaving testing to the last step):
Here are some insights learned from using this process:
· Educate real business users on MOSS functionality; discuss their role in the project.
· Check back with users as often as possible, your understanding of their requirements will only improve.
· Time box collaborative work sessions and interviews, too much time enables users to specify too many non-value added requirements.
· Publish requirements in a Wiki and encourage user review and editing.
· During the design phase, make low fidelity sketches of your understanding of the system and user requirements, encourage users to make sketches to improve the model. Talk about your questions with users and strive for clarity.
· Before coding, if feasible, conduct a conference room pilot in which the application and business processes are simulated on a table. Users can see the potential pages, the workflow, and logic of the system and can make changes before any code is written.
This process can result in a deep understanding of user requirements and the business problem to be solved. After this, the MOSS implementation team can begin to implement SharePoint using Agile techniques that encourage fast turnaround of useable functionality.