Transcript
Page 1: Win Friends and Influence People... with DSLs

Win Friends and Influence PeopleWin Friends and Influence People...with DSLs

Dr. Vladimir Bacvanski [email protected]

Lloyd Mangnall [email protected]

Joel Denton [email protected]

Page 2: Win Friends and Influence People... with DSLs

The Beginning: Common Challenges

Business & Technology Rapidly Changing

– Aggressive new competition – Broad regulatory changes

Extremely Brittle & Aging Legacy Environment

– Silo 3rd World “Hillside of Huts” Architecture– Extreme degree of functional & technical redundancy– >1800 point-to-point integrationsp p g– Takes multiple years to “integrate” new systems

Executive Mandate: No longer “business as usual”Executive Mandate: No longer business as usual

– Forget changing the wheels…we’re changing the bus into an airplane, while it’s moving!!!

www.scispike.com Copyright © SciSpike 2012

into an airplane, while it s moving!!!

2

Page 3: Win Friends and Influence People... with DSLs

Your Mission, Mr. Mangnall…

Rapidly deploy a scalable, flexible architecture that can respond b d l

…like I really had a choice…

to new business opportunities and leverage emerging technologies.

i i Key Business Drivers:• Increase the “Hit Rate” of Business Innovations• Reduce Time to Market• Reduce Cost

R d idl t t f db k• Respond rapidly to customer feedback• Quality! Quality! Quality!

Key Technical Drivers: Key Technical Drivers:• Scalable, Supportable, Flexible Architecture

Interoperable (SOA) vs Interfaced (ETL)

www.scispike.com Copyright © SciSpike 2012

• Interoperable (SOA) vs. Interfaced (ETL)

3

Page 4: Win Friends and Influence People... with DSLs

Why Domain Specific Languages

Consistently Capture Our Problem Domains

– Keep the level of abstraction closer to business– Transition from tacit knowledge hidden in legacy code to

explicit representation in DSL

Automate Transition from High-level Models to Code

– Apply standard transformations & patterns– Facilitate ongoing adoption of emerging technologies

SciSpike has been applying agile DSL development in similar scenarios this was a good match

www.scispike.com Copyright © SciSpike 2012 4

Page 5: Win Friends and Influence People... with DSLs

Win Friends and Influence People?

Win friends and influence business stakeholders:

– Solve business problems faster through fast software delivery• Enable new opportunities to be rapidly realized

Win friends and influence developers:

– Use the cutting edge software technology – Create a productive environment– Experience making a significant contribution to the project

www.scispike.com Copyright © SciSpike 2012 5

Page 6: Win Friends and Influence People... with DSLs

Using Domain Specific Languages

DSL provide for expressing solution in a vocabulary of the bl dproblem domain

Graphical DSL

– UML with stereotypes or custom notation– Business users are often challenged by complex graphical

notation– Complex tool development

Textual DSL

– Better acceptance by our users• Specially trained analysts

– Much easier tool development

www.scispike.com Copyright © SciSpike 2012 6

Page 7: Win Friends and Influence People... with DSLs

Our DSL Tools: EMF and Xtext

Eclipse Modeling Framework

– Our technology of choice for implementing metamodels

Xtext

– A framework for developing DSLs and supporting tooling

– Created tooling integrates with Eclipse

www.scispike.com Copyright © SciSpike 2012 7

Page 8: Win Friends and Influence People... with DSLs

The CTO’s Business CaseBusiness

RiskBusiness

Risk

Stay Focused on Systematic Risk Mitigationof

Fai

lure

TechnicalRisk

TechnicalRisk

I l t tiI l t ti

Risk

o ImplementationRisk

ImplementationRisk Acceptance

RiskAcceptance

Risk

ConceptConcept ViableViableGeneral

AvailabilityGeneral

Availability

0 Time

ViablePrototype

ViablePrototype

ProductProductAvailabilityAvailability

cert

aint

y

ViableBusiness

Case

ViableBusiness

Case

Unc

www.scispike.com Copyright © SciSpike 2012

Page 9: Win Friends and Influence People... with DSLs

The CTO’s Business CaseStay Focused on Systematic Product Quality

ror

100xRework resulting from unmitigated risk is EXPONENTIALLY MORE COSTLY the later it is di d l th d li lif l

Cost

of E

rr discovered along the delivery lifecycle

C

5x

10x

1x2x

5x

1/2x1/10x

Reqs Design Develop Unit System Accept Prod

WaterfallAgile

www.scispike.com Copyright © SciSpike 2012 9

gAgile DSL

Page 10: Win Friends and Influence People... with DSLs

Traditional Agile Product Delivery Profile

Technology

Focused on Systematic Risk Mitigation

ImplementationBusiness Acceptance <-Risk

75%20%30%

$400K

65%50%

$1.3M

~5%10%

$100K

10%10%

$200K

<-Effort<-Schedule<-Cost

50%Project X:• UC = 275

Effo

rt

UC = 275• AUCP = 1368• Effort = 20523 eh

25% • TTM = 10 months• Total Cost = $2M

0%

www.scispike.com Copyright © SciSpike 2012

