Extreme Programming for ETL and Data Analytics

74
eXtreme Programming for ETL Agile Pune 2014 _________________________ Prafulla Girgaonkar [@pgirgaonkar] Naresh Jain [@nashjain] Illustration: Umesh Kale

description

Over the last decade, eXtreme Programming practices like User Stories, Evolutionary Design, Test-Driven Development (TDD), Behavior Driven Developer (BDD), Refactoring, Continuous Integration and Automation have fundamentally changed software development processes and inherently how engineers work. Having experienced various benefits from XP practices on our J2EE stack, our team started to apply these practices to extract, transform, and load (ETL) and Data Analytics side of our product. Unfortunately, there is very little guidance available in this context, esp. for the SAS Platform. Right from finding the unit testing framework to structuring the code to designing our modules and setting up a Continuous Integration builds, our team had to figure out everything, the hard way. Join us to understand the challenges we faced during this process and how we resolved these challenges. Details: http://confengine.com/agile-pune-2014/proposal/535/extreme-programming-for-etl-and-data-analytics Conference: http://pune.agileindia.org/

Transcript of Extreme Programming for ETL and Data Analytics

Page 1: Extreme Programming for ETL and Data Analytics

eXtremeProgramming for ETL

Agile Pune 2014_________________________

Prafulla Girgaonkar [@pgirgaonkar]Naresh Jain [@nashjain]Illustration: Umesh Kale

Page 2: Extreme Programming for ETL and Data Analytics

25YEARS 6000+CLIENTS Nr 1M ROOMS 94COUNTRIES 95%+

ago we started

helping clients

manage their

revenue

later we’re still finding

the revenue opportunity

in every situation

around the world are

priced every single day

using IDeaS

on 6 continents have

hotels that now run

on IDeaS Revenue

Management

Systems

More than 95

percent of all

our clients are

still working

with us today.

About IDeaS

Page 3: Extreme Programming for ETL and Data Analytics

ETL

DECISION

IP

PMS/CRS

Competitor

WebRate

Social Media

Periodically or

Real Time

Full or

Delta

Messages or

File

****

ETL & IDEAS

Page 4: Extreme Programming for ETL and Data Analytics

Concept Exploration

Structuring Requirements

Discovery

Earlier ETL Practices

Page 5: Extreme Programming for ETL and Data Analytics

Concept Data Exploration “Structurization”

ETLDevelopment

Certification GA

Typical Development Cycle on an ETL Project

Page 6: Extreme Programming for ETL and Data Analytics

Vendor

IDEAS

Development

Earlier ETL Practices

Page 8: Extreme Programming for ETL and Data Analytics

Challenges and Flaws

Page 9: Extreme Programming for ETL and Data Analytics

Challenges and Flaws

Page 10: Extreme Programming for ETL and Data Analytics

Challenges and Flaws

Page 11: Extreme Programming for ETL and Data Analytics

Challenges and Flaws

Page 12: Extreme Programming for ETL and Data Analytics

Challenges and Flaws

Time

Discovery Development

Page 13: Extreme Programming for ETL and Data Analytics

Challenges and Flaws

Source : http://roselawgroupreporter.com/

Page 14: Extreme Programming for ETL and Data Analytics

Challenges and Flaws

Page 15: Extreme Programming for ETL and Data Analytics

Requirement Conformity

Requirement Misunderstanding

Late Data Change

Delays

API Performance

Priorities

Challenges and Flaws - Vendor

Page 16: Extreme Programming for ETL and Data Analytics

Naresh Jain

• nareshjain.com

• @nashjain

Page 17: Extreme Programming for ETL and Data Analytics

Prafulla S Girgaonkar

Product Development for

Hospitality | Revenue Optimization | Finance

[email protected]

@pgirgaonkar

Page 18: Extreme Programming for ETL and Data Analytics

Journey

Hilstar Opera Pegasus

Page 19: Extreme Programming for ETL and Data Analytics

Old Approach

Page 20: Extreme Programming for ETL and Data Analytics

Existing Approach - Iterative & Incremental Approach

Page 21: Extreme Programming for ETL and Data Analytics

