It probably goes without saying that BI and data warehouse projects can be very complex. Taking a bottom up & agile approach breaks the larger goal into manageable pieces, i.e. reports and data marts. It is the job of the implementation team to make sense of vague business requirements and determine how to fulfill the requirements using source system data which often has a variety of issues. There are three pieces of essential information that should be well understood before development begins. Requirements – What is the goal? There is no substitute for solid requirements. Nobody likes doing a lot of documentation, but this is one area that a brief and to the point requirements document is pretty much essential. Agile projects will break this task into manageable chunks based on the the current iteration’s deliverables. Good business analyst skills are important to ensure that business goals are well understood and documented. The Data Model – What are we building? With a good understanding of the requirements we can begin figuring out how to best deliver a supporting solution. This often means that source systems need to be researched and definitions need to be validated. With the source system knowledge and requirement in mind we can design a data model that will support reporting. Visio or Erwin are great tools for the job. ETL Flow – How do we get from source to target? Once the source system and target data model are understood the next logical step is to determine how to fill the gap. An ETL flow diagram describes how data will be migrated, helps identify potential issues, and assist in architecting an efficient process. There is nothing like writing something down to force us to get crystal clear about how a task will be completed. With these three pieces of documentation developers have the tools needed to create a data mart that supports reporting & analytics requirements.