Your SlideShare is downloading. ×
0
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Lessons learned in building a model driven software factory

6,651

Published on

These are the slides of my talk at Code Generation 2010. I share my experiences during the development of a Model-Driven Software Factory. This factory is based on multiple Domain-Specific Languages …

These are the slides of my talk at Code Generation 2010. I share my experiences during the development of a Model-Driven Software Factory. This factory is based on multiple Domain-Specific Languages (DSLs), together describing a Service-Oriented Business Application. All DSLs have a graphical concrete syntax and are aimed at involving domain experts in the software development process. The factory has been used for many projects in the last five years and its user base is growing fast.

Published in: Technology
3 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total Views
6,651
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
3
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Lessons learned in building a Model-Driven Software Factory Johan den Haan Head R&D Mendix @JohanDenHaan
  • 2. IT costs a lot, but is not fast enough to meet Business Agility wishes
  • 3. We are going to fix it today!
  • 4. Join me on my journey
  • 5. Viewpoints Context A basic Model-Driven Software Factory Releasing the product Growing a user base
  • 6. What kind of business problems do we want to solve?
  • 7. Application characteristics  Time-2-market  Flexible  Integration with commodity applications  Portal / Rich user interface  Domain knowledge
  • 8. Who is our target user?
  • 9. Lessons learned  Product dev. starts with a customer need  MDD asks for repetition  First step in building a MDSF is domain definition  Make a clear choice about your target user  Define the most important domain concepts  Think about a methodology early - it will influence your DSL design and tool
  • 10. Browser Styling & user interaction CSS, HTML, JavaScript Client-side logic Server communication JVM Java Flows & actions API & connectors Access rules ORM Database SQL Data
  • 11. Browser Styling & user interaction CSS Client-side logic Rich Forms DSL Server communication JVM Microflow DSL Flows & actions API & connectors Mapping DSL Access rules Security DSL ORM Domain model Database Data
  • 12. How to support our target users?  Model should be easy to – Read – Browse – Search – Keep consistent  Deployment – Should be easy / non-technical – Model execution / interpretation – Cloud infrastructure
  • 13. Lessons learned (1)  Interpretation is a viable alternative for code generation  Use model checks to prevent errors early  Make sure you can navigate and search  Make DSLs as declarative as possible  Prevent property explosion  Create flexibility for unforeseen uses
  • 14. Lessons learned (2)  Do not only focus on development phase  Deployment can be slow – compliance with code style, architecture, server config, etc.  Cloud infrastructure can automate deployment  Grow your factory bottom-up  Always look at existing standards first
  • 15. Applications build with our product will suffer from a double release cycle
  • 16. We need an extension mechanism
  • 17. How to ensure quality?
  • 18. Lessons learned (1)  Put effort in documentation, training, and templates  Create flexibility to prevent double release cycle troubles  Release management is much easier with a plugin infrastructure  Be always backwards compatible
  • 19. Lessons learned (2)  Deprecate model structures and provide alternatives for breaking changes  Create (semi-)automated tests using test models  Learn from reported bugs  Do not only test the technical implementation
  • 20. Why should he use our product?
  • 21. We should focus on partners, but do some lighthouse projects ourselves
  • 22. Make it easy to start
  • 23. How to create an active user base?
  • 24. Lessons learned (1)  Make it compelling for partners to use your product – what’s in it for them?  Start doing lighthouse projects yourself  Sell business solutions to business people  Eat your own dog food  Integrate ‘community tools’ in modeling environment
  • 25. Lessons learned (2)  Use a reputation system for your support forum  Give partners incentives to build reputation  Create a place to download an share templates, extensions, etc.  Make it compelling for partners to publish content
  • 26. Viewpoints Context A basic Model-Driven Software Factory Releasing the product Growing a user base
  • 27. Lessons learned in building a Model-Driven Software Factory Learn more: world.mendix.com Read more: www.theenterprisearchitect.eu Connect: @JohanDenHaan

×