Initial XP Practices - Hilstar

Page 22: Extreme Programming for ETL and Data Analytics

DBA

QA

DEV PM

UX

Initial XP Practices – Whole Team

Source: http://www.selfishprogramming.com/

BO

KM

Page 23: Extreme Programming for ETL and Data Analytics

Iteration #1 Iteration #2 Iteration #3

Initial XP Practices – Small Releases

Page 24: Extreme Programming for ETL and Data Analytics

Initial XP Practices - Continuous Integration

Page 25: Extreme Programming for ETL and Data Analytics

Initial XP Practices – User Story

Page 26: Extreme Programming for ETL and Data Analytics

Evolution of the Practices… OPERA

Source: http://www.freedomchurchunited.org/

Page 27: Extreme Programming for ETL and Data Analytics

Evolution of the Practices - Pairing

Page 28: Extreme Programming for ETL and Data Analytics

Evolution of the Practices – Planning/Grooming

Source: http://www.h4-entertainment.com/

Page 29: Extreme Programming for ETL and Data Analytics

Evolution of the Practices – Test Driven Development

Page 30: Extreme Programming for ETL and Data Analytics

Evolution of the Practices – Refactoring

Page 31: Extreme Programming for ETL and Data Analytics

Evolution of the Practices – Coding Standards

Page 32: Extreme Programming for ETL and Data Analytics

Evolution of the Practices – Collective Ownership

Page 33: Extreme Programming for ETL and Data Analytics

Evolution of the Practices – Simple Design

Page 34: Extreme Programming for ETL and Data Analytics

• The customer is always available

• Code the unit test first

• Leave optimization for later

Evolution of the Practices – Optimization at the End

Page 35: Extreme Programming for ETL and Data Analytics

Write a TEST before FIXING the BUG

Evolution of the Practices – Test Driven Bug Fixing

Page 36: Extreme Programming for ETL and Data Analytics

Further…Evolution of the Practices… Pegasus

Page 37: Extreme Programming for ETL and Data Analytics

Data Management

4GLMACROS

PROCS FUNCTIONS

Learn SAS 4gl @

http://support.sas.com/software/products/ondemand-

academics/

Further…Evolution of the Practices – SAS 4GL

Page 38: Extreme Programming for ETL and Data Analytics

Further…Evolution of the Practices – Earlier Code

Page 39: Extreme Programming for ETL and Data Analytics

No Unit testNo Build

Integration

Language Unawareness

Discover the Tool

SASUNIT

Further…Evolution of the Practices – Testability

Page 40: Extreme Programming for ETL and Data Analytics

Further…Evolution of the Practices – Code Later

Page 41: Extreme Programming for ETL and Data Analytics

Part of build Process

Fail Fast

Further…Evolution of the Practices – Build Process Correction

Page 42: Extreme Programming for ETL and Data Analytics

Integrated With Jenkins

Fail Fast

Fail Reports

Further…Evolution of the Practices – Jenkins for SASUNIT

Page 43: Extreme Programming for ETL and Data Analytics

Engineering Practices are always at the core.

Tools May not be there.

There is WILL, there is WAY

CRUX

Page 44: Extreme Programming for ETL and Data Analytics

Benefits

Source: http://flickr.com

Page 45: Extreme Programming for ETL and Data Analytics

Source: http://docustar.com/blog/quality-check-is-99-9-good-enough/

Benefits –

Page 46: Extreme Programming for ETL and Data Analytics

Source: http://www.ftjco.com/wp-content/uploads/2012/10/diamonds.jpg

Benefits

Page 47: Extreme Programming for ETL and Data Analytics

Benefits

Page 48: Extreme Programming for ETL and Data Analytics

Benefits

Page 49: Extreme Programming for ETL and Data Analytics

Benefits

Relative Time

Hilstar Opera Pegasus

Page 50: Extreme Programming for ETL and Data Analytics

UNIT Test …UNIT Test …UNIT Test …

Source: www.topnews.in

Benefits

Page 51: Extreme Programming for ETL and Data Analytics

Source: http://en.wikipedia.org/wiki/Cello

