OutSystems, rethinking development
Overall Satisfaction with OutSystems Platform
I am writing this as a developer who works daily with the OutSystems Platform as a business. The reason to write this review is the request from OutSystems, combined with the positive [experience] and the belief I have in it. Coming from all kinds of programming languages and a love for c-languages, convincing me to use it was not easy. But the advantages of using it are great - to be stuck in the extreme coding team :)
We use OutSystems as THE tool to implement solutions for our clients. It enables us to build solutions way faster and with more control. OutSystems delivers a complete software development platform. From development to production, it is all contained within the platform, enabling a fluent transition across the complete development cycle.
One major advantage is the model based development, which enables us to control the quality and versioning.
Sounds like an exotic software platform? It is not. It is just creating Microsoft.NET/ASP.Net/Java libraries and maintaining the Microsoft SQL Server/Oracle Server and webserver.
- Generate software based on a model instead of coding.
- Great control on the development cycle (Development/Testing/Acceptance/Production) using Lifetime for deployment.
- All based on industry standards like Java/.Net/MS SQL Server/Oracle (so no vendor lock on the results).
- Business Processing Engine.
- The platform controls all the parts. While great for development and overall maintenance, it could lead to discussions with your DBA (who has to trust the platform). As a developer I love the platform, as a DBA I would like more control.
- By making software development model driven using flows, you are forced to rethink the way of programming. It makes it easier, but sometimes the way of working leads to code which could be optimized (standard problem in model based software development).
- Most of the code is generated, so the technical knowledge of the inner working of coding are not Essentials. This could lead to degration of this knowlegde. As part of this, most technologies will only be used when OutSystems supports it. They do a good job on implementing these things. But things like Node.js would be nice.
- + More development in less time
- + Better quality and control on the development process
- - It leads to a decrease in knowledge under the hood
For web based development within organizations, OutSystems is great. When you have the resources to start, don't hesitate! It can be used as a front-end tool, but we also have solutions where it is used to combine all kinds of third party software (using rest/soap/services/etc.) into one dashboard. Another, mostly undervalued, part is the business processing engine, which automates task distribution based on data. Just define your flows, triggers, transport of data and task, and your whole process is supported with great software.
When you want to enable your users to move to mobile, no problem. Most of the platform adjusts for the platform and with version 10, it is even easier to generate native apps, although it relies on PhoneGap/Cordova a lot. So lots of native, but the visuals are mainly webpages. But realize, the most used applications on mobile work this way.
When you want to build desktop applications, OutSystems will not facilitate you in building and [execution]. This is not a problem, because most of the software today can be used within the browser with an equal user experience and support.