OutSystems – it´s a part of your life, though chances are, you never noticed it.
But what exactly is this technology and how can it benefit your business?
Tiago Peres from Outfit – Tailored Agile Solutions shows us the ropes.
Keep up with Tiago and the rest of the Outfit team here:
If you ever booked an airplane ticket on Flight.com, conducted a simulation on one of many insurance company´s websites, if you’re generally tech-savvy and prone to use all sorts of apps and internet resources – chances are you have already used several products based on the OutSystems technology.
And yet, little is known about this platform outside of a relatively restricted (yet continuously growing) community.
In this article based on a long interview with Tiago Peres, one of the co-founders and CTO of Outfit – Tailored Agile Solutions, a company that specializes in producing high end applications and services using this technology, we´ll explain exactly what is the OutSystems platform, its benefits and shortcomings, from the perspective of both the developer and the client / end user.
What exactly is the OutSystems platform?
In a nutshell, OutSystems platform is rapid development tool, one that allows us to build applications for multiple channels (Web, Android and IOs) – it also allows us to manage the entire life cycle of the application, from its earliest draft in development to its release as a final product, as well as all the maintenance process of the application, such as providing updates or adding new features.
It´s basically a code generator, with a strong visual interface – this means that the developer only has to focus on the “high level thinking” part of development, he has to think about proper architecture and user experience, and exactly what he wants the application to do with this or that function, but all the code underlying this process is being generated automatically by the platform, it´s all happening “under the hood” so to speak.
What type of applications can and cannot be developed with this technology?
Basically, for 95% of the cases, any type of web or mobile application you want, for whatever purpose.
Well, I wouldn’t want to fall into the “silver bullet” fallacy – and speak of the OutSystems technology like it´s some sort of magical tool that can solve any and all problems – particularly because a tool is only as good as the hand that uses it.
In fact that was the whole point behind creating Outfit – Tailored Agile Solutions, to come up with a team composed of top tier professionals, that could explore this technology to its fullest extent and provide top level products and services.
But the fact of the matter is that, it´s not a question of whether or not a given application can be developed via the OutSystems technology, because in 95% of the cases it can – it´s more a question of: is this the best tool to get the job done?
And the answer there may be yes or no, depending on a number of factors, some of them related to what the end product will be, the client´s expectations, technical considerations, costs associated with the platform, etc.
Technically speaking, there are very few limitations to what we can do with the OutSystems technology – B2B and B2C solutions, content management, dynamic portals, corporate applications and management tools, integration with back-end systems and so on – the possibilities are endless, and I can think only of very few situations where, from a technical standpoint, I would recommend other approaches over the OutSystems platform.
On the other hand, there are some cases where I can tell you right off the bat – at least in theory, that an OutSystems solution will fit like a glove – integration with SAP systems, for example.
This is the type of situation where the OutSystems platform fits in perfectly – it integrates seamlessly with the backend systems and increases the usability exponentially, it makes it visual, it simplifies everything even as far as adding new features or evolving the platform.
We´ve had many experiences with this type of integration and our clients were always very happy with the results.
And from a developer´s standpoint, how would you depict the OutSystems technology?
Well, I come from what you would call a “traditional” background, as far as development goes – I started coding in Java, C sharp and other low level programming languages… and I can vouch for the fact that it really is a very intuitive transition for someone coming from “traditional” software architecture.
Off the top of my head, the “cross-platform” factor comes to mind – the fact that a programmer, simply by being very proficient in OutSystems technology, becomes something of a “one man army”.
The programmer now has a tool that allows him to develop across multiple platforms without needing further training – suppose there´s an app that started in a web environment but the developer wants to adapt it for IPhone or Android – he either must learn to program in all these different environments or seek outside assistance.
With the OutSystems technology, he doesn´t have to – he just has to worry about getting the end product right, the platform adapts the code to whatever platform he desires.
But what really surprised me when I first started using this technology was how fast I could get the results I wanted, whereas in a “normal coding” setting a given project would consume months, the time frame using the OutSystems technology shrinks down to weeks.
Basically, using a waterfall, “old school” coding approach, we´re talking about trimesters and months in development, and using an Agile framework and the OutSystems platform we start talking about weeks and days…
And that´s not the time frame for a prototype or something like that, I mean the delivery of a fully functional end-product, let´s say… an application that is meant to completely replace a legacy system a client might have running in his company.
And that reflects on the choices as far as project management goes, right? – that´s the reason you use the Agile framework on your OutSystems projects?
Well, it´s the only one that makes sense, isn´t it?
The main reason you want to use OutSystems is the speed with which you can produce deliverables and get them to market really fast, if you put that sort of tool in a context where the whole process is intrinsically slow, it would be like driving a Formula 1 car in a clogged-up highway during rush hour. It makes no sense.
Because in this scenario [with the OutSystems platform] we don´t have to think about the technology, about all the nuts and bolts of every single line of code – the platform does that for us – we´re developing visually, always thinking about the end product and what it´s going to do. We can get results that much faster, so we want to capitalize on that advantage.
What´s the typical profile of the OutSystems developer?
What sort of traits and qualities do you look for?
Obviously, some form of coding experience/ academic background in this area – but more important than that – the platform forces you to think about projects… “Differently”.
You don´t have to think about crossing all the T´s and dotting all the I´s as far as code goes, but there are other implications…
I’ll tell you story that gets the point across, I believe – I was once in company working with a senior developer, with over 20 years of experience developing drivers.
Mind you, this is extremely low level programming – we´re talking about drivers that are used to connect different technological components, like the graphics card on your computer to the motherboard and CPU, etc. – he liked it and he was very good at it; but he was tired of coding something he had no idea of how it was going to be used.
And that´s why he transitioned to OutSystems, he was tired of building things that he had absolutely no idea of how they were going to be implemented – and when you´re working with the platform you´re forced to think about the end game, you´re always thinking about the product and how it´s going to be used.
The platform forces you to think about what you´re going to get in the end; and not how to get it.
So, this is a shift in paradigm, somewhat – and not only from the standpoint of the developer. I´ve witnessed a curious side effect of the implementation of this technology in numerous businesses.
Because when there is a change in the technological sector of a company, that turns it into a much faster, streamlined and well-oiled machine – the managerial processes and corporate culture tend to follow suit.
Technology, management, human resources, communications and all the other processes involved in running a business, aren´t airtight compartments – it´s all connected – so, what I´ve witnessed in some cases is technology working as a “catalyst” for the improvement of global internal processes – that end up benefiting the company far beyond the initial goal of “upgrading the software”.
Speaking about the end client – In your experience what would be the reasons to choose OutSystems over other solutions?
I would say that, it would be the right choice in any situation where tight schedules and time to market are relevant factors – in any circumstance where speed is of the essence, really…
And this may be because you need improvements or new features added to your company’s platform on a regular basis, often on short notice – or maybe because there´s a specific narrow window of opportunity for that technology you´re developing, and if you don´t seize that moment, it might jeopardize your business; obviously, any type of “first movers” scenario, where it´s critical that you get your solution to the market before the competition does…
In any of these scenarios, you just can´t beat our development times – we can have a solution up and running using the Outsystems platform, while for a project with the same specs, using traditional coding, you´d still be in the earliest stages of development.
There are basically two reasons why I see companies choosing other solutions over this platform, when it would clearly be the best option, technically speaking – one is related to having a particular preference in technology stacks.
Often companies have worked with a technology stack for many years, maybe they invested in training in-house personnel to operate and maintain those resources, they are basically set in their ways and somewhat hesitant to drastically change all that…
I understand that – change is scary. But it´s also inevitable – and failure to adapt in a very fast paced business and technological landscape can have serious consequences.
The other one is cost related – after all, there is a number of fixed expenditures related to using this technology, because there are annual licensing costs and such.
I would say this is the most common scenario – companies that want to use the platform, that recognize it´s the best tool for their particular situation, but still, they´re in a position where they can´t make this type of investment yet.
Or at least they think they can´t – but when we do the preliminary assessment of the client´s goals and needs versus costs, and we start to crunch numbers, we see the ROI will be extremely positive in most cases – because it´s an investment that pays off in multiple fronts: global efficiency, speed, cost cutting in numerous sectors, etc.
For the most part, It´s just a matter of structuring the solution correctly. It doesn´t really matter how great the technology is, if you don´t structure everything with surgical precision.
So how exactly is Outfit positioned in the market?
Well, we are a company that specializes in the use of the OutSystems platform, and within that “ecosystem” we have three major areas of activity:
1 – Creating bespoke solutions: this is the main reason we founded Outfit – Tailored Agile Solutions, we wanted to get away from the “generic / one-size-fits-all” approach to software development and present the OutSystems clients, or potential clients, with the very best alternatives for their specific needs – whether it´s creating an original product from scratch or improving and optimizing an already existing solution.
2 – Consulting / providing expert service: we have a team of top tier professionals, with a massive amount of experience in this platform – recognized as such even by the very manufacturer of the technology (OutSystems); so, we supply very high end services when it comes to providing assistance to clients already familiar with this technology, but that are constantly trying to move forward and optimize their platforms, products and services.
3 – Development and implementation of proprietary solutions: this a more recent development in our company´s activity, and we´re very excited about exploring all the possibilities in this field – we are basically developing our own portfolio of solutions, that we formulated through years of experience with the platform and by listening to the needs of clients from many different industries.
We are just now beginning to bring these solutions to the market, they consist of products that have been tried and tested and are ready to use “out of the box” with minimal tweaking.
O.k- to wrap this up – if you had to choose three characteristics that best define the OutSystems platform, what would they be?
Well, answering in “rapid fire” mode, I would choose…
The fact that it´s designed for cross platform programming (web, mobile, IOs, Android), so it´s a like a rapid development “multi-tool”; versatility – since it allows for great freedom in creating whatever type of solution you desire; and speed – for all the reasons I mentioned earlier.
Tiago Peres is the Chief Technical Officer and co-founder of Outfit – Tailored Agile Solutions; with many years of experience coding in Java, C-sharp and other languages.
He is a technology enthusiast and a digital problem solver / lateral thinker. Loves to eat, and prefers a steak over a dessert; to spend time with his family and play with his children (his daughter Maria, Pixel the cat and Taya the dog). In the free times, likes to drive anything with 4 wheels and play pool, ping pong, tennis and football.