Top Banner
Portfolio Tim Mills-Groninger 219-616-5886 [email protected] Overview Business Intelligence is the measure of an organization’s ability to make fact -based decisions utilizing one or more trustworthy data sources that can be stored and transformed in a way that makes information available when needed at the appropriate level of detail. This portfolio is a sample of BI projects and methodologies. Requirements Analysis Project lead or team member on numerous business process reengineering projects employing a flexible methodology of 1) establishing ground rules and a common language, 2) mapping the environment including SWOT analysis and resource inventories, 3) Buy v. Build review, 4) implementation, and 5) periodic return to step 1. Exhibit 1 Page 1 of a requirements document and glossary of terms for a database project to manage client tracking at an agency serving children from pre-school through college graduation. When no commercial applications could meet the project requirements I led the team that built a custom MS Access application deployed via Citrix to seven locations. The requirements document has been modified several times since the initial deployment and remains the primary resource for system revisions and enhancements.
12
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Portfolio

Portfolio Tim Mills-Groninger

219-616-5886 [email protected]

Overview Business Intelligence is the measure of an organization’s ability to make fact-based decisions utilizing one or more trustworthy data sources that can be stored and transformed in a way that makes information available when needed at the appropriate level of detail. This portfolio is a sample of BI projects and methodologies.

Requirements Analysis Project lead or team member on numerous business process reengineering projects employing a flexible methodology of 1) establishing ground rules and a common language, 2) mapping the environment including SWOT analysis and resource inventories, 3) Buy v. Build review, 4) implementation, and 5) periodic return to step 1. Exhibit 1 Page 1 of a requirements document and glossary of terms for a database project to manage client tracking at an agency serving children from pre-school through college graduation. When no commercial applications could meet the project requirements I led the team that built a custom MS Access application deployed via Citrix to seven locations. The requirements document has been modified several times since the initial deployment and remains the primary resource for system revisions and enhancements.

Page 2: Portfolio

Mills-Groninger -2- Portfolio

Key outcomes of the RA phase were:

Trust and high-bandwidth communication between client and consultants

Business-process document that internal management and SMEs can agree to (and sign off)

Resources committed to develop feature lists and comparison chart for product evaluation

Application Development

Primary developer of complex database solutions using MS Access/SQL with extensive VBA. Team member on Oracle and SQL Server projects. Utilized a template approach to common business problems to reduce development time and simplify long-term maintenance and support. Exhibit 2

ER diagram of a client tracking application originally deployed in 2005 and still in use. Data are highly normalized with referential integrity. Granularity is a transaction level, allowing data to be rolled up for a variety of reports.

Exhibit 3

ER diagram of a CRM application in use from 2000 until the present that tracks individuals and organizations along with consulting and training histories. Numerous agencies use versions of this application and it has become the de facto standard among nonprofit management support organizations. The application can track multiple individuals between organizations with roles ranging from employee to board member to consultant. It includes a comprehensive training tracking component that publishes training opportunities to the web and tracks registrations, payments, and attendance. The most critical feature is the ability to manage multiple consulting projects with a client and produce monthly statements and invoices drawn from daily employee and contractor time reporting.

Page 3: Portfolio

Mills-Groninger -3- Portfolio

Exhibit 4

ER diagram of a staging area for a labor/construction analysis project. The design is optimized to receive data from multiple sources, including Excel and CSV, via SSIS and then to be transformed into an OLAP cube via SSAS.

EmployeeRatesEmployeeRatePK

EmployeePK

HourlyRate

EffectiveDate

EmployeesEmployeePK

FirstName

LastName

EmployeeFlag

FullName

CellPhone

JobMasterJobMasterPK

Description

ClientPK

ClientJob

MaterialMarkupPct

AdditionalOverheadPct

JobClosed

JobClosedDate

JobCreatedDate

JobMaterialPurchasesJobMaterialPurchasesPK

JobMasterPK

MaterialTypePK

PurchaseAmount

PurchaseDate

SalePoint

JobTimeSheetsJobTimeSheetsPK

EmployeePK

JobMasterPK

WorkDate

HoursWorked

MaterialTypesMaterialTypePK

Description

OverheadOverheadPK

Description

OverheadRatesOverheadRatesPK

OverheadPK

HourlyRate

EffectiveDate

UseEmployeeFlag

UseContractorFlag

InvoiceReceiptsInvoiceReceiptsPK

InvoicePK

JobMasterPK

AmountPaid

ReceiptDate

InvoicesInvoicePK

ClientPK

InvoiceNumber

InvoiceTerms

WorkDates

InvoiceDate

InvoiceXJobMasterInvoiceXJobPK

InvoicePK

JobMasterPK

InvoiceAmount

AdditionalLabor

CountyCountyPK

CountyName

DivisionPK

ClientsClientPK

AccountNo

ClientName

ProjectManager

CountyPK

ClientImage

ClientGroupingPK

Page 4: Portfolio

Mills-Groninger -4- Portfolio

Data Warehouse and ETL with SSIS

Consolidated multiple source datasets into unified OLTP environments using SQL and SSIS. The

client maintained source data in Excel time sheets, a proprietary package that could only export to