Benefits

Page 52: Extreme Programming for ETL and Data Analytics

Change Management

Source: http://www.animalnational.com/monarch-butterfly-migration/

Page 53: Extreme Programming for ETL and Data Analytics

Change Management – Usual Reactions

Source: http://ericgerlach.com/introphilosophy8/

DEVs | QAs | POs | BOs

Page 54: Extreme Programming for ETL and Data Analytics

Change Management – Looking for Rituals

Source: http://www.theguardian.com/books/2014/apr/27/reading-print-books-ereaders-technology

DEVs | QAs | POs | BOs

Page 55: Extreme Programming for ETL and Data Analytics

Courtesy: Jeff Patton

Change Management – Smaller Release/Stories were Shaker

DEVs | QAs | POs | BOs

Page 56: Extreme Programming for ETL and Data Analytics

Change Management – Incremental Development

DEVs | QAs | POs | BOs

Page 57: Extreme Programming for ETL and Data Analytics

Change Management – Story Map

DEVs | QAs | POs | BOs

Page 58: Extreme Programming for ETL and Data Analytics

Change Management – Spikes were new

Source: http://www.kitchology.com/

DEVs | QAs

Page 59: Extreme Programming for ETL and Data Analytics

Change Management – CI & Failing Builds

DEVs | QAs

Page 60: Extreme Programming for ETL and Data Analytics

Change Management – Pairing

Source: https://www.airpair.com/mean-stack/posts/2014-10-job-post-mean-stack-developer

DEVs | QAs

Page 61: Extreme Programming for ETL and Data Analytics

Change Management – Team Ownership

DEVs | QAs

Source: https://dilbert.com

Page 62: Extreme Programming for ETL and Data Analytics

Change Management – Testers part of Design Discussion

Source: http://www.mercatornet.com/articles/view/health_economics_101_contraceptives_pay_for_themselves_usually_babies_dont

DEVs | QAs

Page 63: Extreme Programming for ETL and Data Analytics

Change Management – Defect are discussed; not entered

QAsSource: http://letstalkaboutdiscussion.ca/

Page 64: Extreme Programming for ETL and Data Analytics

Change Management – Test Automation

QAsSource: http://www.mobileqazone.com/profiles/blogs/software-testing-by-human-or-machine-what-should-shouldn-t-be

Page 65: Extreme Programming for ETL and Data Analytics

Road Ahead

Source: http://www.gettyimages.in/

Page 66: Extreme Programming for ETL and Data Analytics

Engineering Practice - Refactoring / Managing Code Smells

Source: www.123rf.com

Page 67: Extreme Programming for ETL and Data Analytics

• Engineering Practice - Simple Design & Solving critical

challenges by taking them out of context

Road Ahead - Engineering Practice – Simple Design

Source: http://flickr.com/

Page 68: Extreme Programming for ETL and Data Analytics

• Engineering Practice - Simple Design & Solving critical

challenges by taking them out of context

Road Ahead - Engineering Practice –Sandbox

Source: http://ifum.com/

Page 69: Extreme Programming for ETL and Data Analytics

Road Ahead - Engineering Practice - Evolutionary Design Extended

Source: http://nordicedge.com/

Page 70: Extreme Programming for ETL and Data Analytics

Road Ahead - Engineering Practice – Programming skills and polyglot

Page 71: Extreme Programming for ETL and Data Analytics

Road Ahead - Real Time Integration

Page 72: Extreme Programming for ETL and Data Analytics

WE I JAD

Road Ahead - Joint Application development with Vendor

Source: http://www.p-r-i.org/nadcap/nadcap-meetings/

Page 73: Extreme Programming for ETL and Data Analytics

Take Away

• Engineering Practices are universal

– determination and perseverance

• XP Practices lead to T-Shaped individual or

Generalizing Specialist

• Product Discovery & Story Mapping vital for

Alignment.

Page 74: Extreme Programming for ETL and Data Analytics

Prafulla Girgaonkar [@pgirgaonkar]Naresh Jain [@nashjain]Illustration: Umesh Kale

Session Ends.. Efforts Continue…