A data warehouse can be time-consuming, costly, and complicated to create. However, it can also prove to be a very valuable asset to an organization, so as a data warehouse designer, it is worth your time to do the job right.
To ensure a successful implementation, your first (and most important) step is to gather the users’ requirements. Without a clear understanding of these requirements, there is no point in going ahead with the project. Gathering information about what it is the users really want and need can be broken down into the following steps:
1. Discern the organization’s requirements as a whole.
2. Discern its need for a data warehouse.
3. Gather the users’ requirements.
4. Map the users’ requirements to the available data.
5. Perform gap analysis.
What the Organization Needs
To gain an overview of the organization’s requirements, you should provide end users with a data warehousing questionnaire, the purpose of which is to gather the following information:
An overview of the company. This section should provide details about the organization’s size (the number of employees and locations) and contact information, its awareness concerning data warehousing, and whether it uses any business intelligence (BI) tools.
Data warehouse project details. This section should be designed to give you a sense of the data warehouse the company wishes to create and should provide answers to the following questions:
• Does the organization want to create a global data warehouse or a departmental datamart?
• How many legacy systems will be used in creating the data warehouse?
• How many online transaction processing (OLTP) files in the legacy systems will be used in creating a single data warehouse file?
• Will external data sources (such as Excel spreadsheets or flat files) be used in populating the data warehouse, and, if so, how many?
• What is the availability of documentation, such as user manuals and database design documentation for the legacy systems?
• Will available documentation reflect the customizations and modifications that have been made to the legacy systems?
• Will the data warehouse be implemented at multiple locations?
• Will the data warehouse need to be Web-enabled so that the organization’s branch offices can access the data warehouse from their various locations?
• What is the expected duration of the data warehousing project? Legacy application system details. Through the questions posed in this section, you should try to obtain information pertaining to each legacy application system that will be used in creating the data warehouse files. Make sure that you ask the following questions for each legacy application:
• On which hardware platform does the legacy application reside?
• What is the software used for developing the legacy application?
• What is the operating system used for the legacy application?
• What is the number of modules in the legacy application?
• What is the size of the legacy application (its number of files)?
• What are the sizes of the files in the legacy application?
• Does the legacy application reside at multiple locations?
• Is the legacy application maintained at multiple locations?
• Is the legacy application Y2K-compliant?
Is a Data Warehouse the Answer?
After carefully going through the completed questionnaire, the data warehouse development manager should meet with the organization’s management so that, together, they can decide whether creating a data warehouse is appropriate. Among the topics you should discuss at this stage are what the organization hopes to achieve by creating a data warehouse and what the critical success factors are for the project.
Then, if it is determined that going this route provides a proper fit for the company, you need to ascertain which departments are actually going to use the data warehouse and the level of interaction between the departments. You will also need to ask whether an online analytical processing (OLAP) tool will be used for accessing the data stored in the warehouse and, if not, how the results should be presented to management (as reports, charts, graphs, and so on). And finally, you must gain an understanding of the skill and knowledge level of the end users.
What the Users Need
After you have obtained a general understanding of the organization’s requirements, you will need to determine the requirements for the data warehouse itself. This phase is usually the most difficult because users are often unable to come up with a clear idea of what it is they really need. However, you can use several techniques to gather this information.
For example, the data warehouse design team can sit with those who are actually going to use the data warehouse and, through a series of discussions, work together to come up with a set of requirements. Each user’s requirements should be carefully documented and, at the end of the discussions, the design team can prepare a consolidated list of requirements. You can then present this list to management for its approval.
If you are unable to come up with a set of requirements after meeting with the users, you can then use this alternate approach: Present the users with a possible set of requirements that the data warehouse design team has drawn up. To take this tack, however, the team will first have to understand the database design of the legacy application systems. With this thought in mind (and at the time they are studying the database design of the legacy applications), the data warehouse designers should remember the following points:
• A single data warehouse file could be based on files that reside in more than one legacy application. Therefore, the relationships between the files in the legacy applications should be established.
• You will also need to be able to segregate the files based on their information content.
The existing reports and queries that are generated from these systems should be studied in detail. Such reports will assist the data warehouse designers’ understanding of the current practices that the organization follows. Using this information, the design team will be able to come up with a possible set of requirements and present them to the users.
Usually, you will employ a combination of the two methods I’ve described to gather the information you need. But no matter which technique you adopt, this phase should be carried out slowly and carefully, and you should make very clear (right to the end of the project) what will actually be obtained from the data warehouse.
Making Maps, Closing Gaps
After arriving at a set of requirements for the data warehouse, the design team will have to analyze the information it has gathered. You will need to determine if the users’ requirements can be met with the available data. To do this, you must map the requirements to the database design of the legacy application systems. If you find that the necessary data to fulfill the users’ requirements is not available in the legacy application system, you will need to carry out a gap analysis to find alternative solutions.
In the course of mapping the requirements with existing data, you may find that certain requirements cannot be fulfilled. In such cases, the gap between the users’ requirements and the available data will have to be bridged. I offer two solutions to this problem.
First, extend the scope of the data warehouse. You may find that for some requirements, the necessary data resides in legacy applications that are not included in the scope of the data warehouse. So, to meet these requirements, you will need to broaden the reach of the data warehouse.
If, on the other hand, the data that is required to meet the requirements is not available in any of the legacy applications, then the design team will have to search for external sources (such as Excel sheets) that may contain the required data. You can then use these external sources for creating the data warehouse.
The findings of this “gap analysis” stage will have to be documented and discussed with management. As a result of these discussions, some of the requirements may be dropped or modified, or the scope of the data warehouse may change.
Living Up to Expectations
At the end of requirements-gathering process, the data warehouse design team and the organization’s managers should meet and finalize the set of requirements for the data warehouse. You should finalize the requirements before starting the creation of the data warehouse files. If you do not, it is quite possible that, at the completion of the project, management will say, “This is not what I expected.”
Even though gathering requirements is time-consuming and unglamorous, the effort you put forth in this stage will form the basis for a successful data warehousing project. Without this forethought, changes in the requirements specifications will no doubt occur during the course of the project, and mid-project changes, as I’m sure you are all aware, greatly increase the possibility of failure.