Portfolio
-
Upload
tim-mills-groninger -
Category
Documents
-
view
183 -
download
1
description
Transcript of 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.
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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