Software is eating the world and MDD should be in the driving seat

6,917 views

Published on

Software is eating the world! Every company is becoming a software company. If companies don’t, they cease to exist. Just imagine: you are a thermostat maker and suddenly you have Google as a competitor (via its Nest acquisition). This is just one of the many recent examples.

Interestingly a lot of the innovations in the software industry are fuelled by abstraction and automation, concepts that are well-known in the MDD community. As the world is awakening to these concepts there is a clear opportunity (and need!) to bring MDD to a much broader audience.

In this keynote we will analyse what’s happening on all layers of the software stack. We will also explore how we can become more relevant as an MDD community. There is a ton of knowledge and experience in our community that could move the needle for a lot of companies, but are we using it? We need to stop doing what we always do. We need bold ideas and the courage to start a journey with no clear endpoint!

Published in: Software, Technology, Business
1 Comment
15 Likes
Statistics
Notes
No Downloads
Views
Total views
6,917
On SlideShare
0
From Embeds
0
Number of Embeds
4,561
Actions
Shares
0
Downloads
1
Comments
1
Likes
15
Embeds 0
No embeds

No notes for slide
  • Good morning!

    Recovered from the Castle Inn?

    This presentation will be a bit different… we will talk about “cloud” and “business”…
    But… also about “metadata”, “citizen developers”, “language engineering”…

    But allow me to start with a story…
  • If you have visited our Rotterdam office you probably have seen this in our R&D department…
    We are weird… you will see that in the text track session “behind the scenes of R&D” 

    I often have a conversation with visitors about the reasons for these pictures… these 3 guys inspire us!
    You probably all know the middle one… Steve Jobs: product experience
    George Lucas: trendsetter, father of geek culture!
    Bill Murrary: why o why….?
  • He is there because he reminds us of our mission. We need to save the IT world from being stuck in groundhog day!
  • Who did see the movie Groundhog day?

    The lead character, played by Bill Murray, experiences the same day repeatedly.
  • Every morning he wakes at 6am just to learn that it is the same day again.

    Does this feel like your mornings 5 days a week?
    Oh no… not such a day again.
  • Is this your way of fixing it?

    … well… I hope this wasn’t your morning…
    … and I also hope this isn’t your reality

    Unfortunately, in big parts of the IT world it is!
  • And the only way to get out of it is to stop doing what you are doing… a radical change is needed…

    Why?

    http://www.flickr.com/photos/robertstrains/7507283186/
  • Because every company is a software company---or at least aspiring to be one.

    The ability to use software will revamp industries and create new leaders.

    Does this sound a bit distant to you? …>

  • It definitely does to the maker of this…. I guess he company that makes this doesn’t see itself as a software company…
  • Well… unless you wake up in the morning and then you suddenly have Google as a competitor (via its Nest acquisition).
  • Or just take Square as another example. They are seriously disrupting the financial industry.

    All you need to accept creditcards is that tiny thing on an iPhone. And you’re in business.
    And if you are ready for it, you can even ditch creditcards completely and use mobile payments.
  • You may think if old-school industries like cars and taxis are being disrupted by startups taking a software-based approach to innovation, what does this mean for my industry?

    Well in fact, it is happening in every industry. Examples like dropbox is storage, airbnb who disrupting the hotel business, spotify in music, nest home automation. The list goes on about recent examples of new companies that take on inefficient industries through the use of applications.
  • So, …Software is disrupting industries…

    These disrupters are companies that started out as a company centered around software or are existing companies that have learned how to use software as a competitive advantage.

    You could say that these disrupters are digital companies, digital enterprises…

  • In my opinion, there is no choice. If companies want to survive they need to become digital. Which means:

    Connected: the “internet-of-things” is changing how enterprises connect with their partners and customers. Any product can gather data and be connected with the enterprise.
    Intelligent: it is knowledgeable about everything, it knows how to process all the data it get. You could call this “big data analytics”
    Adaptive: it is able to adapt based on the information it gathers via its connections. It is agile.
    Always-on: there is no “time-to-market”, everything should be direct and at real-time.
  • The important question for a lot of companies today is: how to become a digital enterprise? How to increase the pace of innovation?
    How to turn the IT department from a business prevention department into a business enabler?

    I could of course bore you with 30 minutes of semi-scientific advice…
    And I will…!

    But…
  • If you don’t like that… go buy this book as an ebook and start reading now!

    It’s a business novel that tells the story of Bill Palmer, CIO of Parst Unlimited. In the first half it gets worse on each page. In the second half of the book Bill starts to learn.
    This guy is not working in an IT company.
    It is a gripping story about what can go wrong with IT and some pointers to how to fix it.

    The message of the book: IT should be at the core of your business! There is no IT AND business… it is an integral part of the business.

    That easier to say than to do. In the average company IT is already swamped. Projects are failing, backlogs are growing, and the business is unhappy.

    So, how to make your IT efforts competitive?
  • Abstraction and automation are the main elements in modern cloud architectures. And these two concepts are key to making your IT efforts competitive.

    Let’s have a look at layered cloud architectures in which each layer is an abstraction and automation of the lower layers.
  • The popular wisdom that cloud comes in three flavors (IaaS, PaaS, SaaS) is not providing a realistic picture of the current landscape.

    The lines between these categories are blurring and within these categories there are numerous subcategories that describe a whole range of different approaches.

    Let’s look at a more sophisticated model that actually helps to understand what’s happening in the cloud.
  • Some might not believe it, but even in the cloud you still need hardware… ;)

    I call it layer 0… I’m still a developer…. ;)

    I use 3 columns in my framework: compute, communicate, store. These 3 elements can be used on any layer, they even apply to us humans.

    We can process/compute data, we can communicate data, and we can store data in our memory.
    Or in other words from the object oriented programming world: behaviour, messaging, and state.
  • This is a battle for market share
    Price wars (last week Google and Amazon dropped prices by 30% to 80% and this week Azure followed)
    Commodity
    4 main players -> OpenStack/IBM

    These providers have more services, I will come back to that later.
  • From infrastructure-centric to application-centric.
  • In this world, everything is “software-defined” and can therefore be automated…
    It basically all is about abstraction and automation… with the goal to enable “self-service” for a different audience. Up to developers deploying and running their own code… no infra or operations know-how needed.

    The thing is…
  • It’s plumbing! Just like electricity and water.


    http://www.flickr.com/photos/reqfordrm/9674409550/
  • Database services
    BigData analytics -> BigQuery on the Google Cloud Platform
    iPaaS -> Integration and Middleware services on IBM BlueMix (CloudFoundry based, former WebSphere components)

    Differentiate: goal -> get developers on the platform.

    I think this framework helps to get a better understanding of what’s currently happening in the cloud market.
  • These layers are also a strong enabler of the digital enterprise. Because of the abstraction and automation the pace of innovation can increase a lot!

    2 bullets from slide.

    Application development has never been as important as now

    However…
  • Again: It’s all about abstraction and automation with the goal to enable self-service for a new audience -> so there is a logical next step


    http://www.flickr.com/photos/aigleboy/4485153204/in/photostream/
  • Remember my previous statement? -> It’s all about abstraction and automation with the goal to enable “self-service” for another audience.

  • Visual models to working software…
    Multiple DSLs for each aspect of apps or vertical DSLs.
  • Hackaton story

    1. Impressive what you can do in 24 hours with a Model-Driven PaaS.
    2. It was hard to tell the difference between the Mendix applications developed by the professional and student teams. That’s all the more amazing when you consider the students such as the Demkes brothers had little familiarity with the Mendix platform before the hackathon began.
    -> It is more about creativity and knowing the domain than about tech skills…

    And we can even go further…

  • An app service layer so that Citizen devs can compose instead of develop
    Same 3 categories.
    App Services (ready-made components to re-use in your apps), Communications and Social services, and Data-as-a-Service.

    No clean sheet, scaffolding -> you can start with examples, you know what to do

    This layer is all about composing for the business, by the business!

    And then the last step…
  • And we complete the picture by also bringing end-users on the same platform.

    This is a significant step as it blurs the lines between developers and users. Power users will have immediate access to all the power of the platform.
    Blurring the lines between layers -> people can move up or down if they like / can -> this significantly changes the playing field.

    Let me give you an example…
  • Why is it relevant to blur these lines? Do we want that?

    Well, every business on this globe is running on Access / Excel!
    So, we cannot do without…

    It is accessible… you cannot stop the gifted amateur!

    So, embrace him! In the modern era this means…
  • Just allow me to show another Mendix example…
    Released yesterday…
  • Easily invite users… spread the word…
  • … the quick switcher, to easily navigate between apps.

    It features a “create new app” button, so that any user start to play around. Imagine the power of this, in combination with the unlimited free sandboxes!
    Truly unlocking the creative potential of the entire workforce

    Do companies want this?

  • Yes, but only with proper control…

    In case of Mendix with admin for IT…
  • … and everything in-between

    Abstraction and automation on each layer!
    Everything is software defined.

    All these components, if done in a proper way, and if they collaborate, will enable companies to become a digital enterprise.
  • We need the knowlegde in this community -> metadata driven on each layer!

    Imagine what you could add to every aspect of this framework / architecture

    Still such a world of pain… if you look at it from a language engineering / modeling perspective…

    It would be an act of charity if we as a community would take this challenge!
  • Drive lower layers based on metadata on the model-driven PaaS layer.
    Feed model-driven PaaS layer with metadata from higher layers.
  • Drive lower layers based on metadata on the model-driven PaaS layer.
    Feed model-driven PaaS layer with metadata from higher layers.
  • http://www.wolfram.com/language/
  • Mendix App Service
    Runs somewhere else
    Import API model
    Powerful in combination with generic interpreter
    App Service extends microflow language

    E.g. data from D&B can be used everywhere in Model directly because domain model is part of API definition.
    UI definitions can directly use the data from services, no “integration” needed.
  • It is all about abstraction and automation… on each layer.
    Everything is software defined.

    But, as the world is waking up to these concepts, there is a huge opportunity for us as an MDD community to use our knowledge and experience on a much bigger scale.
    We should turn software-defined into metadata-driven!

    I mentioned 2 possible directions. These are just examples… I would love to hear your thoughts about this!

    One thing I know for sure…
  • …companies need all of this to survive in todays competitive market.
    They need to become digital…

    To transform to a digital enterprise your IT efforts need to become competitive it needs to become an integral part of the business.
    You can only do this by applying abstraction and automation on all layers.
    Software-defined should become metadata-driven…
    This dramatically increases the pace of innovation.
  • And in all of this… MDD should take the driving seat

    Metadata-driven FTW!
  • It is time to save your colleagues from being stuck in groundhog day.
    It is time to save your customers from being stuck in groundhog day.

    Do something about it. Start to save the world from being stuck in groundhog day!
  • It’s almost 6am…

    It is time to wakeup in a new day! It’s time for MDD to take the driving seat…!!!
  • Software is eating the world and MDD should be in the driving seat

    1. 1. Software is eating the World and MDD should be in the driving seat Johan den Haan, CTO @ Mendix Twitter: @JohanDenHaan Blog: theenterprisearchitect.eu
    2. 2. It feels like big parts of the IT- world are stuck in their own groundhog day
    3. 3. STOP!
    4. 4. Every company is a software company!
    5. 5. Storage Travel Taxis Music Payment Home automation Movies Cars Apps are disrupting industries
    6. 6. To disrupt or to be disrupted
    7. 7. There is no choice: embrace the digital enterprise
    8. 8. How to become a digital enterprise? How to increase the pace of innovation?
    9. 9. IT should be at the core of your business
    10. 10. How to make your IT efforts competitive? AutomationAbstraction &
    11. 11. Recalibrating our views on “cloud” IaaS PaaS SaaS
    12. 12. Yes, we still need hardware… Compute Communicate Store Layer 0 Hardware Servers Switches, routers Storage
    13. 13. The software defined datacenter Layer 1 Software Defined Datacenter Infrastructure engineersVirtual Machines Compute Software Defined Networking (SDN) Communicate Software Defined Storage (SDS) Store Layer 0 Hardware Servers Switches, routers Storage
    14. 14. What is commonly referred to as IaaS Layer 1 Layer 2 Software Defined Datacenter Infrastructure engineersVirtual Machines Compute Software Defined Networking (SDN) Communicate Software Defined Storage (SDS) Object storage Store Layer 0 Hardware Servers Switches, routers Storage
    15. 15. A layer in the grey area between IaaS and PaaS Layer 1 Layer 2 Software Defined Datacenter Foundational PaaS Infrastructure engineers DevOps Virtual Machines Application containers Compute Software Defined Networking (SDN) Routing, messaging Communicate Software Defined Storage (SDS) Object storage Store Layer 0 Hardware Servers Switches, routers Storage
    16. 16. The core of every PaaS Layer 1 Layer 2 Layer 3 Software Defined Datacenter Foundational PaaS PaaS Infrastructure engineers DevOps Professional developers Virtual Machines Application containers aPaaS Compute Software Defined Networking (SDN) Routing, messaging Communicate Software Defined Storage (SDS) Object storage Store Layer 0 Hardware Servers Switches, routers Storage
    17. 17. Abstraction and automation Layer 1 Layer 2 Layer 3 Software Defined Datacenter Foundational PaaS PaaS Infrastructure engineers DevOps Professional developers Virtual Machines Application containers aPaaS Compute Software Defined Networking (SDN) Routing, messaging Communicate Software Defined Storage (SDS) Object storage Store Layer 0 Hardware Servers Switches, routers Storage
    18. 18. IaaS and Foundational PaaS are quickly becoming an undifferentiated commodity
    19. 19. Adding differentiating services tIBM. Codename: BlueMix BigQuery Layer 1 Layer 2 Layer 3 Software Defined Datacenter Foundational PaaS PaaS Infrastructure engineers DevOps Professional developers Virtual Machines Application containers aPaaS Compute Software Defined Networking (SDN) Routing, messaging iPaaS Communicate Software Defined Storage (SDS) Object storage dbPaaS Store Layer 0 Hardware Servers Switches, routers Storage
    20. 20. A cloud architecture is a strong enabler of the digital enterprise, it increases the pace of innovation •Abstraction and automation allow to focus on what matters: apps •Apps that are data- driven, adaptive, and change in real-time
    21. 21. PaaS vendors only address the deployment piece of the equation, they lack a vision on application development.
    22. 22. Writing code is still as sluggish as ever. Why don’t we apply abstraction and automation again?
    23. 23. A model-driven approach that empowers business engineers Layer 1 Layer 2 Layer 3 Layer 4 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS Infrastructure engineers DevOps Professional developers Business engineers Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Store Layer 0 Hardware Servers Switches, routers Storage
    24. 24. Styling & user interaction Flows & actions JVM Browser ORM Access rules API & connectors Server communication Client-side logic Rich Forms DSL CSS Microflow DSL Mapping DSL Domain model Security DSL
    25. 25. Democratizing application development
    26. 26. Composing for the business, by the business Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services Infrastructure engineers DevOps Professional developers Business engineers Citizen developers Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage
    27. 27. End-users as part of the ecosystem Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services SaaS Applications Infrastructure engineers DevOps Professional developers Business engineers Citizen developers End-users Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage
    28. 28. End-user access to development capabilities? You cannot stop the gifted amateur…
    29. 29. Empower the business without loosing control
    30. 30. From hardware to end-user Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services SaaS Applications Infrastructure engineers DevOps Professional developers Business engineers Citizen developers End-users Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage
    31. 31. What do you see when you look at this? Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services SaaS Applications Infrastructure engineers DevOps Professional developers Business engineers Citizen developers End-users Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage •A lot of languages •Domain Specific Languages everywhere •A framework for language composition •A language engineering challenge •A huge opportunity!
    32. 32. The opportunity… Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services SaaS Applications Infrastructure engineers DevOps Professional developers Business engineers Citizen developers End-users Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage Turn “software-defined” into “metadata-driven”
    33. 33. 2 ideas for a metadata-driven future Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services SaaS Applications Infrastructure engineers DevOps Professional developers Business engineers Citizen developers End-users Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage 2 1
    34. 34. 1. Metadata-driven deployment and operations •Derive all deployment meta information and non-functional characteristics from model- driven PaaS layer •Specify as metadata and generate configuration for lower layers
    35. 35. 1. Metadata-driven deployment and operations •Examples:  Specify SLA for app, measure compliance at runtime, and adjust infrastructure if needed • Elasticity of resources • Deploy on location close to users (low latency)  App needs to communicate with service X and Y securely, automatically configure network to facilitate this  Configure iPaaS (integration flows, queues, etc.) based on specified integration points in app model  Characteristics and use of entities in the app model should lead to auto provisioning of the right database (type, size, scale)
    36. 36. 1. Metadata-driven deployment and operations Possible because everything is software-defined, but goes way beyond that!
    37. 37. 2 ideas for a metadata-driven future Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services SaaS Applications Infrastructure engineers DevOps Professional developers Business engineers Citizen developers End-users Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage 2 1
    38. 38. 2. APIs and data as first-class language concepts •Annotate APIs and data with proper metadata so that they become an integral part of the app model •APIs and data extend the language with “build- in” knowledge
    39. 39. 2. APIs and data as first-class language concepts •Example:
    40. 40. 2. APIs and data as first-class language concepts •Example:
    41. 41. 2. APIs and data as first-class language concepts Examples are small steps in the right direction, way more is possible!
    42. 42. Summary: abstraction, automation, metadata Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Software Defined Datacenter Foundational PaaS PaaS Model-Driven PaaS App Services SaaS Applications Infrastructure engineers DevOps Professional developers Business engineers Citizen developers End-users Virtual Machines Application containers aPaaS Model Driven aPaaS, bpmPaaS App Services Compute Software Defined Networking (SDN) Routing, messaging iPaaS Model-Driven iPaaS Communications and Social Services Communicate Software Defined Storage (SDS) Object storage dbPaaS baPaaS Data-as-a-Service Store Layer 0 Hardware Servers Switches, routers Storage 2 1
    43. 43. Summary: enabling the Digital Enterprise
    44. 44. MDD community, it’s time to take the driving seat!
    45. 45. Thank You Johan den Haan, CTO @ Mendix Twitter: @JohanDenHaan Blog: theenterprisearchitect.eu

    ×