Professional software development can be really difficult. Anyone can build a simple app, but when you need to build large business applications that have to integrate a variety of technologies, that are developed by a team of people that may change, that will undergo constant functional changes to meet changing business needs and that must be continuously deployed in production with minimal impact to users, then it gets really tough. Furthermore, while business applications may be in production for 10 to 15 years, the underlying technologies are constantly changing and some of them even disappear.
At Imatia, we are very aware of this problem. In addition to our own products, we have developed hundreds of mission critical systems for all types of customers. Like many other software companies, rather than building solutions from scratch, we build them using popular frameworks, libraries and standard technologies, as can be seen in the following diagram:
The problem with this is that these underlying technologies are constantly evolving and our customers don’t want to be stuck with old systems. To tackle this problem, we have created an abstraction layer that allows us to define applications using a declarative approach. That is, rather than just hand-coding our applications using whatever technology is in fashion, we provide our developers with a “corporate-framework” that allows them to just define the screens, business rules and processes that the application must provide.
With this, our developers can quickly and easily implement around 90% of the functionality that they need, and without coding. That’s great because they can quickly get all the “boring work” out of the way. It’s also great for users because all screens behave in a uniform way and include a lot of nice features that makes their day to day work easier. All of this without any effort from the developers.
But our developers like to code, so they want to create features that make their application awesome, that pose some type of intellectual challenge and that can not be easily replicated by competitors and helps them stand out from the crowd.
Our framework is designed so that developers can easily add their own code or components, override the functionality that is provided by default or whatever they want but in a controlled manner and using the development environments and tools that everyone else uses (Eclipse, npm or Git, among others).
Developers also get the experience of using the technologies of the moment (Angular, Spring, Hibernate, Docker and more) without having to deal with many details. Also, as technologies and development environments evolve, developers can work in these new environments and easily migrate all the stuff that they developed declaratively.
Our framework is called Ontimize and we use it to develop all our products and in most of our custom development projects for clients. It is 100% open-source and free to use and distribute. If you want to use it, feel free to download it from our website or GitHub. If you need our help, we offer services that go from training and support to custom development, but you decide when and where you need our help, with no ties and no hidden license fees. We call it Ontimize because it not only helps us optimize our work but more importantly helps us be always on time, with our customers, with the market and in our personal life.
El ámbito de actividad de la empresa es claramente tecnológico (Tecnologías de la Información), siendo su papel considerado como el de “proveedor tecnológico” dentro de su sector.