Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

Overview and samples of some of my work.

  • Be the first to comment

  • Be the first to like this


  1. 1. Portfolio Tim Mills-Groninger219-616-5886 OverviewBusiness Intelligence is the measure of an organization’s ability to make fact-based decisions utilizing one ormore trustworthy data sources that can be stored and transformed in a way that makes information availablewhen needed at the appropriate level of detail.This portfolio is a sample of BI projects and methodologies. Requirements AnalysisProject lead or team member on numerous business process reengineering projects employing a flexiblemethodology of 1) establishing ground rules and a common language, 2) mapping the environment includingSWOT analysis and resource inventories, 3) Buy v. Build review, 4) implementation, and 5) periodic return tostep 1.Exhibit 1Page 1 of a requirements document and glossary of terms for a database project to manage client tracking at anagency serving children from pre-school through college graduation. When no commercial applications couldmeet the project requirements I led the team that built a custom MS Access application deployed via Citrix toseven locations. The requirements document has been modified several times since the initial deployment andremains the primary resource for system revisions and enhancements.
  2. 2. Mills-Groninger -2- PortfolioKey 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 DevelopmentPrimary developer of complex database solutions using MS Access/SQL with extensive VBA. Team member onOracle and SQL Server projects. Utilized a template approach to common business problems to reducedevelopment time and simplify long-term maintenance and support.Exhibit 2ER diagram of a client tracking application originally deployed in 2005 and still in use. Data are highlynormalized with referential integrity. Granularity is a transaction level, allowing data to be rolled up for a varietyof reports.Exhibit 3ER diagram of a CRM application in use from 2000 until the present that tracks individuals and organizationsalong with consulting and training histories. Numerous agencies use versions of this application and it hasbecome the de facto standard among nonprofit management support organizations. The application can trackmultiple individuals between organizations with roles ranging from employee to board member to consultant. Itincludes a comprehensive training tracking component that publishes training opportunities to the web andtracks registrations, payments, and attendance. The most critical feature is the ability to manage multipleconsulting projects with a client and produce monthly statements and invoices drawn from daily employee andcontractor time reporting.
  3. 3. Mills-Groninger -3- PortfolioExhibit 4ER diagram of a staging area for a labor/construction analysis project. The design is optimized to receive datafrom multiple sources, including Excel and CSV, via SSIS and then to be transformed into an OLAP cube viaSSAS. Employees EmployeeRates EmployeePK EmployeeRatePK County Overhead OverheadRates CountyPK FirstName EmployeePK OverheadPK OverheadRatesPK LastName HourlyRate CountyName Description OverheadPK EmployeeFlag EffectiveDate DivisionPK HourlyRate FullName EffectiveDate CellPhone Clients UseEmployeeFlag ClientPK UseContractorFlag AccountNo JobMaster ClientName JobMasterPK ProjectManager Description CountyPK ClientPK ClientImage ClientJob JobMaterialPurchases Invoices JobTimeSheets JobMaterialPurchasesPK ClientGroupingPK MaterialMarkupPct InvoicePK JobTimeSheetsPK JobMasterPK AdditionalOverheadPct ClientPK EmployeePK MaterialTypePK JobClosed InvoiceNumber JobMasterPK JobClosedDate PurchaseAmount InvoiceTerms WorkDate JobCreatedDate PurchaseDate WorkDates HoursWorked SalePoint InvoiceDate MaterialTypes MaterialTypePK Description InvoiceXJobMaster InvoiceReceipts InvoiceXJobPK InvoiceReceiptsPK InvoicePK InvoicePK JobMasterPK JobMasterPK InvoiceAmount AmountPaid AdditionalLabor ReceiptDate
  4. 4. Mills-Groninger -4- Portfolio Data Warehouse and ETL with SSISConsolidated multiple source datasets into unified OLTP environments using SQL and SSIS. Theclient maintained source data in Excel time sheets, a proprietary package that could only export toCSV, and a more traditional OLTP environment. The master package shown in exhibit 5 optimizesthe use of multiple processors to execute non-dependent packages simultaneously. Similarly, otherpackages use a strict hierarchy to insure that all entries are valid prior to posting.Exhibit 5SSIS Control Flow that processes multiple packages on a regular schedule, creating new or updating existingrecords as required. Once data have been appended the source files are moved to the processed folder forarchiving. After the packages have executed the destination database is backed up and reindexed.
  5. 5. Mills-Groninger -5- PortfolioExhibit 6Singe package to read changes to employee pay rates as kept in an Excel file. The package checks if thesource data contains new or existing records and inserts or updates as needed. Upon completion the packageproduces an email with record counts for the different conditions.Exhibit 7Converting Excel data to SQL takes special care to insure that the Excel data is cast to the matching SQL datatype. Naming conventions insure that converted columns are easily identified downstream.
  6. 6. Mills-Groninger -6- PortfolioExhibit 8Lookup EmpRate validates the existing employee number to check if this is the first pay rate record for a newemployee. 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 theupdate 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 9C# code used in various SSIS packages. This example conditionally parses a possible middle name from thefirstname 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." + "rn" + "rn" +"Total # of rows processed: " + (DT_STR, 10, 1252) @[User::uTotalRowsRead] + "rn" + "Total # of rows inserted/updated " + (DT_STR, 10, 1252) @[User::uRowsUpdated] + "rn" + "Employee records ignored: " + (DT_STR, 10, 1252) @[User::uRowsIgnored]Data Inquiry and Manipulation with SQL ToolAs an aside, it is interesting to note how many different ways there are to insert a carriage return/line feedcombination in the BI stack.
  7. 7. Mills-Groninger -7- Portfolio T-SQL, Access, OracleExtensive experience in using SQL for production systems and ad hoc investigation. Tools usedinclude the surprisingly powerful GUI in MS Access as well as Toad, and SSMS.Exhibit 10Stored procedure returning a specific vendor, all shipping methods used, and a summary of financial data fortransactions in a certain time frame. The stored procedure simplifies subsequent code and improvesmaintenance; any changes to the stored procedure are immediately reflected in all scripts in which it isreferenced.Exhibit 11SQL 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.
  8. 8. Mills-Groninger -8- Portfolio OLAP and MDXUtilized data warehouse to create OLAP cubes that served as data sources for SSRS, PPS, and Excel reporting.Exhibit 12Cube diagram showing dimensions and facts for the labor/project tracking application referenced in exhibit 4.Exhibit 13Calculations portion of the a cube showing how the member avoids a divide by zero error.
  9. 9. Mills-Groninger -9- PortfolioExhibit 13Calculated member which filters to show quarters with a labor cost greater than zero. Reporting EnvironmentsFamiliar with reporting platforms including MS Access, Crystal Reports, Excel, SSRS, and PPS. Projectincluded production reports and ad hoc investigations from OLTP and OLAP data sources.Exhibit 14Report design showing the layout of an Overhead Category report that compares the current and previousquarters.
  10. 10. Mills-Groninger -10- PortfolioExhibit 15Reports in exhibit 14 as run in SSRS and SharePoint. Note formatting that highlights increases in overheadcosts from the prior period. SSRS SharePoint
  11. 11. Mills-Groninger -11- PortfolioExhibit 16OLAP data displayed in Excel and published to SharePoint utilizing KPI status and trend indicators.Exhibit 17OLAP data designed in Performance Point dashboard and published to SharePoint. Note that the value columnin the KPI Client Job Financials report utilizes the calculated member from exhibit 13.
  12. 12. Mills-Groninger -12- PortfolioExhibit 18Dashboard chart showing comparisons of overhead components over time. Evaluation and AnalysisConducted Technology Audits with clients to determine utilization of information technology and desire forchange. Assisted clients in developing surveys and analyzing results. Writing about technology for generalaudiences.Exhibit 18Selected publicationsFundraising software… Your Money-Making Machinery APIs – integrating accounting software more comprehensive list of publications is available at