OutSystems is the creator of the Agile Platform, a complete Application Development and Management solution to develop, deploy, manage and change enterprise web applications .
OutSystems is not a new company but its quickly becoming popular among the MDE community so I think now its the time to get to know them better and learn about their MDD philosophy and main motivations behind their tool. The interviewees were one Lucio Ferrao and Rodrigo Coutinho two of the founders of the company. Hope you enjoy the interview! (and remember to check the all the other interviews in our “a coffee with” series)
Jordi Cabot (JC) Welcome. To begin with, can you tell us when did you start Outsystems
Lucio Ferrao (LF) The company was founded in 2001
JC Was the initial goal of the company to create the Agile Platform or you started as a consulting company?
LF Weve always been a product company. This is how we got funded in the first place. Our focus has always been on the product. In fact, the first version of the product was launched during our first year, and we had the first costumers also around that time.
JC But then, Im surprised that I had never heard about you before!
LF We were pretty local (Portugal) in our first years but we now have a more public approach and we are investing a lot in spreading our product and of course this helps to be noticed everywhere
JC Is this because you feel the product is now more mature or because you feel that companies are now more receptive to the kind of product that you offer?
Rodrigo Coutinho (RC) We spent a few years building and maturing what we consider a great product. But what makes us apart now is our try and install approach. Today with one-click you can try our product in the cloud. This is something we didnt have two years ago and that allows developers to try the product without having to follow a rather complex installation process. This obviously has the result that a lot more people can try it by themselves.
JC Do have your own cloud infrastructure for this?
RC You can try our software in the cloud but we internally use Amazon services. When you finish the trial process you can either install it in your own premises or you can purchase an infrastructure on Amazon or wherever you want and have it running on the cloud.
JC Then your business model is not about providing services but based on selling licenses of the product
LF Yes. In our license model you basically pay for usage. Usage is defined based on two dimensions: complexity of the products and number of users.
RC The idea is to enable you to start small. In fact, the price starts at zero for small applications.
JC What motivated you to start your product in 2001. At that time it was not so clear that model-driven development was a good paradigm to create software (well, even know we are still discussing about the benefits of modeling ).
LF The focus is not modeling itself. We wanted to deliver software faster at a lower cost. We had a lot of business-oriented requirements regarding the kind of framework we wanted to use for software development and what you see is the solution we found to those requirements.
RC The language is visual and the platform is model-driven from day one. We think visual modeling is the way to accelerate the development of enterprise applications. Theres a lot of repetitive work in the development of applications and our language hides a lot of this complexity and makes the process more efficient.
JC Interesting. So you first decided that you goal was to accelerate the development process and then you reach the conclusion that Visual Modeling was the way to go for that.
JC To develop an application with the Agile Platform, what kinds of models does the designer need to specify?
LF The models are data centric. Once you define the database model, you can quickly create the UI models and the business logic. On top of these you can add business processes to execute long running transactions, timers, events, and human workflows. All models are integrated and type checked in real-time. You can see it for yourself in
JC Is it possible to complement the models with custom code?
LF Its possible, and this is used to do integrations with legacy systems. But usually this is not required since you can really define almost anything in the tool. For instance, you can define validation rules for the data using a basic textual language that includes the typical operators (and, or, >,<, = , .) . Similarly, you can use this kind of conditional expressions to drive the navigation between pages.
JC You were also saying that apart from simplicity in the development, supporting change was also a very important goal for you. How do you cope with change in your approach?
LF You just republish/redeploy the application! And if the change requires a data migration and a valid migration path can be deduced from the change then the data will be automatically updated. Otherwise youll get a warning indicating that you should take care of this yourself. After changing the model you can immediately see the new application. If you dont want you dont even need to see the scripts.
RC Change represents the biggest slice of software development, so its really important. But it also needs to be safe. Based on the changes in the model, we have an impact analysis feature that determines how the changes impact on the data and processes of the application. If the change is safe , you can just follow our one-click publishing approach. If not, we inform you about the situation. What we never do is to destroy your data. Its important that you can trust our system.
JC Regarding the code-generation vs model interpretation discussion, even if you deploy in the cloud you still generate the code right?
LF We generate both C# and Java code. We dont do model interpretation for two main reasons: 1- efficiency and 2- being able to be standard. One of the main concerns of our early customers was to be lock in with us. When generating code even if we go out of business they can continue using the application.
JC What kind of user do you target with your tool? A programmer? A business user?
LF This is an IT-focused product. Using a visual language helps IT people to be more aligned with business users and enables business users to understand and try our product but in the end we are usually talking about large systems so the product itself is focused on IT.
RC We have some examples of business user developing with our product but in general business people at most create prototypes that then are sent to IT people to complete
JC Moving to a different topic. Why do you call your tool Agile Platform?
LF Agile refers more to our development philosophy. We like to get things done.
JC And what about collaborative modeling?
LF First of all, you have version control for the deployed systems so you can rollback to a previous deployed version of the system. Then, we also have a versioning system for the models themselves with a visual merge system to solve conflicts.
JC Do you use Agile Platform internally in Outsystems? To develop the Agile Platform itself?
RC Yes, we eat our own dog food. Our internal applications are developed using the Agile Platform (even our website and all our web interfaces). And the management console and user management application of the Agile Platform are also built with the Agile Platform.
JC How do you decide the new features for the platform?
LF We have a lot of internal and external feedback. The difficult part is to decide what to add from all the suggestions we get!
RC We have a tool that we call wisdom of the crowds (made with the Agile Platform itself) that gathers feedback from our customers. It follows the same philosophy as the Digg site where users can vote up and down new feature requests. This is then used as input by the product manager (together with our own product vision and internal requirements) to prioritize features for new product releases.
JC All vendors claim that, of course, their tools improve productivity but you really seem to try to measure this in a scientific way?
RC We conducted a study, called OutByNumbers, where we used function points to measure the productivity of some of our customers, and compared them with industry average. From the projects we measured, the Agile Platform was 10.9 times more productive, on average.
LF We are even trying to push a standard via the Consortium for IT Software Quality (CISQ) for function point counting and analysis in an automatic way. We use this to measure productivity in projects using the Agile Platform
JC Last questions before closing the interview, who do you think are your main competitors?
LF Our main competitor is custom development using standard development tools. Of course there are other vendors with tool similar to ours but they dont see them as competitors since we dont apply to the same projects.
JC This is an interesting point. There are other similar tools but, so far, your markets do not overlap
LF Exactly. Right now, our main pressure comes from the combination of software packages and custom development.
JC And from your experience, whats the biggest challenge when developing one of these tools?
LF Its not only the tool, its the entire life cycle (deployment, maintenance, change, multi-development, versioning, ) and of course, you also have the biggest challenge: creating a market and selling the tool!. Honestly its quite tough selling in this market. Creating the tool is just the sexy part.
Its also important to create a community around the tool. If you have a good idea and nobody uses it then its useless.
JC Whats your feeling about the future adoption of modelling by new companies?
RC Efficiency is a big imperative. We dont think the goal is to fire IT personnel and save money. The goal is to keep the personnel and make them more efficient: do more with less. Business people are getting tired of IT guys not delivering, and IT is getting tired of saying no to the business. What we are trying to do here is enable IT people to do what business people want and when they want it. So we expect that in the future more and more customers will see that this is the way the go. We believe in our vision!