CSV, and a more traditional OLTP environment. The master package shown in exhibit 5 optimizes

the use of multiple processors to execute non-dependent packages simultaneously. Similarly, other

packages use a strict hierarchy to insure that all entries are valid prior to posting.

Exhibit 5 SSIS Control Flow that processes multiple packages on a regular schedule, creating new or updating existing records as required. Once data have been appended the source files are moved to the processed folder for archiving. After the packages have executed the destination database is backed up and reindexed.

Page 5: Portfolio

Mills-Groninger -5- Portfolio

Exhibit 6 Singe package to read changes to employee pay rates as kept in an Excel file. The package checks if the source data contains new or existing records and inserts or updates as needed. Upon completion the package produces an email with record counts for the different conditions.

Exhibit 7 Converting Excel data to SQL takes special care to insure that the Excel data is cast to the matching SQL data type. Naming conventions insure that converted columns are easily identified downstream.

Page 6: Portfolio

Mills-Groninger -6- Portfolio

Exhibit 8 Lookup EmpRate validates the existing employee number to check if this is the first pay rate record for a new employee. Match output validates the current pay rate, while no match validates that employee exists and if not, creates a new employee/rate record which maintains a slowly changing dimension. The example shows the update expression where the hourly rate is being reset for an existing effective date – while this a rare condition, the client wanted a robutst solution that anticipated uncommon but possible situations.

Exhibit 9 C# code used in various SSIS packages. This example conditionally parses a possible middle name from the firstname string: (DT_STR,50,1252)(FINDSTRING(firstname," ",1) > 1 ? (SUBSTRING(firstname,(FINDSTRING(firstname," ",1) + 1),LEN(firstname) - FINDSTRING(firstname," ",1))) : "")

This example assembles the variables used in the package and creates the body for an email: "The Employee Insert/Update process is complete." + "\r\n" + "\r\n" + "Total # of rows processed: " + (DT_STR, 10, 1252) @[User::uTotalRowsRead] + "\r\n" + "Total # of rows inserted/updated " + (DT_STR, 10, 1252) @[User::uRowsUpdated] + "\r\n" + "Employee records ignored: " + (DT_STR, 10, 1252) @[User::uRowsIgnored] Data Inquiry and Manipulation with SQL Tool

As an aside, it is interesting to note how many different ways there are to insert a carriage return/line feed combination in the BI stack.

Page 7: Portfolio

Mills-Groninger -7- Portfolio

T-SQL, Access, Oracle

Extensive experience in using SQL for production systems and ad hoc investigation. Tools used

include the surprisingly powerful GUI in MS Access as well as Toad, and SSMS.

Exhibit 10 Stored procedure returning a specific vendor, all shipping methods used, and a summary of financial data for transactions in a certain time frame. The stored procedure simplifies subsequent code and improves maintenance; any changes to the stored procedure are immediately reflected in all scripts in which it is referenced.

Exhibit 11 SQL fragment which takes user input from a form and includes selected criteria as well as “and” or “or” conditions and inserts the results to a temporary table for further manipulation or as an email merge source.

Page 8: Portfolio

Mills-Groninger -8- Portfolio

OLAP and MDX

Utilized data warehouse to create OLAP cubes that served as data sources for SSRS, PPS, and Excel reporting. Exhibit 12 Cube diagram showing dimensions and facts for the labor/project tracking application referenced in exhibit 4.

Exhibit 13 Calculations portion of the a cube showing how the member avoids a divide by zero error.

Page 9: Portfolio

Mills-Groninger -9- Portfolio

Exhibit 13 Calculated member which filters to show quarters with a labor cost greater than zero.

Reporting Environments

Familiar with reporting platforms including MS Access, Crystal Reports, Excel, SSRS, and PPS. Project included production reports and ad hoc investigations from OLTP and OLAP data sources.

Exhibit 14 Report design showing the layout of an Overhead Category report that compares the current and previous quarters.

Page 10: Portfolio

Mills-Groninger -10- Portfolio

Exhibit 15 Reports in exhibit 14 as run in SSRS and SharePoint. Note formatting that highlights increases in overhead costs from the prior period.

SSRS

SharePoint

Page 11: Portfolio

Mills-Groninger -11- Portfolio

Exhibit 16 OLAP data displayed in Excel and published to SharePoint utilizing KPI status and trend indicators.

Exhibit 17 OLAP data designed in Performance Point dashboard and published to SharePoint. Note that the value column in the KPI Client Job Financials report utilizes the calculated member from exhibit 13.

Page 12: Portfolio

Mills-Groninger -12- Portfolio

Exhibit 18 Dashboard chart showing comparisons of overhead components over time.

Evaluation and Analysis

Conducted Technology Audits with clients to determine utilization of information technology and desire for change. Assisted clients in developing surveys and analyzing results. Writing about technology for general audiences. Exhibit 18 Selected publications Fundraising software… Your Money-Making Machinery http://www.nptimes.com/pdf/0609sr.pdf Accounting APIs – integrating accounting software http://www.nptimes.com/08Jan/080101SR.pdf A more comprehensive list of publications is available at http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=Mills-Groninger&x=0&y=0