Más contenido relacionado La actualidad más candente (20) Similar a Win Friends and Influence People... with DSLs (20) Más de Vladimir Bacvanski, PhD (7) Win Friends and Influence People... with DSLs1. Win Friends and Influence People
...with DSLs
Dr. Vladimir Bacvanski vladimir.bacvanski@scispike.com
Lloyd Mangnall lmangnal@vha.com
Joel Denton jdenton@novationco.com
2. 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 integrations
p p g
– Takes multiple years to “integrate” new systems
Executive Mandate: No longer “business as usual”
business usual
– Forget changing the wheels…we’re changing the bus
into an airplane, while it s moving!!!
it’s
www.scispike.com Copyright © SciSpike 2012 2
3. Your Mission, Mr. Mangnall…
…like I really had a choice…
Rapidly deploy a scalable, flexible architecture that can respond
to new b
business opportunities and leverage emerging
dl
technologies.
Key Business Drivers:
i i
• Increase the “Hit Rate” of Business Innovations
• Reduce Time to Market
• Reduce Cost
• Respond rapidly to customer feedback
R d idl t t f db k
• Quality! Quality! Quality!
Key Technical Drivers:
• Scalable, Supportable, Flexible Architecture
• Interoperable (SOA) vs Interfaced (ETL)
vs.
www.scispike.com Copyright © SciSpike 2012 3
4. 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
5. 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
6. Using Domain Specific Languages
DSL provide for expressing solution in a vocabulary of the
problem domain
bl d
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
7. 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
8. The CTO’s Business Case
Business
Stay Focused on Systematic Risk Mitigation
Risk
Risk of Failure
Technical
Risk
o
Implementation
I l t ti
Risk Acceptance
Risk
0 Time
General
Concept Viable Availability
certainty
Product
Viable
Prototype
Unc
Viable
Business
Case
www.scispike.com Copyright © SciSpike 2012
9. The CTO’s Business Case
Stay Focused on Systematic Product Quality
Rework resulting from unmitigated risk is 100x
EXPONENTIALLY MORE COSTLY the later it is
ror
Cost of Err
discovered along the delivery lifecycle
di d l th d li lif l
C
10x
5x
2x
1x
1/10x 1/2x
Reqs Design Develop Unit System Accept Prod
Agile
g Waterfall
Agile DSL
www.scispike.com Copyright © SciSpike 2012 9
10. Traditional Agile Product Delivery Profile
Focused on Systematic Risk Mitigation
Business Technology Implementation Acceptance <-Risk
~5% 20% 65% 10% <-Effort
75% 10% 30% 50% 10% <-Schedule
$100K $400K $1.3M $200K <-Cost
Project X:
50%
• UC = 275
Effort
• AUCP = 1368
• Effort = 20523 eh
25%
• TTM = 10 months
• Total Cost = $2M
0%
0 2 4 6 8 10 12
Months
www.scispike.com Copyright © SciSpike 2012
11. Introduction of DSLs into the Process…
Still Focused on Systematic Risk Mitigation
75%
Goal: Generate 100% Project X:
50%
of x% of the overall • UC = 275
Effort
application • AUCP = 1368
• Effort = ??? eh
25%
• TTM = ?? months
• Total Cost = $???
0%
0 2 4 6 8 10 12
Months
www.scispike.com Copyright © SciSpike 2012
12. What We’ve Seen So Far…
Recast our projected effort to ~14000 eh (30% productivity increase)
- Experienced an initial increase in technical debt
• - B ildi i i i l l
Building initial languages
75%
• - Selecting initial architectural components
- 3 developers generating 100% of ~75% of the application
75%
50% Project X:
Effort
• UC = 275
• AUCP = 1368
• Effort = ~14000 eh
25%
• TTM = 10 months
• Cost = $2M
0%
0 2 4 6 8 10 12
Months
www.scispike.com Copyright © SciSpike 2012
13. What We Hope to See in the Future…
Sustained 50-60% overall productivity increase
75%
50% Project N:
• UC = 275
Effort
• AUCP = 1368
• Effort = ~8000 eh
25%
• TTM = 6 months
• Cost = $800K
0%
0 2 4 6 8 10 12
Months
www.scispike.com Copyright © SciSpike 2012
14. DSL Iterative Lifecycle
Define/Update
Metamodel DSL
Domain/
Business/
Requirements
Validate DSL
Model
UX
Continuous
Build Integration
Refactoring
Refactor/ Collaboration
Generate
Refine
Add
Develop/Use
increased Handcrafted
Framework
iterations Code
C d
www.scispike.com Copyright © SciSpike 2012 14
15. 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 e y deta ed
waterfall-like design early on
www.scispike.com Copyright © SciSpike 2012 15
16. 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 e p essed in t e bus ess terms (they did
ut: t ust expressed the business te s (t ey d d
not hear before)
– Move from project to product line / rapid change thinking
p j p p g g
helps
www.scispike.com Copyright © SciSpike 2012 16
17. People and Roles
Language builders
– Exposure to multiple languages helpful
Tool builders
– Able to think in metamodels (test early!)
Domain experts
p
– Available and motivated to help
Language users
– Business users paired with developers familiar with the
DSL
www.scispike.com Copyright © SciSpike 2012 17
18. 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 y
the domain expert
Keep the language minimal
p g g
Keep underlying framework clean and refactor early
Documentation is essential
Staff that is not afraid of learning new things
www.scispike.com Copyright © SciSpike 2012 18
19. 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?
– Must manage business and management stakeholders
early on
– Must resist consensus based decision making under
pressure and preserve the purity of the DSL solution
– Requires a technical architect with a strong vision
www.scispike.com Copyright © SciSpike 2012 19
20. 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 p
g problems
• Think win/win
www.scispike.com Copyright © SciSpike 2012 20
21. …Seven Habits of Successful DSL Projects
5. Understand the domain, then choose the matching
approach
h
• 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