Win Friends and Influence People... with DSLs

1,536 views

Published on

EclipseCon 2012 talk describing the use of domain specific languages in development; use of Xtext, EMF as DSL tooling. Learned lessons, impact on development process, and some best practices.

Published in: Technology, Business
2 Comments
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
1,536
On SlideShare
0
From Embeds
0
Number of Embeds
644
Actions
Shares
0
Downloads
13
Comments
2
Likes
0
Embeds 0
No embeds

No notes for slide

Win Friends and Influence People... with DSLs

  1. 1. Win Friends and Influence People...with DSLsDr. Vladimir Bacvanski vladimir.bacvanski@scispike.comLloyd Mangnall lmangnal@vha.comJoel Denton jdenton@novationco.com
  2. 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. 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. 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. 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. 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. 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. 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. 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 rorCost of Err discovered along the delivery lifecycle di d l th d li lif lC 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. 10. Traditional Agile Product Delivery Profile Focused on Systematic Risk Mitigation Business Technology Implementation Acceptance <-Risk ~5% 20% 65% 10% <-Effort75% 10% 30% 50% 10% <-Schedule $100K $400K $1.3M $200K <-Cost Project X:50% • UC = 275Effort • AUCP = 1368 • Effort = 20523 eh25% • TTM = 10 months • Total Cost = $2M0% 0 2 4 6 8 10 12 Months www.scispike.com Copyright © SciSpike 2012
  11. 11. Introduction of DSLs into the Process… Still Focused on Systematic Risk Mitigation75% Goal: Generate 100% Project X:50% of x% of the overall • UC = 275Effort application • AUCP = 1368 • Effort = ??? eh25% • TTM = ?? months • Total Cost = $???0% 0 2 4 6 8 10 12 Months www.scispike.com Copyright © SciSpike 2012
  12. 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 languages75% • - Selecting initial architectural components - 3 developers generating 100% of ~75% of the application 75%50% Project X:Effort • UC = 275 • AUCP = 1368 • Effort = ~14000 eh25% • TTM = 10 months • Cost = $2M0% 0 2 4 6 8 10 12 Months www.scispike.com Copyright © SciSpike 2012
  13. 13. What We Hope to See in the Future… Sustained 50-60% overall productivity increase75%50% Project N: • UC = 275Effort • AUCP = 1368 • Effort = ~8000 eh25% • TTM = 6 months • Cost = $800K0% 0 2 4 6 8 10 12 Months www.scispike.com Copyright © SciSpike 2012
  14. 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/Useincreased Handcrafted Frameworkiterations Code C d www.scispike.com Copyright © SciSpike 2012 14
  15. 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. 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. 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. 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. 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. 20. Seven Habits of Successful DSL Projects…1. Look for opportunities where DSLs are a good match • Be Proactive2. Focus on an easy to use DSL that users like • Begin with the end in mind3. Focus on area with the most impact • Put first things first4. Work together with business and solve real p g problems • Think win/win www.scispike.com Copyright © SciSpike 2012 20
  21. 21. …Seven Habits of Successful DSL Projects5. Understand the domain, then choose the matching approach h • Seek first to understand, then to be understood6. Explore synergy with similar projects where DSL may work • Synergize7. Be on the lookout for new DSL tools and practices • Sharpen the saw www.scispike.com Copyright © SciSpike 2012 21

×