What is our primary use case?
In the last months, OutSystems has become our primary development tool. Grendene is a huge producer of footwear and our development in OutSystems is supporting the construction of a large set of applications in these areas:
Factory and production-level systems (industrial apps)
There are already many applications built to provide information to our offices and for production control of factory processes, simulation, and machine setup. In addition to the already running analytics apps, we are in the process of integrating OutSystems with machines' programmable logic controllers (PLCs). We believe that OutSystems can support factory-level systems that respond quickly. Beginning with the less critical processes, we have already started to build web/mobile applications to be used on the assembly lines and loading docks in the distribution center.
Integration and ETL
There are many APIs built in OutSystems to provide process automation and information to internal and partner systems. An example is the Melissa branch website that is sustained by a third-party and the product profile is provided by OutSystems APIs. ETL architecture is also developed to synchronize data among some SQL databases and the company’s units.
Business and ERP Apps
Apps for business and ERPs are a fast-growing set of applications developed in OutSystems, accessed within the ERP portal. New developments are made in OutSystems using the ERP’s database as the information source and connections to many other specialized systems.
In addition to the above, there are many office processes, human resources, and product development/design teams that use OutSystems. Our "Careers" website was built in OutSystems with a dynamic approach that allows the human resource team to create and upload their own pages as a self-service website builder.
How has it helped my organization?
In the 21st century, innovation is not easy without IT support. With this low-code platform, we deliver more quickly and it allows innovation to occur fast. It reduces the risks associated with functional changes and these can be produced rapidly to meet deadlines.
What is most valuable?
- Easy and low-code web/mobile development: Reduces the manual labor in compiling and deploying applications and generating procedural code (by reducing development bureaucracy/processes, resulting in real gains). The LifeTime Server approach, requiring just a few steps to publish applications in production environments, is fantastic.
- High reuse of components and business logic: Once built, web/mobile components can be reused in all new developments. In addition, the OutSystems Forge is very useful. We can exchange components and even already-built applications, reducing costs to build specific solutions.
- Build-logic becomes simple with a graphic interface: Developers work better with visual support. In a related vein, we are currently studying if, in the near future, an OutSystems environment could be provisioned to non-technical areas to allow them to construct their own applications (supervised by IT, and with good governance and security assessments).
- Stakeholder engagement and satisfaction: In the past, it was difficult to keep our clients (employees and partners) up to date on the development process. There were many promises of application delivery dates which were often not met. With OutSystems, we can develop and share progress and functionalities.
- Integration: With the SOAP and REST APIs and the database connections allowing communication with different data sources, it’s simple and quick to fulfill requirements which demand resources from multiple sources. In this way, the platform provides opportunities for innovative ideas. A simple example is to check transportation costs against rotes using maps and GPS technologies to measure accurate distances.
What needs improvement?
There are some features expected in the future that may speed up some processes. But there is a lack of development resources that need implementing. For example, OutSystems does not provide any native reporting resources. All reports must be created with other tools or as a webpage.
Another issue is the asynchronous processing and multithreading tasks for which the current resources of the platform are very generic and not built for the end-user. Any asynchronous jobs have to be constructed with an end-user dashboard to allow inspection of the status of the activities.
For how long have I used the solution?
One to three years.
What do I think about the stability of the solution?
We have basically not encountered any issues with stability. There was only one situation, when we first started using the environments, that a security policy conflicted with the installation of OutSystems or Microsoft IIS server. We had to gather a team to solve the problem by removing security baselines until we found the conflict and fixed it. At that time, it took four days to resolve this conflict. Since then, the servers have never had a single instability.
What do I think about the scalability of the solution?
As a very scalable solution, OutSystems does not provide an already-built infrastructure of modules. Companies should follow OutSystems tips on growing their environments using the concepts of Canvas Architecture.
Canvas Architecture is a very scalable, sustainable, and feasible approach. Companies should use these layouts, but not follow it to the letter. It should be changed according to the company's strategies, depending on the kind of applications they are developing.
On the other hand, some effort should be made to regularly maintain the norms and standards of the environments. Even with good governance in software development, due to the power and agility of the platform, it is not too easy to keep track of the development team; hence, the importance of a periodic reviews and standard, documented processes.
How is customer service and technical support?
Technical support is qualified and proactive but not very specialized. OutSystems always fixes all bug reports within the expected timeframe.
The team is very proactive. When we had that situation with the security baselines that conflicted with the platform, late at night Brazil time, I received a call from OutSystems support in Portugal right way, willing to help solve the problem. However, when it became more technical they helped only up to a certain point, and only our team could ultimately fix it.
I would give OutSystems support a six out of 10. I understand that a more specialized level of support (with software engineers) is needed sometimes when the operational team cannot resolve.
Which solutions did we use previously?
We did not use another low-code platform before, although many of the traditional development technologies were widely tested (Java, .NET/C#, OpenEdge, etc.). OutSystems was the first which provided a complete, easy, and effective platform.
How was the initial setup?
We have been using OutSystems since the middle of 2016. In the implementation phase of OutSystems, we had formal training and hired a third-party (Sispro S/A) with years of experience in the technology, for consulting and to design our environment correctly.
The setup itself was straightforward. Our company chose a local installation of the platform server in virtualized machines, instead of on the cloud (there were internal reasons for this choice, such as the need for prompt responses in production systems, which are not achievable over the WAN network). The setup was very simple, however, due to our very high-security scope, some difficulties with security policies had to be overcome. I would recommend choosing the cloud platform whenever possible, as it is much simpler to start with.
What's my experience with pricing, setup cost, and licensing?
OutSystems was open to a deal that worked for both sides. It’s not ethical to give more specifics about the pricing and licensing.
Which other solutions did I evaluate?
We evaluated many solutions in the market. Some companies in Brazil were visited with a view to finding a more agile solution for the development of applications. Among those solutions were Zoho and Tibco. However, OutSystems stood out.
What other advice do I have?
We find in OutSystems a great platform that enables extraction of data from multiple sources, and working with business logic to access essential information and produce process-automation at the highest level.
We have future projects in mind to build factory production process with this technology. New developers were recently hired to support the industrial development team and they are being progressively coached in OutSystems development, using an internal training program to reach this goal.
We rate OutSystems an eight out of 10. It is the best platform we have found. However, it’s not perfect.
In terms of advice:
- When possible, use a cloud environment option rather than a local installation.
- Negotiate a suitable license with OutSystems, taking into account that the application objects grow quickly.
- Hire trainers and make sure the development team sets up a proper architecture. If you choose the wrong approach or do not plan appropriate architecture, in a short time you will certainly have a very large rework.
- It is essential to build an appropriate Canvas.
- Sometimes, junior developers will perform better with OutSystems, since senior developers often do not adapt to the graphical structural programming. It is not a rule, but some resistance and difficulty of adaptation were noticed.
- A good practice is to hire an expert consulting company, for a couple weeks, which already uses OutSystems. They will help your development team with basic questions, increasing the pace of learning and making it more effective.
- OutSystems has a set of metadata and any kind of control is possible, but these structures should be practiced with the developers.
- OutSystems Forge is a very useful place, when starting out, to download components to adapt to your needs.
- SQL Server is a good default database option for OutSystems. We have never had a problem with it. We recommend using only a single database catalog instead of many.
- Another suggestion is to plan an approach for the REST/SOAP APIs with more security implementations. As a default, it provides NTLM authentication or basic authentication to SOAP API and a custom strategy for REST. We have built a complete architecture with client authorization, IP control, and cryptography over the exposed services. The OutSystems User Provider module can be customized with the company’s default authentication method, however, it is quite simple to maintain the standard module and just push data into the Users and Roles tables. Otherwise, it will take some time to understand how everything works underneath.
- Finally, perhaps the most important tip is regarding development governance. Not only for OutSystems but for all types of development, it is very important to maintain normalized and standardized environments. In a chaotic scene with no effort to have periodic reviews, a low-code platform could create a huge mess and the cost will be paid in the near future.
Disclosure: I am a real user, and this review is based on my own experience and opinions.