YuChuan: Good afternoon, everyone, welcome to OutSystems' webinar: "Is This the Fastest Developer in the World?". My name's YuChuan Liu, and I'm your host today. Before we start, please note that this webinar is being recorded. Participants are in listen- only mode, but will be able to ask questions by using the chat function in the control panel. Submit your questions to the webinar host so they can be collected for the Q&A session at the end. I would like to introduce our presenters.
Andy Burgess, Solutions Engineer. In this challenge, he represents in Lead Developer. Daniel Laurenço, Solutions Engineer Manager. He will play the role as the Head of Development. We have Andrew Korczynski, Enterprise Account Manager. In this challenge, Andrew will represent the business user. Now I would like to hand the speaker to Andrew Korczynski.
Andrew : Good afternoon, everybody, and welcome to our webinar and thanks very much for joining us and greetings from sunny London. Just a very quick look at the agenda for today before we dive in. We're going to have a very quick overview of what OutSystems Platform is just to give you a bit of background information and then really dive into the challenge itself which is to give Andrew the challenge of building, in this case it's going to be a small application for today. There's actually two challenges, because then we're going to look at changing an existing large application, so you'll see both ends of the spectrum. Then a bit of wrap up at the end. We estimate we are going to take 38 minutes of your time today. Just very quickly what OutSystems Platform is. It's actually an application life-cycle platform. The area that we're going to concentrate on today is in developing a new application, but we will touch on tools that help you deploy applications from development into QA, into live and so on and then monitor those applications, how they're performing so the users are guessing the response times that they expect. And then the second challenge is going to touch into maintain that upgrade and we're going to look at how we can upgrade applications. The obvious question really is develop what? The sweet spots for us are developing new web applications or developing new mobile web applications as well as adding business processes, new processes to ERP's, CRM's and so on and then also modernizing legacy apps, and putting a nice, glossy front end on top of those green screens. Going to hand it over to Andrew B now for just a one minute, quick-guided tour of the platform before we get started with the challenge.
Andrew B: Hi. What we will be looking at today in the demonstration, we'll be looking at all four layers that you have in a typical access of application, so we'll be doing some work with the process layer, the user interface layer as well, the business logic layer and the data modeling layer as well. We'll cover all of those in today's work.
Andrew: Okay. Very good. Let's just jump back to PowerPoints. Let's introduce the challenge. I'm taking the role of the business user here and I've asked for an event management system, and it's going to be made up of two main parts. First of all, I'm asking for a back office side to it where I'll be able to create my events, do their details, look at my event listings and so on and then also download the registrations for each event and then I'd like Andrew also to update our website so that our website visitors can look at the events, look at the details and so on and obviously register for those events. When they register, I would like to get an instant confirmation email and then what I'd also like them to get one day before each event is a reminder SMS. The challenge that we're going to give Andrew is to do all of this in 20 minutes, so if you would like to get yourself ready. At this point, I'd like to introduce my colleague Daniel Laurenço who is taking the role of the Head of Development who is going to help us understand what Andrew is doing. Afternoon, Daniel. How are you?
Daniel: Hi Andrew. Good Afternoon.
Andrew: Good. Excellent. I'm just going to get the clock running. Are you ready Andrew?
Andrew B: I'm ready. Andrew: Okay, so three, two, one go. Okay so Daniel could you just explain to us the basics, how it's getting started here, please.
Daniel: Okay, so what Andy's doing at the moment, he's creating a new application module basically to do the back office of event management. It will be mainly the database events and the internal pages to manage the events. You see that's what he's doing at the moment. He's basically preparing the application layout in a centralized layout configuration area and this will then affect the whole layout. You can customize it and it will affect the whole layout of your web application. Where Andrew will start is in the creation of the data model of the application. We're using an Excel sheet that you are seeing. That is the Excel you see already use today that you manage your events Andrew.
Andrew: Yes. Exactly. I recognize that Excel sheet. In case you didn't see it, I know he's going really fast here, but that was a list of my current events. It had the event description, the location, the date and time and so on. I noticed that he just grabbed that spreadsheet and dropped it into the platform. It seemed to create a table for him. Is that what happened?
Daniel: Exactly. Andrew used an accelerator to create the first database table in the application. That was event from the Excel. The platform analyzed the Excel and generated the table automatically and now he's doing generic database modeling activities by creating new tables, a registration table associated to the event. Creating fields, creating mandatory rules. All the typical stuff that you would do in the creation of a data model in an application.
Andrew: Right. I've had experiences in previous slides where I've run into problems, like you might have a limited number of fields in a table or number of tables in an application. Are we going to run into anything like that here?
Daniel: No. What you can do here is exactly the same thing you would do in direct scripting to create the data model in your database. Typically, it would do with DDL and SQL script. The difference here is that you create your data model visually, your foreign keys, your table and OutSystems Platform will take care of the heavy listing of generating the SQL scripts for you to create the application directly into the database. Standard data modeling capabilities.
Andrew: Okay. Very good. I know we have a few software developers joining us for our webinar today and I noticed an interesting field on the advanced tab there. It's a field called "is multi-tenant." Can you just explain what that is, please?
Daniel: Yeah. OutSystems Platform supports multi-tenancy out of the box. That means that you can create software as a service solution or multi-country solutions where the data segregation will be done automatically for you. You don't have to worry about that and you can just build your software-as-a-service solution and the platform takes care of all of multi-tenancy details automatically.
Andrew: Right. That sounds good. I noticed he went into the user interface layer and now he's gone back to the tables and he's just grabbing the tables and dropping them onto the canvas. Is this where we're going to see screens being built?
Daniel: Andrew is now using a lot of the accelerators in the platform. You see that he generated three screens very quickly to list and to edit events. Basically these are accelerators that do common developing tasks for you. If you want a screen to list events, you just have to drag events automatically to that screen and you will get that event listing like the registration's page. The standard stuff is done for you automatically by the platform. There you have full flexibility to adjust. Now that Andrew is creating a feature to download the list of registrations in an event. The platform accelerates the creation of standard stuff, but then you have full flexibility to adjust it.
Andrew: Right. Two interesting things there. I noticed, so first of all it's creating the screens for him, which is good. That's making it back. If I did want it tailored, you're saying I can still have my layouts how I want them, and I noticed he was bringing data together from two tables onto one screen. Is that true?
Daniel: Yeah. You can adjust everything. You can adjust the layout, you can adjust the functionality. Here, you can see that Andrew is using a business logic modeling language, visual language to create his own specific visual logic. This is a highly powerful language. He can basically implement anything he would typically implement with Java or .Net lines. The difference is here you do it visually.
Andrew: Right. This bit where he's building the Excel exports or download, am I going to get a genuine Excel file? I noticed he called it registrations.xls or am I really going to get a text file which I then to have to manipulate and remove delimiters and all that sort of stuff?
Daniel: OutSystem always wants to accelerate standard stuff, so creating Excel is extremely common in business requirements. You have built-in capabilities to generate genuine Excel files.
Andrew: Okay. He's now come into the processes layer. I'm assuming I can see as he's typing, what is this conformation email, so I'm assuming this is where he's building the process that is going to trigger the confirmation email and then also the SMS one day before the event. Is that correct?
Daniel: Exactly. Before Andrew created the database of the application, and the internal interface is the back office interfaces to manage that database, but in fact what we want to make sure we have is a broad system management registration, the registrations themselves. And what Andy's using now is the business process technology of OutSystems. That is basically a BPN, business process modeling solution within OutSystems. We email notifications, automatic activities, human activities, everything that you would expect from a standard BPN solution. Here you can see that he basically created a process where he sent an email to the user and an SMS one day before the event itself happens so that the user doesn't forget that he has an event the day before. Now we can see that Andy's actually drilling into the details so we have the skeleton of the processing. Now he's going to implement the email itself. OutSystem includes an email designer, so just as you can create web screens as you saw before, you can also create email that will be sent by OutSystems Platform once that process is kick started. What you see now is Andy creating this email visually.
Andrew: Right. Okay. One thing worth pointing out is that the application we've asked him to build here is obviously very simple for the purpose of a 20-minute demo. Can you tell us a bit more about our client applications go into multiple business processes? The more complex stuff?
Daniel: You are right, Andrew. This is in fact a very, very simple application as we're showing here. And the OutSystems business process technology has been using the most varied scenarios. Naming a few, we are currently using OutSystems to streamline all administrative processes to hospitals in Kuwait. We have a retail customer that is currently implementing dozens of corporate wide business processes in the organization. Here I'm talking about core processes like the hiring process. They have more than 60,000 people. Also the creation of new brands with the interaction with external parties and the multiplicities of internal departments and all of that is being controlled and monitored with the OutSystems business-process technology. The most dramatic example is actually Van Ameyde, a claims handling company in Europe that executes millions of claims handling processes in 16 different countries in Europe. We have millions of processes working with different legislation, different companies themselves, different currencies, and all of this complexity and load is being managed by OutSystems Platform and particularly with the OutSystems business process technology.
Andrew: Okay. Very good. I noticed he put in "regards ACME," so I'm assuming that's the end of the email. Is he now onto the SMS bit? What is this condition? What's he building here?
Daniel: Now Andrew is really into the details of the process. At the moment you can see that he's building a piece of logic to implement a business rule in the process that decides whether the user provides or not the mobile phone. He's using the OutSystems visual business modeling language to implement this logic. Now he will have to go into the other details. For example, how to configure the wait-until events and wait until the day before sending the SMS to the user. You see that here he is using an expression editor in the platform that is reusing the information in the database, reusing business logic functions and he's reusing built-in functions like subtracting a day to a date and that's how he configures a wait until event. Finally, the most interesting one is really how will Andy send the SMS? You see that he's having a web reference to his application. This means that by just providing the [WSEL] definition of an external web service and he immediately has access to a web method to send an SMS. He needs business logic flows. This means that now transparently, you saw he just dragged the "send SMS" action. All he had to do was to build the business logic around it so it's capturing information like the mobile phone and it's still going to indicate which message to send that will obviously be: "please do not forget you have an event tomorrow". This is really just one example of extensibility in our systems and integration. Our web services are extremely common, but we then have dozens of integrations with direct connection to the database, message queuing, invoking API via library, all of this is possible with the OutSystems technology and then you can leverage those integrations in the visual language transparency just as Andy did.
Andrew: Right. It looks like that is the message that I asked him to put in. "Don't forget event tomorrow." It looks like he's coming to the end of that process. He's just putting in this is the subject of the email. You need one of those. It looks like he's coming pretty close to completing the process now, is that right?
Daniel: Exactly. Andy is just finalizing the process. Everything is okay. He's now clicking the one click publish button.
Andrew: Right. This 1-click publish button, this big green thing at the top, what is that about?
Daniel: This is a fundamental capability of the platform. That is an automatic installation of the capability. Clicking that button, the OutSystems service model to the server and the OutSystems server analyses the model and generates a fully standard asp.net or a Java application and the SQL scripts to create the database in the database engine. The important thing is these are fully standard applications with no interpreters or libraries that are closed in the middle and this will run in a standard architecture. We're talking about standard web server, be it in a .net or Java stack using a standard database in a SQL server or an Oracle database. Once the application is generated, the platform will automatically install it and we're done.
Andrew: Okay. I can see in the bottom left it said done. I'm assuming that means the back office is done. Just for a quick time check for everybody, that was 11 minutes, 22. If you've done the back office in 11:22, he's now got the front office to do. I'm feeling quite confident that I'm going to win and he's going to come in at about 22 minutes. What do you think? We're into the front office now.
Daniel: Well let's see. Andy is going really fast. You can see now in the front office, what he's doing is leveraging everything that he did in the back office. He's creating a link to the event management back office and he's going to reuse the event and registration data in his front office website that he is now creating. We will actually reuse everything that we did before.
Andrew: He's actually going to get faster? Daniel: Yeah, you will get faster. That's what happens. So you can reuse whatever you did before because OutSystems has loads of reusability capabilities.
Andrew: Okay, so it looks like I might be buying lunch after all. I'll just start distracting him here I think.
Daniel: Actually you can see Andy used the accelerator that he used before in the back office, but you can notice that the look and feel is actually pretty different. The navigation and the color scheme. This is really important to point out is that with OutSystems, you have full flexibility towards just the look and feel of your application. You can even see that he's doing small tweaks to the way data is displayed, how this will display in mobile. The idea is really use the accelerator creator screens and then tweak them as you want them exactly to work.
Andrew: Right. You're mentioning mobile there. I didn't ask for a mobile version of this. Am I getting that as a bonus in this challenge?
Daniel: I think that will be a surprise, let's see.
Andrew: Okay. Let's see what he's doing. Yeah. Exactly. Okay, so I noticed that these screens again are being built automatically for us but he's just doing some fine tunings on things like data formats and so on, stuff like that, so I guess it's exactly the same principal that he was using before and he's put in something called map. I didn't ask for a map. What's he doing here, please?
Andrew: Right. Sounds good. I noticed previously where we've been having the green one at the top. We've now got a red X and down at the bottom left, another red x called true change. What's this telling us, please?
Daniel: That's another characteristic of OutSystems Platform. The platform is constantly monitoring what you are doing. Whenever you break the consistency of your application, the platform will tell you by showing the errors in the applications with these red x's. What happened was that Andy started the creation of the registration page. That's where he's working now, by creating a default screen and then he deleted a lot of things like related screens, queries that were already in the screen, he broke the consistency of the model. What happens is that the platform immediately analyses the impact of those changes and tells him. Now he's going one by one fixing them and adjusting the screen. If you think about this impact analysis capability that also monitors the impact of the action in an application is exactly what gives you the ability to change applications extremely fast because you know the impact that this will have in your application. Basically, fast and robust change is only possible if you have an impact analysis capability because otherwise your users will get problems in production because the errors will reach that point.
Andrew: Yeah exactly. It sounds to me like if you work through all of these errors, that's what you're saying, a benefit to me the user is going to be less hectic for me is that right?
Daniel: Exactly. With OutSystems, you never get low level technical errors because those are immediately validated in design time. You are using a high level language that is always validating these type of errors for you, so you would never get the 404 page in an OutSystems application or some error inquiries, because all of that is validated for you even before you publish that application to the server.
Andrew: Right. I noticed you pressed the green button once again and that happened at 17 minutes and 15 seconds, so this took, the compile took about one minute last time, so it looks like he's actually going to win. It looks like he's actually going to do it in about 18 and a quarter and a half minutes. Do you think, Daniel? Am I buying lunch today?
Daniel: Yes Andrew. I think we're getting lunch.
Andrew: Excellent. So just while that is happening, there's people talking about things like non-functional requirements that I'll be getting as well. What's that about, please?
Daniel: What I wanted to point out in all these processes is that the applications that OutSystems generate in this compilation process are high quality applications. You have huge optimizations, dozens of optimizations already included and security features like the code being validated by HP . All of that is built into the application, so your applications are already enterprise-grade ready. There are not small applications that will become non-enterprise applications that have to be thrown away to being factory built with an enterprise-grade characteristic.
Andrew: Okay. Sorry to interrupt you, Daniel, but if you notice in the bottom half corner, the done appeared and I just stopped the clock at that point, and it was actually on 22 minutes.
Daniel: No, it wasn't. Andrew: Sorry. I'm making that up. It was on 18 minutes and 18 seconds. Obviously, you've won the challenge. Let's bring Andrew into it. First question for me Andrew is I don't know if you know, but we did this webinar last week and you're three seconds slower. What's going on, Andrew?
Andrew B: I must have had more coffee last week.
Andrew: Excellent. How was that for you? Did you enjoy that?
Andrew B: Yeah. I loved it. It was great.
Andrew: Excellent. Good stuff. The proof of the pudding is always in the eating, so can we see it working right, please?
Andrew B: Great. Yep. Here we go. This is the [full] version of the public website. We've now got the additional events section that we didn't have before so if we drill down into there. What we should see is the list of events that are upcoming. These are the ones that came. They're boot strapped from the spreadsheet. So there you go... Go through and have a look at the details on one of those.
Andrew: I like it.
Andrew B: Just make sure we've got the validation that came from the data model. Let's just put some details in here. There we go.
Andrew: Very good.
Andrew B: We'll give them a mobile phone number so that we get the text to come through.There we go. We'll have a look at the mobile preview as well. See what this would look like. There we go.
Andrew: This is good.
Andrew B: Fit's on there because we nominated one of the columns to not appear.
Andrew: Is that what that hidden mobile was about. Very good.
Andrew B: There we go. We'll register up here. Let's see, Sam Smith. There we go. Now we can have a quick look at the back office. See the events there. This is what we're interested in seeing the registrations as you mentioned, details of the events... We download the registrations. They come with a file name. We have the details in Excel spreadsheet and there we go. Just want to make sure as well, just a quick look at the emails. Because this is a development environment, we're not actually sending emails out, but what we can do is we can check what would have gone out. I'm just going to the service center here. Go back on monitoring email. There we go.
Andrew: We got a couple of confirmations of registrations.
Andrew B: Yep. We'll look and see what they would look like. There we go. That's the email.
Andrew: That's good.
Andrew B: That's it.
Andrew: Right. I declare you the winner of challenge one, but let's just jump back to have a quick look at the agenda. This is the challenge that we give to our users. Go to the website, put in the emails, put in the SMS.. The second challenge that we're going to look at is going to the other end of the spectrum. Instead of just looking at the development of a small application, we're now going to start looking at a change to a live, large application and where do I need to go to? Right. I've taken a role again as a business user. I'm going to log into this older management system, as this person, Aaron, sales manager just to show you the premise of how this is being put together if I just click on "about." You will see that the scenario here in this company is that they are using Salesforce as CRM for the sales guys to create opportunities and they're also using SAP for their billing process, however this company has a very specific way that they like to do their product catalog, their pricing, their discounts, their approvals process and also wanting a mobile application sitting on top of that. What they've done is they've used OutSystems Platform to build those differentiating and innovating layers and what you're seeing there is if you follow the Gartner layer model, you see that they are using packaged software for their standard processes and then using OutSystems for the differentiating, innovating processes. In effect, they're buying commodity, but building differentiation. And the role that I'm taking, I am going to look at my approvals queue, so I'm going to look at this one. Here this is an order waiting for approvals and you can see that we've got this sales person is asking for some fairly sizeable discount and I'm not very happy with that. I'm going to ask for a change to the approvals process. First of all, I'm going to see where is this order in the process and you can see there's something straight away sitting at this stage here. You probably recognize that from the OutSystems screen and okay, so this is where it is. Then I'm going to use this feedback facility to say that over here, "I would like please add FD approval step if discount is greater than ten percent." I'm going to send that back to my developing team. Again, in this case, this is Andrew, so I'm sending a request. Andrew, off you go with that one, please.
Andrew B: Okay. Here we go. I'll just review the change bits Andrew requested. Sometimes they take a little bit longer. I'll come back to that at the end to show you how that works. Here we go. I'll come back into the auto management application. We'll have a look and go to that process. Here we go. Here's that definition of the process and here's where the change requested. I needed to make this change, so I'll just start going ahead and building in this extra piece of functionality, this extra requirement into the flow chart.
Andrew: Okay. Daniel, can we just confirm for us that we're not building an application here. We've come into an application that is already live, that has many transactions in it and flow through it and that we're changing a process in flight. Is that right?
Daniel: Exactly. That's actually the normal life cycle of OutSystems applications. You can change so fast. Typically you launch your first version, you have your application live. You start receiving feedback, and you are constantly realizing very fast improvements based on the feedback from the users and the back log that you have. In this case, we are tweaking the approval process for the manager and we already have process running. There are approval requests and at the moment, these changes will affect the processes that are already running. Of course you can choose whether you want to go through the new flow or the old flow. You can build that into the process also, but it will take effect into the processes that are already running and one very interesting characteristic about this is that OutSystems Platform runs and the impact system analysis process over these processes that are already running. Imagine, for example if Andy decides to delete an activity that is already being assigned to the manager, so if there is somebody already with that activity assigned and Andy deletes that activity, Andy will be warned about that fact. The process will be suspended and he will be able to manage the process in the OutSystems centralized management consult indicating what should happen to that specific process.
Andrew: Right. He's clicked the green 1-click publish button. Is that it? Are we done?
Daniel: At the moment, we have the same process as we saw before being executed so the platform will analyze this model. It will upgrade the application to this new version and upgrade all the processes to the new version of the process and once we have the application live then this will be the process that will be in effect.
Andrew: Great. Okay, so it looks like nearly there. Let's just give it the last few seconds to compile, and then Andy, will you be able to show us once this is done, you'll be able to show us working in live?
Andrew B: In the evironment here yes! We'll see the effect on the process.
Andrew: It's up to the deploying page.
Andrew B: You just saw the change I did. I was reusing some business logic we have from the business logic layer besides the discounts and here we're taking, you to the screen where it can do the approval and I was saying here which role that person can actually carry out that step. This is directed work to them.
Andrew: We've got the done symbol, so can we see it, please?
Andrew B: Yeah. Here we go. We go back to the order process. I just refreshed this screen and hopefully this should show us that this order is now going through the new process and because it hadn't reached the point where it was decided that it can actually modify this process for us and that this one we can't get through. It's only part way through, but we can see once it's been approved, it will go for finance approval.
Andrew: I like that. That's very good. Thank you. One problem I've had in the past is it's all very well getting this in development, but are you going to keep me waiting two weeks, three weeks, a couple of months before I can get this into live?
Andrew B: Good question. What we have here is we have a product lifetime which is the system that we use to move applications through different environments. Here we have different environments, development quality production and I can go down into the auto managements application in the portfolio, and I can choose to deploy from development through to quality. The platform itself is going to do impact analysis and work out if anything else needs re-depolying. In this case, it's identified a couple of applications which depend on the changes that we've made. They'll be included. Once the release manager is happy, they go ahead, they indicate they want to do the deployment and from that point on, the whole thing is automated. It's risk free. It's doing everything and this can even happen, [hot] deployment while the application is running.
Andrew: You can be deploying-You don't need night shift. You don't need all the systems taken down. You can do it while the developers are there?
Andrew B: That's it exactly which is great because if there's any questions come up, also great if you do have applications which are running worldwide and there isn't a convenient point in the night to take them down.
Andrew: That was a process change. One other thing has come quite irritating recently is the amount of charges I'm paying for delivery or freight on small orders. If I was to ask you, could you add some validation to our application whereby maybe the sales guy can't create an order if it's less than 200 pounds in value, is that going to take forever or how is that done?
Andrew B: Most certainly. That's the kind of thing we would build into the logic layer for the application and the advantage there putting it in the logic layer would be we could activate that regardless whether the order comes through. If it sends it interactively, it would come through as logic and if it maybe comes through from a different source, from another system for example, it would still go through the same logic and the same rules apply.
Andrew: That is going to be my next challenge for you. So far you've shown me you built my application quickly, you can change my process quickly, you can add validations in for me as well presumably quickly, you can get stuff deployed quickly and the last question I've got for you is what about response times? My users previously have complained pages taking forever to load. You've got anything in that area?
Andrew B: Good question. Yes we do. Lifetime has client-side performance monitoring built in, so this is where we can look at the claim. Because instrumentation that the platform builds into the applications as they're deployed, we can see the actual client load times of all the different pages within the applications, and we can see here what the trend is. If it's going down, drill down see which applications are doing this. This is for example here it's just the number of users is going up. Maybe it's time for a new front-end server to be added or it could maybe something slightly more serious. Is it a particular deployment that we did where maybe you tested the performance, but maybe there's something about the line data that isn't quite the same as our test data patterns, and we didn't spot it. From here we can see exactly which application, even which page is causing a problem.
Andrew: You can see straightaway that it's the dashboard that's causing the problem.
Andrew B: Exactly. The developers have a really good clue. They know exactly where it's happening, they know exactly when it started and from they'll be able to go back to the source control, visually inspect, see what changes they've made and identify the cause of the problem, fix it, and that's all from hard facts rather than from anecdotes for example from users when they think something's a bit strange. It's much more reliable.
Andrew: All right. Let's just have a quick summary thing. This is what we did, just a quick time check. I think we've got just a few minutes left. Just to summarize what we've been looking up. This is the components of OutSystems Platform and we spent most of our time to start with just Service Studio which is where we are building process layers, logic layers and so on, but we've also come into areas such as Service Center to check if our emails are being sent properly and to lifetime to look at our response times and deployment, and we only briefly touched upon Integration Studio, but this is where we can build integrations into third party systems, ERP, CRM, and so forth. I'd just like to give you a quick guided tour very quickly through some of our client applications. They can range from small applications like this. This is a mobile retail site. It only took five weeks to develop all of that, all the way up to giant installations like this one that Daniel mentioned. This is Van Ameyde, the insurance company, who had everything in the red box built in OutSystems. They built CRM, document management, fraud detection, policy services and so on. To give you some stats, that's currently supporting 129 business processes, 622 web pages or screens, 1600 tables or screens, integrations to 350 external providers, so on and so forth. This is right at the other end of the scale to what we have done today. Here in terms of reliability and robustness, this is a commodities trader, an energy trader and all of the applications on those screens except one on the far right is built in OutSystems. And the last example is this one, Andrew mentioned websites. This one is a price comparison website, fly.com running continually, currently taking about 1,000 web searches per minute. All the OutSystems applications are completely scalable, out of the box and that only took them six months to develop. There's that whole deployment that Andrew mentioned. What you see from this summary is that we're actually application agnostic. You can build whatever you want ranging from small technical applications, all the way through to business critical applications like this. Just in terms of the benefits for the developers, this is previously, before using OutSystems, a developer could be a small cog in a large wheel whereas afterwards taking a lot more responsibility all the way up to having the [kudos] to say I built all of this application due to the productivity gains. And then for the business itself, usually the cost of maintaining an application rises over time as it gets more and more complex and then eventually it becomes too expensive and it's time to replace it while OutSystems brings that cost under control and the one statistic that I'd really like to take away is that all the thousands of applications, our clients have built in our 12 years existence, the number that have been retired is zero. What this means is that IT departments go from this kind of makeup with many people maintaining existing apps with this kind of makeup with many more people developing new applications. Just a quick snapshot of clients. You see plenty of clients there and with 12 years of developments in the platform, it's very mature and if you'd like to try it, please go to our website for a free cloud-based trial or give us a call if you want to talk about specific requirements or if you want to send us an email as well. So, YuChuan any questions coming in for us?
YuChuan: Yes we do, Andrew. But first I would like to remind people who would like to submit their questions to use the chat function in the control panel. The first questions we have. Can I use existing code in applications? Andy, would you like to take a question?
Andrew B: Yeah I sure can. We have the ability through integration studio to import for example, assemblies that you have already developed, and also if you have pieces of custom C-sharp code for the Windows platform or Java code on the Java [stack], they can come into integration studio, be included in the models and reference from any point. Yes, you're never limited. You can always include your own code.
YuChuan: Thank you, Andy. How much time did it take to learn the platform?
Andrew B: It's actually surprisingly quick because it's higher level than a lot of code that you would normally develop. we have a lot of tutorials that you can use to develop the platform. We also have the boot camps that people could come and learn intensively for a week. What we find is for example, we have a customer who has about 40 OutSystems developers and as they get new developments into projects, they find they can take somebody who is a developer in .net or Java and they can bring them up to speed and they're fully predictable on their projects in three weeks.
YuChuan: Thank you very much, Andy. We have a few more questions coming. Can you use jQuery plug ins? Daniel would you like to take that question?
Daniel: Yeah, of course. The question is can we use jQuery plug ins right?
Daniel: The answer is yes, you can use them and as I said during while Andrew was using that Google Map is with OutSystems, you can use all the standard web technologies that you know. Java script, Html 5, CSS3. You can always use the extensibility parts of the platform to use those technologies. J query is just one example of it to do your progress bars or dynamic loading trees. All of that stuff can be used in OutSystems applications.
YuChuan: Thank you very much, Daniel. Let me see. Two more questions. How do you integrate with SharePoint?
Daniel: Okay, so integration with SharePoint is actually pretty common. We had some customers that did it because they typically already have SharePoint portals and they want to get productivity into their SharePoint infrastructure for the custom development of applications and for that they choose OutSystems. The integration with SharePoint actually can be done at several levels. At the user interface level, we can include SharePoint contents or even have OutSystems applications running inside a SharePoint applications and that's doing with typical web integration techniques like iFrames, cookies, all of that can be done with OutSystems. At the business logic level, you can use things like web services that you saw Andy using to send the SMS. We can do the same to invoke SharePoint web services, or we can even build our own custom integration components with SharePoint with C-sharp using integration studio as Andy did and one thing that is also very useful in Microsoft environments is that integrated authentication is built in to OutSystems Platform. That means that the authentication integration will be solved in the case of SharePoint.
YuChuan: Thank you, Daniel. Last question before we run out of time. Can OutSystems Platform be installed on premises?
Daniel: The answer is yes. You can install OutSystems Platform on premises, but you have the option also to have it running in the cloud. If you want to use OutSystems Platform as a platform as a service at OutSystems, you just subscribe the platform, your servers or database servers product will be running OutSystems in the cloud and you don't have to worry about maintenance, set up, and all of that stuff for all your environments. But if you want because you have internal regulations or you have security issues that you are worried with, then in that case, you can also install OutSystems Platform on your own servers and you can use it there. You even have a third option, that is having a hybrid approach, where you have some of your servers running in the cloud and some of your servers running on premises. The typical situation would be to have your development and quality environments in the cloud while the project is going and then having production environment in your own data center for security reasons.
YuChuan: Daniel, we actually just have another question that came in from one of our participants. Are you happy to take one more?
YuChuan: Can you guarantee EU hosting for the cloud option?
Daniel: Yeah, so actually our underlying provider at the moment is amazon.com, so you have the option of hosting in several different locations including in the European Union, in Ireland.
YuChuan: Thank you. I hope this answers your questions. I don't see any more questions coming in. Thank you very much. Thank you Daniel. Andrew, would you like to close today's session?
Andrew: Certainly. Thank you. Thank you very much to all the participants and thank you very much to everyone for attending. I guess I'm going to admit that Andrew has won the challenge. I will be giving him more challenges in due course so please look out for those. Hope you can join us at future webinars. For now, please enjoy the rest of your afternoon. Thank you very much for your attendance and goodbye.