The rush of getting a website to market in the ever-evolving Web 2.0 business landscape more often than not means web projects get initiated without thorough pre-planning. The pre-planning process is known by web developers as "requirements gathering". For those reading that aren't quite sure what requirements gathering means, here's how Wikipedia describes it. Their description is pretty technical. The watered down definition of requirements gathering would be "gaining an understanding of how a website needs to work in order to fulfill its purpose."
That's a pretty loose definition, but when undertaking the exercise of gathering requirements, it helps to start with a loose vision. Jotting down a bulleted list of features on a piece of paper is a great start. Once the list is complete, it can then be further enhanced, with each bullet being expanded into a new set (or sets) of feature descriptions. The idea is to start with a macro vision of how the site needs to work and enhance it until you can describe features at a micro level.
Businesses wanting to build their sites in Drupal can get a leg up in the requirements gathering process by familiarizing themselves with Drupal basics. Understanding how Drupal works at the beginning of the requirements gathering process will help stakeholders better envision how Drupal can fulfill the goals of the site.Important topics that stakeholders should address when gathering requirements are:
- Who will be using the site and how will different users need to interact with the site? This addresses the concept of user roles.
- How do I want to organize the site's content? How can Drupal's taxonomy system be used to categorize content?
- Does the site need to give users the ability to submit their own content, such as comments or blogs?
So what happens when requirements aren't defined before the start of a project? Two ominous words that cause client and developer to cringe, "scope creep". The scope of work that was initially estimated for the project suddenly begins to grow because unknown variables that couldn't have been anticipated without well documented requirements begin to surface. These variables can include project management time needed for determining decision making or the introduction of new features into the project plan. Simply put, the size of the project often snowballs out of control, adversely affecting the client's budget and the developer's production schedule. Detailed requirements gathering helps to minimize scope creep and keep the hours budgeted for the project closer to the original estimate.
When approaching a web development firm for a project estimate, the firm will be able to price out the project with much more accuracy when site requirements are well defined. Imagine going to a construction company and saying "I want a house, how much will that cost?". You'll be lucky to get a response that doesn't include a sarcastic chuckle ;) Just remember that gathering requirements is not an exact science but more an art form and the more detail, the better. For more on the art of requirements gathering, check out Martin Bauer's Requirements Gathering Essentials.