Once the data is collected and the transactions are handled, reporting becomes the most important function in most computer business applications. Reports provide the information and analysis needed to make decisions. If the information is not available, or worse invalid, bad decisions can be made that wipe out the profits of 10,000 sales or cause a profit making division to be sold. At a lower level, the invoice that was just mailed might under bill the customer and the customer certainly is not going to volunteer to correct it. The data is usually in the computer, but most users can’t get it in the form that they need it without technical skills or the use of a programmer. Ad-Hoc reporting tools that let the end-users pull whatever data they need have been available for more than 20 years but have not been the panacea that was expected. That is not the fault of the tools or the people. The end-users changed from a rigid reporting paradigm to unfathomable chaos. Most are overwhelmed by the complexity and risks, so they do not use the tools. This article presents a agile solution called “Core & Options Reporting” that is understandable, eliminates the risks of ad-hoc reporting, can have some interesting side benefits for the organization, and requires less than one hour’s of training for the end-user. In the words of one accountant, it is “something that he has dreamed about”.
When people think of reports, they think of piles of paper coming off of a printer. I am going to define a report as anything presenting data from the computer where the recipient cannot use it to directly change the underlying data in the database. It can be in the form of lists or graphs displayed on a web page, saved to a PDF file, downloaded to a file or Excel, or it can be sent to a printer in the normal way. Each report is usually created from one computer program.
Custom computer programs are expensive whether a professional programmer writes it or an end-user uses an ad-hoc reporting tool. One may not be available and the other incurs additional risks. Filters have been used to make reporting less rigid. They limit the quantity of data, such as sales by one sales person or to one customer. They can be hard-coded into the program or selected by the end-user when the report is created. They have reduced somewhat the number of report programs needed.
However, there is still a tremendous pent-up demand for reports and frustration is high. The Core & Options paradigm increases the number of reports and web pages available to the end-user while reducing the number of computer programs that need to be written, thus reducing development and support costs. It is based on the fact that many reports are similar except for a couple of columns, sorts or totals (see box #1). Using the Core & Options paradigm, the programmer writes the 90% of the program that contains the core and all of the formatting. The user selects options when they request the report. The program receives the options, finishes writing itself, and produces the report. If specific reports are run overnight, the scheduler will send the options when it runs the report.
This sounds similar to OLAP cubes, and it is. However, the OLAP methodology usually uses an extract from the live database and is targeted for strategic users (see box #2). Tactical users need live data and do not have time to wait for the cube to be updated. Also, cubes take a lot of programming effort to set up and the number of dimensions, which is equivalent to options, has a practical mathematical limit. It takes a lot more effort to add a dimension after the cube design is set. An option can be added to a list for the web page and it is propagated automatically to the report without any additional programming. Finally, well-written Core & Option reports can pull data from cubes, reporting databases or transaction databases.
Management has been well aware of the problem for years. The technologists have said, “Reporting is easy. Use Excel, Access, FOCUS, Business Objects, Crystal, SAS, Business Intelligence tools, etc and the users can create their own reports. This will free up programmers to do more important things”. Well, it hasn’t worked! Often, users are expected to learn the tool by reading manuals or going through an on-line tutorial. Training, if provided, usually covers the use of the tool, but not the data. For most users, this introduces some very real and potentially damaging risks.
The most common risks fall into four categories:
Core & Option reports transfer the risks to the programmer while providing the power and flexibility to the end-user. The programmer already understands the complexity of the data structure and its relationships. The programmer can have indexes added to the databases to improve the load on the servers and do other things in the background to improve efficiency. And finally, it is the programmer’s job to insure that the reports are correct. However, a large number of options can make a report unwieldy and undermine the efficiency efforts. The programmer and business champion need to work together to keep the list at a reasonable, but meaningful, level.
The report development function itself can have a positive impact on an organization. Most IT departments are organized in a hierarchal structure based on applications or technology. Both structures promote silos. DBA’s may understand the data structure behind the applications, but are unlikely to understand the impact of the data itself on the business. An application specialist may understand everything about their specific piece of the application, but do not know how that piece fits with other parts of the business. The Business Analyst function was created to span the gap, but it is frequently at either a more theoretical level or at a narrow, detailed level. Reports, however, frequently combine data from more than one application.
The hierarchal staffing structure does not support combined reports very well. When one application is driving the report, the other application may be changed without the first group being notified. Also, the person supporting the report may also support transaction processing and the report may have a much lower priority when there are conflicting tasks. Since reports have such a large potential impact on the business, IT management should consider creating a reporting team or department.
A reporting team can provide a lot of benefits to both IT and the business community – if new reports can be turned around quickly enough. If assignments and production support are distributed uniformly throughout the team, the reporting team can provide continuity and breadth of knowledge about the business that may not be available in other specialties. They would understand the databases, data flow, application relationships, processes, and the impact of the application on business. With this much knowledge, the reporting team can become proactive. They can suggest new reports instead of waiting until someone requests one. This places the burden on management to recruit members who can understand many business situations and has the background to be proactive. Also, team members must have empathy with their customers.
Core & Option reporting can be done with almost any tool. However, some are more difficult to use than others, thus increasing development and production support costs. In the opinion of the author, Java, ASP, VB and similar languages are not much different than COBOL on the mainframe, when creating reporting applications. They cannot finish writing themselves without a lot of effort. Self-building reports require an interpretive reporting product.
There are some products on the market that can provide nice reports with drilldown capabilities. They have OLAP interfaces that can bounce around the data, if the data source is designed with them in mind. However, programming is expensive and delay is even more expensive. In the author’s experience, the average time for developing a report from concept to user acceptance testing, with a web front end to collect the options and filters, is about three workdays, assuming prior knowledge of the data source(s) and having the right tools. Sometimes, it is much faster than that. A good 4GL reporting tool with OLAP capabilities can make that possible.
With that in mind, the author requested a proof-of-concept (POC) from a vendor to prove the Core & Option capabilities. They had to create three main reports and two graphs, ranging from simple to complex, small and large data sources, single and multiple tables, changes between yesterday’s and today’s dollars, and with drilldown capability to supporting detail reports. A sample Core & Option web page, which was already tested, was provided for the front end. When complete, the POC had to use the production databases for the demo to the VP’s. The vendor’s consultant was allowed four days to complete the task, which he did. The VP’s were all discussing “Core & Option” reporting as they left the demo.
Like everything else in life, a task is always easier with the right tool. A programming language will suffice, but they take a lot of time and require a lot of code. They are also hard to maintain. OLAP tools using data cubes appear to provide the required flexibility, and they do as long as you do not want to make any changes to the source data cube. The flexibility is in the user interface while the back-end data source is very rigid. A lot of costly programming is required to change it. However, some reporting products use virtual cubes. They provide the OLAP capabilities while maintaining their flexibility.
Change is the driver of business today. If an organization is not agile enough to adapt to the changing environment, they will lose customers and be out of business. Having the right data, at the right time, in the right form is the key for making the right decisions. Core & Option reporting is a simple solution for doing that. End-users should be limited by the data that is available, not by the tools for pulling it out.