Months6 102 4 80 12

Page 11: Win Friends and Influence People... with DSLs

Introduction of DSLs into the Process…Still Focused on Systematic Risk Mitigation

75%

50% Goal: Generate 100% of x% of the overall

Project X:• UC = 275

Effo

rt

of x% of the overall application

UC = 275• AUCP = 1368• Effort = ??? eh

25% • TTM = ?? months• Total Cost = $???

0%

www.scispike.com Copyright © SciSpike 2012

Months6 102 4 80 12

Page 12: Win Friends and Influence People... with DSLs

What We’ve Seen So Far…Recast our projected effort to ~14000 eh (30% productivity increase)

- Experienced an initial increase in technical debtB ildi i i i l l

75%• - Building initial languages• - Selecting initial architectural components- 3 developers generating 100% of ~75% of the application

50% Project X:

3 developers generating 100% of 75% of the application

Effo

rt

Project X:• UC = 275• AUCP = 1368

25% • Effort = ~14000 eh• TTM = 10 months• Cost = $2M

0%

www.scispike.com Copyright © SciSpike 2012

Months6 102 4 80 12

Page 13: Win Friends and Influence People... with DSLs

What We Hope to See in the Future…Sustained 50-60% overall productivity increase

75%

50% Project N:

Effo

rt • UC = 275• AUCP = 1368• Effort = ~8000 eh

25%• Effort = ~8000 eh• TTM = 6 months• Cost = $800K

0%

www.scispike.com Copyright © SciSpike 2012

Months6 102 4 80 12

Page 14: Win Friends and Influence People... with DSLs

DSL Iterative LifecycleDefine/Update

DSLMetamodelDomain/Business/

Validate DSL Model

Business/Requirements

UXModel

ContinuousContinuous

Build

Refactor/

Refactoring

Build Integration

CollaborationGenerateRefactor/

RefineCollaboration

Develop/Use Framework

Add Handcrafted

C dincreased

www.scispike.com Copyright © SciSpike 2012 14

FrameworkCodeiterations

Page 15: Win Friends and Influence People... with DSLs

Obstacles and Misconceptions

Modeling

– "Just drawings"– Perceived disconnect between modeling and

programming

Process

– Reverting to waterfall– Expecting to write application code early on

Dealing with UI

– Specialized UI teams may prefer to go into very detailed Spec a ed U tea s ay p e e to go to e y deta edwaterfall-like design early on

www.scispike.com Copyright © SciSpike 2012 15

Page 16: Win Friends and Influence People... with DSLs

What is the Product?

The problem: What is the product?

– Just the generated solution?– Or the DSL language, the tooling, and the underlying

framework? Is management interested in the difference?

– They just want a solution to business problem!– Need to sell them on the tools!

Evangelizing DSL approach is a must from early on

– But: it must be expressed in the business terms (they did ut: t ust be e p essed t e bus ess te s (t ey d dnot hear before)

– Move from project to product line / rapid change thinking

www.scispike.com Copyright © SciSpike 2012

p j p p g ghelps

16

Page 17: Win Friends and Influence People... with DSLs

People and Roles

Language builders

– Exposure to multiple languages helpful

Tool builders

– Able to think in metamodels (test early!)

Domain expertsp

– Available and motivated to help

Language users Language users

– Business users paired with developers familiar with the DSLDSL

www.scispike.com Copyright © SciSpike 2012 17

Page 18: Win Friends and Influence People... with DSLs

DSL Patterns That Worked For Us

Focus on getting the domain model right

Rapidly prototype and try out the language with users

Cultivate a champion DSL designer who works closely with p g ythe domain expert

Keep the language minimalp g g

Keep underlying framework clean and refactor early

Documentation is essential Documentation is essential

Staff that is not afraid of learning new things

www.scispike.com Copyright © SciSpike 2012 18

Page 19: Win Friends and Influence People... with DSLs

Some Discovered DSL Process Antipatterns

Pressure to fall back to waterfall

Pressure to "finally start coding the application"

Pressure to "add more bodies"

How to avoid these? How to avoid these?

– Must manage business and management stakeholders early onearly on

– Must resist consensus based decision making under pressure and preserve the purity of the DSL solutionpressure and preserve the purity of the DSL solution

– Requires a technical architect with a strong vision

www.scispike.com Copyright © SciSpike 2012 19

Page 20: Win Friends and Influence People... with DSLs

Seven Habits of Successful DSL Projects…

1. Look for opportunities where DSLs are a good match • Be Proactive

2. Focus on an easy to use DSL that users like• Begin with the end in mind

3. Focus on area with the most impact• Put first things first

4. Work together with business and solve real problemsg p• Think win/win

www.scispike.com Copyright © SciSpike 2012 20

Page 21: Win Friends and Influence People... with DSLs

…Seven Habits of Successful DSL Projects

5. Understand the domain, then choose the matching happroach

• Seek first to understand, then to be understood

6. Explore synergy with similar projects where DSL may work• Synergize

7. Be on the lookout for new DSL tools and practices• Sharpen the saw

www.scispike.com Copyright © SciSpike 2012 21


Top Related