Performing a requirements analysis is critical to the success of any project. Without a clear goal in mind, success is dubious. There are a number of different philosophies about requirements analysis: top down, bottom up, inside out, etc. The following steps work fine in analysis of data warehouse rtequirements:
- Clearly state the problem(s) you wish to solve.
- Identify all data sources and formats.
- Identify the users of the completed system.
- Formulate a specific budget - time, money, personnel.
- Ask identified users to specifically state what they expect the system to do.
- Ask management to specifically state their success criteria.
- Separate their requirements from their "desirements." Only design to requirements. The enhancement phase is where you address the "desirements."
- Group and "bubble-up" requirements.
- Generate a prioritized requirements table listing the requirement, where it came from, the success criteria, and priority. Keep this table high-level. A table with a dozen requirements will be much easier to manage than one with hundreds.
- Produce a detailed development schedule including hardware, software, personnel, documentation, and reviews. Include outsourcing requirements and long lead-time items.
- Get a sign-off of the requirements, resource allocation, and schedule from top management before you go any further.
Information and Data modeling, along with the definition of the metadata, is the single most important activity in the design of a data warehouse. If this step is done correctly, success is almost ensured. If not, then areas such as flexibility, scalability, and usability will suffer. Information modeling is best left to the experts.
There are many design methodologies. Rapid Prototyping should be used for small to medium projects, while Structured Development is suitable for large or very complex projects.
Development & Documentation
Once the requirements analysis is well underway, the prototypes are working, and the focus groups are becoming happy, it's time to begin the development. Coordinating hardware and software purchases and upgrades, server and hardware installation, software and database development, documentation guides and manuals, reviews, and testing can become a full-time job. The key to keeping a handle on all of this to maintain a good written schedule that everyone can view and to have periodic "all-hands" reviews.
Test & Review
Testing and Reviews take place throughout the development cycle, including prototyping, development, deployment, operations, and enhancements. It never ends. It is critical for developing a system that works and meets each of the requirements. Testing is time consuming, tedious work and preparing for reviews and analyzing results can take much longer than you might think, but it can catch most problems before they become too big.
Deployment & Training
Once the development is complete, quality assurance is satisfied, the documentation is ready, and all the "off-the-shelf" products have arrived, it's time to put everything together. This can be a highly disruptive time. Make sure that you have full management support and that they understand the nature and effect of the installation and deployment disruption. Scheduling training sessions concurrently with the installation can be an effective use of time. The best way to ensure success is to effectively train the users so that they will actually use the system and possibly sing its praises. Training is ongoing. Each time enhancements are added or new user is appointed, new training sessions must be scheduled.
Data warehouses usually contain two or more servers. Tasks such as backups, bug fixes, software updates, hardware maintenance and upgrades, media services, account maintenance, security patches, and other similar tasks must be performed regularly. Operation and maintenance of such services requires an operations staff.
There is always one thing you can count on: "Requirements Creep." The more successful the data warehouse, the faster requirements creep will occur. Make sure that you have designed in the ability to add features from the very beginning. Remember to design in scalability and flexibility at all phases of development.
A knowledgeable, available, responsive help desk is critical to the overall success of the project. Users will always find new uses for a well-designed system and problems will inevitably occur. Without a help desk, a data warehouse can become dated and under-utilized. Deployment of an excellent support team is the single most important function that ensures the continued success of a data warehouse.