 I think we'll go ahead and get started here. Good morning, everyone. My name's Riley Rainey. I have a colleague from, well, I'm from SAP. I have a colleague of mine, Nick Ford, from Mendix. And we're both going to be talking to you today about rapid application development on top of Cloud Foundry. So within the world of SAP, I'm sure you know, SAP is all about business software, business applications. SAP has been around for a long time, founded in the early 1970s. And of course, back then, there's no cloud. Applications are developed on-premise, heavily customized. And that translates to a lot of work. And a lot of things that are very custom to each individual business also translates to a heavy cost in the development of it. That model has worked for companies for many, many years. SAP's enjoyed a lot of success in that. But as the world has changed, business models have changed as well. The world of spending a lot of time with relatively static software simply isn't enough to develop the kind of solutions that are coming into the world today. And SAP is adapted in that world. So the kinds of solutions that you see here done at the bottom of the screen represent a portfolio of products that SAP sells. The core software-as-a-service solutions today have their genesis in many, many things that we used to do on-premise. CRM, core ERP, human resources, all of those different pieces of software today are available in SAP's portfolio in the cloud as software-as-a-service solutions. We still have customers that run on-premises well, though. The really big challenge in a software-as-a-service world is how to build that type of innovation on top of solutions that normally, 10 or 20 years ago, people would actually customize the core software that they were using and deploying. How do you separate out those things that are systems of differentiation on top of core software that today is software-as-a-service? The answer to that is proposed by a number of analysts. Some people talk about it as two-speed IT or bimodal IT. The fundamental idea is to have a layer on top that you can run as an agile software layer. That layer is where your customizations, the things that really differentiate your business, among others, can live and run. And also, very importantly, that that development can happen at the speed of agility. You can do traditional development in an agile sense there, run it as an agile software shop, but still have your core software more commodity-oriented, more cookie cutter, and avoid having the customizations in there, let the vendors supply the enhancements to that at a speed that makes sense for that. So at that layer, we might be talking about changes every month, every quarter. Your system of differentiation need to run at a completely different speed to really satisfy your needs there, and that's what we're all about with something that we call SAP Cloud Platform. This is a set of software business services, as well as platform level services to develop applications to customize the things that SAP does. Now, we're gonna talk about development tooling today, of course, and I'm just gonna make a couple of more comments about this, but I wanna just frame this with a thought that what we're gonna talk about today is not the only way to do development within SAP, we're gonna talk about one particular technology. All of that technology, though, runs on top of Cloud Platform, which in turn makes Cloud Foundry available. So we have services that are available in a very traditional Cloud Foundry sense. In other words, building spring applications, building node applications, bringing your own language into that environment. All of that is a hallmark of Cloud Foundry, and that's exactly what we make available within SAP Cloud Platform. Now, we also add business-level services, things like tax services, other business-level focused services on top of business-level APIs for all of those systems that you see down in the bottom. We provide secure access for people who are still running on-premise to access the cloud and then expose those cloud services in a secure way. So when SAP's customers are typically in large organizations, we have our history in talking to IT as sort of the core organization that we deal with, and those IT organizations typically face a common set of problems today. One of those is how to get the most innovation out of what you're doing. A lot of those developers in IT organizations are full-stack in the sense that they're comfortable developing services, they know how to work with databases, they can build systems from scratch, even in the cloud today. One of the things, though, that is a common challenge within this is you have, that can't be the only source of innovation. If software is what differentiates different companies, it really drives innovation fundamentally, that core group of software developers can't always satisfy the needs of what you're trying to accomplish, and that's where branching out from that core set of developers that you see at the top of this diagram into other areas is very important to our strategy, and that's really central to what we're gonna talk about today. There's sort of two communities that have traditionally been left behind. One is areas where you have business specialists, people who understand the business, but might not be as technology savvy, as development savvy, as a typical DevOps-oriented developer, a typical cloud foundry developer even. We need to be able to tap into that. We need to be able to get innovation out of those people and have them contribute meaningfully. That also, as you start to work down the spectrum towards the real untapped areas, citizen developers, people who really might be technology savvy today, but not in the sense of true software development in any capacity. We wanna branch in and make those people active contributors into the innovation within a company, and that's really what we're gonna focus on today. So I'll hand things over to Nick at this point. He's gonna talk about rapid application development tooling and what that really means in the context of SAP Cloud Platform, what Mindix is all about, and how that relates back to the enterprise. Hi, can you hear me? Oh, I'm on. Okay, thanks, Roddy. So I have one primary objective, and that is to really talk to you about how LOCO can help you empower development teams of the future to leverage rapid ways of developing applications, but also to maximize your investment in Cloud Foundry. So how do we use LOCO platforms to maybe push the sort of dev option that you might be on at the moment, maybe into more of a sort of biz-op journey? So how can we involve those business users in the development process to ensure better outcomes? And I wanna take a look at this particular chart. The gap between the ability for the business to drive new technology solutions and IT to deliver that is only getting bigger. The pace of change in terms of demand from the business for new applications is increasing exponentially, and IT's ability to be able to deliver that is becoming very, very difficult to achieve. Obviously, looking at Cloud Foundry technology to enable that proposition is a significant advantage in moving forward to continuous integration, continuous development, dev ops and so on, but we feel that LOCOD adds a further level of productivity capability to enable you to bridge that gap between business and IT. I'm not gonna talk about that anymore. What I want to do is I want to dive in and start using some technology. I'm gonna try and cover an awful lot of ground in this presentation, and I might run out of time. So apologies in advance if I do, but I wanna try and give you the best flavor I can for what LOCOD development actually means. So let's get real, start develop something. I'm actually positioned right now in the Mendex platform. This is our developer portal. It's where we bring together teams that will collaborate. So we're all used to agile teams, scrum masters, product owners, business engineers, developers, et cetera. So we'd invite them to our products and we'd start to build applications. I'm gonna do very much that. I'm gonna start from scratch and build a new application. Let's see how far we get. This application will be an app that uses SAP purchase orders and will integrate, do some integration with SAP S400 in the cloud. We'll hopefully push the application into SAP Cloud Platform as well. So we start with the basic premise of starter applications. I'm gonna choose one of these from the list. Give that application a name. We'll call that Cloud Run S22. It's just a unique from the cloud. What the platform will now do is start to spin up everything that I need to start developing my application. So it's gonna create me a cloud sandbox, cloud foundry sandbox to deploy my application with up to 10 users. It's going to be only a version control repository to manage my checking in and checking out of code into the platform. It'll build a collaboration space where I can start to invite my team members to join my project and begin to collaborate on the building of applications. And I can now start to invite my team. If you won't do that, we can invite teams to specific roles and responsibilities. What I will do is just show you a little bit around managing things like stories and requirements. So baked in to local platforms like Mendex is the opportunity to be able to build user stories and to save me sort of typing one in here. What I'm doing is I have a simple user story to the platform. Very lightweight touch. But the ability for teams to start to define their requirements is sprints and sprint plans, burn down charts, all the kind of things you'd want to sort of rapidly ideate around a project. So the platform covers everything from ideation through to deployment, management, feedback, and so on. But let's get started and start to build our application, out of our application. So what I'm going to do is start with what we call our web modeling environment. So a web modeler is a frictionless tool that allows you to fire up in the browser. The ability to start to build your software. You'll build your applications. So it's a business user I can get to very quickly and start to build my user experience. So what I'm going to do here is I'm just going to remove some of these items from this page that I don't need. You will get rid of this. So I don't need it. And we'll probably end up with just two of these blocks left. So these are actual just design patterns that are pre-engineered into the solution. So you can create your own design patterns in that respect. What I'm going to do is actually create a series of pages. So user experience to allow us to leverage goods inwards. So checking in purchase orders. So we're going to check in purchase orders, responsive design screen. And we're going to integrate that with the SAP S4 HANA back end. So we have a button here, this button. What I'd like that button to do is to call a new page. I can click on the button, follow the wizard, and create a new page. The new page will be called goods in. Here we have a series of predefined patterns. So I can build within what we call our Atlas framework the ability to be able to create my standard design patterns. So as an organization, I can create user experience. I can create brand recognition. I can create common patterns that work across multiple different form factors, provide them to the developer so they don't have to start to build those from scratch. So you can engineer a level of standardization across those apps as they're built out at speed and scale. So we're going to select this particular list operation here. I'm going to hit the create button. I need to give it a name, call this goods in, and hit the create button. So we now built a new pattern. I don't want any of these items here. So we're just going to remove this here. Now what I want to do is I need to hook this up to a data model. We don't have a data model. But I'm going to design the data model from within the page. So taking the design-led thinking approach, I can say, well, what I'm going to need for this particular booking in is I'm going to need a new entity. And that entity will be called goods in. That's it, the create button. So we now have a new entity. I'm going to map up these placeholders now to attributes within that entity. So I'll start to build them again from within the page. The title I'd prefer not to be called title. Now I'm going to change title to be called receive by, which will be a string. The details will add some notes to this. So we'll have a notes field, which allows me to take what the status of our checks and goods was. And then finally, we'll have a purchase order number, which is the purchase order number we're going to use to link into the S4HANA back end to do our integration search. I don't need this pattern on the right-hand side. What I can do is now add a new page to my add button on the top of the screen. So what this allows me to is actually physically add in the data components or the data for my goods checking in. So I'm going to follow the same button again. I've now created a new entity called goods in. Let's select that. And I'm going to create a new page to manage the checking in of my goods. Again, because it knows what I'm actually doing here, it's selecting the common page patterns for me. And we'll enter goods, edit, and hit Return. OK. So we've now created a new sub-page for our data entry. So a very rapid way of designing these applications. If I click an attribute, what I can do here is simply add in the goods in data file and map up my attributes according to the ones that I created. So whenever I receive by, we're going to have a notes field. And we're simply going to get rid of these ones here. And then finally, we'll allow the user to enter in their purchase order. What I don't want to do is I don't want to save this. What I want to do is when a user enters in a purchase order, I want to go away and create an integration point. So what I want to do now is drill down beyond that initial prototyping phase, which you might have a business user be highly involved in into integration, which requires more of a technical understanding of the architecture of building, for example, REST calls and so on. So let's create this button here. Let's add this to a microflow. And a microflow in Mendex is a simple way of just calling logic. So we're going to say get OP, and we'll create a new microflow called get SAP Purchase Order. And hit Create. OK. So it's created me the basic structure of a microflow, which is effectively engineering logic within the platform. Again, highly abstracted, model-driven, fairly simple. We've got a cut-down palette here of specific capabilities, which are basically CRUD capabilities, the ability to create new objects, update objects, delete objects, and so on. So simplified palette designed for those individuals that really want to get down to build user experience really rapidly, create some basic data entry, and then hand that over to other developers who may then take that and flesh out the application with regard to integration. So if we think about the continuum of developers and how development teams starting to look within large organizations now, and the teams of the future will bring the business closer into this development process through technology like this, but create a continuum of development, starting with potentially the business analyst as a rapid developer, then handing over to more experienced developers to build out the integration capabilities and complex logic that fits behind this. So I'm not actually going to build anything within here. What I'm going to do is add some commentary. So please, please add a SAP PO integration here. OK. What I'm going to do now is hit the publish button. So we've built the basics of my application, going to hit the publish button, and have Mendix push this application directly into Cloud Foundry. So in a few seconds, once it's finished doing that, we'll be able to run this application and test it. That's all I need to do. While we're doing that, which we've done now, while we're doing that, what I would do is just go through some of the elements of the platform. What's happened behind the scenes is that I've built my underlying data model. So this data model is actually being prepared for me by the platform. I can start to flesh that out. I can add attributes, associations, reference and integrity to that data model. But it's been built automatically through the design of the screen. So speeding up and accelerating that design of the data model. So if we now open up our application, which is now running in the Mendix sandbox, we have our new form. And we can now drill down into that form. Oh, excuse me. Let me just go back to our page here, back to our home page. Go back to home button. Good seeing. Let's publish that again. OK, so we'll let that do its update. We can now run that application in the Cloud, which is now publishing and changing. Effectively, we can also engineer and redesign the user experience. So as part of our platform, we have an Atlas framework. The Atlas framework is effectively CSS3. We can change those classes. We can surface those classes so that non-professional developers can change the look and feel of application by simply selecting individual classes, surface, through drag and drop, and just selection of. For example, it's going to change the top bar of my application. I've changed that to a different color. You see that that changes automatically within the browser. That's an instant change in terms of the design elements of that application can be deployed into the Cloud. OK, so let's now just take this to the next step and open up our desktop modeling environment. So what we've done within the platform is we've built out the user experience for the application. What I now want to do is to hand over to our desktop modeler. And the desktop modeler takes the concept of rapid application development to the next level. What it allows us to do is to provide tooling for more professional developers to build out the integration points. So we're going to actually now use some connector kits from our app store, which will allow us to integrate seamless with the SAP platform to call our remote purchase order. What the system is doing right now is downloading from my vision control repository to my local machine the instance of the model that we developed. Takes a few seconds. Once I've done that, what I'm able to do is open up the application. First of all, I can see all of the user stories that we defined within the current sprint that I'm working on so I can get to and start to say, well, I'm actually going to be working on this particular user story. And then what I can do is commit my chain. So as a developer now, I want to commit and initialize my vision control repository. And the reason I'm doing that is because in the continuum of developers, where we're involving business users within the development process or business analysts within the development process, we want to maintain a level of control. So it's about high productivity with high control, which in part comes through the adoption of Cloud Foundry, but also comes within the technology. How can we ensure that our developers are not tripping over each other and they're rapidly developing at front end and then building the integration from the back end? So what I'm going to do now is I'm going to synchronize between the web modeler and the desktop modeler. And the purpose of that is, if I go back into the project now, open up the web modeler, you're going to see something that's happened within web modeler. I've been locked out from the process. So as a business developer or a business analyst, I've handed over control. And the rapid developers taking control of the model, he's merged in that branch line into the mainline branch and now we can start to develop integration that underpins the application itself. So let's go back into our platform. You can see it's downloading and merging the models between the two environments when they're complete. OK, so what I'd like to do right now is we have a microflow. You remember this microflow that was created within the web modeling environment? So microflows are way of building logics. How do we start to integrate with the party systems in a rapid way? Well, part of the platform is our ability to create reusable connectors. So connectors can be developed in many different ways. They can be developed using core microflows within our technology. They can be built up using external calls to Java, for example. We can wrap those connectors up and repurpose them. So we're extending the model and providing capability to be consumed by rapid developers in a really controlled manner. So there's two things I want to do here. I want to look at finding an OData connector. We're integrating with the SAP platform using OData. So we have an OData query builder, which I'm going to download into my model. I can do this from the web model as well. This is dependency. We rely on the OData query model, which allows us to construct the OData requests to call data from Linux. And now we're going to open up our purchase order. So we have a whole series of SAP connectors out of the box, which is the S4HANA purchase order connector. So once we've opened up that, we can download that connector to our local model. And we can start to use that connector within the integration services from a Mendex platform. So let's download that. And once we're done, we now have two new additions to our model, which we can start to leverage within the microflow. So let's start to use those connectors. Open up the toolkit. We now see the extensions. We see the OData query module. We see our SAP purchase order connector. So let me drop that onto the work surface. SAP PO connector takes a simple input of the purchase order number. So let's double click on here. I want to pass into this particular connector, the purchase order number from our newly created entity. So we now will have a purchase order return from SAP. So SAP PO object. And OK. So we now have access integrated with SAP. We'll return a purchase order number based on the PO that I've given it. What we can now do is start to commit our goods received object. So we now have a PO. We're going to commit this to the database. And then finally, once we've done that, we're going to present that purchase order on the screen to the user. So I'm going to show a new page. It will use the returned object from SAP. We'll create a new page within the platform based on this column pattern. It's taken the schema that it drew down from the connector. So the connector already has the schema defined within it. And it's used that schema to define my page. So here's the page that's created automatically using the connector and the schemes that underpin that. OK. So let me just go back to here. Just make sure that everything is connected up. I'm just going to resize this page here. You can look a bit prettier. Well, I'm just here. OK. So we should have what we need. And this button goes to our goods received page. And from here, we are able to add in our goods received. So what I'm going to do now is I'm going to run the application locally. So what I don't want to do, as a developer, I don't want to have to push this application back up to the cloud to be able to test it. What I want to do is to be able to run a local test to make sure that everything works on my local machine. So let's build locally. And then we'll try and run this application. We'll try and show you a bit of integration. What I want to finally do is then close off the lifecycle of this application by, OK. So we already have one of these running somewhere else. Let's just move this one here. What I want to do is close off the lifecycle of this application where they commit to the SAP Cloud Platform. So to, in a sense, productionize the application. So we've taken it from the web modeler into the desktop modeler. We've provided the integration. And we have the capability then to, here's our sort of system where we can enter in the name of the individual, the notes. If I head off to my SAP environment, maybe we can very quickly have five minutes left. I want to very quickly show the integration where possible before I push into the SAP Cloud Platform. So what will happen in a second is we'll load up SAP S4HANA. We'll create a very quick purchase order. And we'll then hand over that purchase order into our new system we've just developed. So let's wait till that finishes loading. I should be able to squeeze this in within the next couple of minutes, hopefully. OK, so we have a purchase order system here. This is running in S4HANA. I'm going to add a new order for a battery. Let's hit Submit the order. This will give me a purchase order number. I'm going to take this purchase order number from here. I'm going to go back over to my application. I'm going to copy it into here. Let's hit Go. Now, this has actually been returned from S4HANA. So it's integrated. It's called the HANA system. It's found the purchase order, returned it to me, presented it on the screen. Now, for those of you that think there's smoke and mirrors happening behind the scenes here, what I'm going to do is going to very quickly just create a break point for you to see that acting in slow motion. So let's go back to our page. Hit the purchase order again. We see we open up the platform now, Traps. The platform Traps that response. And I can step through. What's important here is you see that it steps into a whole series of logic and micro flows that exist behind the connector. So I was able to develop this connector, package it towards the RAD developer. So they did all of this complexity was hidden. And what we're actually doing here is if you look further on the chain, as we're calling a REST service, that REST service returning a JSON response and we're mapping that to our data model. But as a rapid developer, I don't need to know any of that's going on without the scene. So these are the two links. This is the tool that allows you to provide high levels of productivity to combine that continuum of developers, which is the sort of business developer, the tech-savvy business analyst, and the professional developer. And then to push this into DevOps. So finally, to complete the chain, what I would do is to finish the synchronization with the web model. I want to unhook. I've finished the development work. This is the user story that I created within the integration point. I want to push that back into the project, set it to done so that our testing team can start to automatically test that. So if I hit OK, what that will do is push that change back into our version control. So we have a version control repository. We're continuously integrating those revisions of the models as we go. And we're synchronizing those users to ensure that there's a high level of control between those different types of developers. While that's doing its thing, there's one final thing that I want to talk about. And I've got a couple of minutes left to do before I guess open up for questions if there are any. And that is, we've developed our solution. We've integrated with SAP. We've created our front-end. We're good to go. Now we want to deploy this into production or into acceptance or test. So what I'm going to do is go back into the platform to talk about how we've abstracted that DevOps layer. So I've extracted beyond just the development, but also into how do we take this application model? How do we now push that into a test acceptance environment in Cloud Foundering on SAP Cloud Platform? So let's very quickly show you that. I go back into general settings. I'm going to go to my cloud settings within the context of this application. Let me open that up, set up SAP Cloud. Now if I'm coming from the SAP Cloud dashboard, I'll be logged in here automatically. What I'm going to do is to log in from here to my SAP Cloud Platform. It will spin up the ability for me to add an environment. So I'm now going to add an environment to my instance and my organization exists. So it's going to be a Cloud Platform. I'm going to use this trialing account. Use the dev space hit next. I can now allocate the resources for this. Let's just stick with what we have right here. Let's call this and then finally give it a secret hit next. So Mendix is now creating me an environment within SAP Cloud Platform to deploy my newly created application. Once that's complete, what I'll be able to do is to create a package. So we can create a package from our version control repository. We can check out from a specific trunk or branch line. Let's take this one here. I hit Next. It will allow me to now build my deployment package, version it, create the build pack. And the next thing I'll be able to do is deploy that application into my Cloud find instance running on SAP Cloud. I'm conscious that I'm sort of bang on quarter to then. Co-ed an awful lot of ground in a very short period of time. But just to summarize what we've achieved then, I'm hoping that some of that stuck. We did get through a fair bit at a fair pace. But we started off by developing applications using our web modeling environment, frictionless in the browser, simple UI patterns. We handed that over to integration within our desktop model. We built integration to SAP S4HANA purchase order system. We deployed that into version control. We merged the two models. And we handed over control between the two different developers. We deployed that. And then we pushed it into SAP Cloud Platform with Cloud Foundry. So that's a very rapid flavor of what we believe Loco brings to the table when leveraging your existing investment in Cloud Foundry and how it can push beyond DevOps into involving and bridging that gap between business and IT. I'll finish there. So Nick, I'll play straight man for a second. You covered a huge amount of ground there. Mindex, essentially, is not just the development tooling, but also the agile collaboration, process tooling, really end to end, all the way to deployment. Yeah. So if you're looking at complete application lifecycle management from ideation, design-led thinking of building the screen, is not having to build your data model before you create the pages. Creating the page and the data model together. And then handing that over across the entire lifecycle management from development to deployment. What I haven't shown you today is automated testing, quality management, tying user stories and test cases together in the portal. So that whole complete ALM from idea to deployment and production scaling using Cloud Foundry, as we believe is extended massively with these kinds of technology. And this is the way that the future development teams will look, combining cross-functional teams that have people seconded from the business as product owners in an agile environment, where they can leverage models like this, which are visually simple to understand, easy to build, but have the capability to deploy on top of technologies like SAP and leverage that very rapidly, bringing down the cost of development and speeding up and accelerating deployment. And I also noticed in there that the apps you were developing were working both on desktop and mobile devices. Yeah, absolutely. So everything I'm done very simply is responsive to start with. So if I drag in the screen, you'll see it's going to respond accordingly out of the box. But that's one pattern. We can create very real experiences which are mobile-enabled and experiences which are responsive in nature. It really depends on the design patterns you wish to implement within the technology. So you have a true omnichannel approach to rapid development as well. Cool. Any questions from the audience? No? OK. All right. Thanks a lot, everyone. Thank you. Thanks for your time. Thank you.