Stop building legacy applications

Interview with Head of R&D

Bojan Antolović is the Head of Research and Development at Omega software d.o.o. and, as he himself says, is constantly seeking better methods of developing and implementing software solutions. In 20 years as a programmer, he has experienced everything from the machine language of the Commodore 64 and the software interrupts of DOS, through the optimisation of the process of cutting materials and the development of MMORPGs, to the creation of complex ERP systems and development platforms. Bojan graduated from XV Gymnasium and has a degree in computing from the Faculty of Electrical Engineering and Computing. During his school years, he won several medals in international competitions in mathematics and computer science. His long-term cooperation with the Croatian Computer Science Association in organising domestic and international IT competitions is a natural continuation of this. Concerning his professional interests, he pays special attention to algorithms and software development methodologies. His leisure time is often reserved for cycling. He is the head of Omega's Research and Development Department.

Can Omega software rightly be called the company of the Croatian IT Olympians? There are a lot of you, from the founder of the company to yourself.
Yes, there are a lot of us. Saša Stublić, Davor Prugovečki and I participated in the IT Olympics, in addition to several employees who later started their own companies – Davor Lovrić, Stjepan Čajić and Boris Pavačić, who later went to work at Google. As a company, we support IT competitions in Croatia by cooperating with the Croatian Computer Science Association; we participate in creating assignments, and not just because we love to do it, but because this is a way for us to find new people we can hire. In 2011, a member of the Research and Development Department, Davor Prugovečki, led a team of Croatian IT experts at an international competition in Thailand, where they achieved remarkable success. Out of 80 countries, only China, the U.S. and Taiwan ranked above Croatia. As for me, I used to work at Ultitech. It was a startup company that a few of my friends and I founded. We were developing solutions we were interested in personally. After a few years, when the number of employees tripled, we merged with Omega.

Tell us a few things about Omega - how many of you are there, what do you do?
Omega software has 39 employees, mostly programmers and consultants. We mainly develop our own software and also provide implementation services for ICT solutions. The majority of our business is in the enterprise sector, servicing large companies and organizations from the private and mainly the public sector. As for the area of software development, we have a wide range of products: our strongest product is Centrix, on which other office management solutions are based, in accordance with the legislation. Another segment of our business is the implementation of various technologies for process management, related more to the private sector, mostly for companies that are engaged in the wholesale and distribution of goods. Here we have our own ERP solution - Imperios. These two programs, Centrix and Imperios, are the two foundations, the two platforms, on which most of our business solutions are implemented. Put it this way: when we look at a particular implementation, for the most part it is the installation of one of our major products, and the rest are various customizations, specific business processes and the like. For example, the mobile application My Zagreb, developed for the City of Zagreb, was created as a tool for communication between citizens and the City of Zagreb (G2C and C2G) in order to better manage deficiencies and irregularities in Zagreb. It is an extension of our previous solution e-Redar for eliminating paper documentation between the City of Zagreb and its organizations, the largest being Zagreb Holding, and real-time reporting on irregularities directly from the field using a smartphone application. Another example of specific business solutions is our long-term cooperation with Hakom (Croatian Post and Electronic Communications Agency) in achieving their long-term goal of becoming the first Croatian e-agency. We have created a variety of solutions related to their operations, including granting licenses for the use of the radio frequency spectrum, the management of user complaints and the management of the numbers and addresses of telecom operators. The Ministry of Environmental and Nature Protection has also achieved a high level of business computerization; for them, we have developed a comprehensive solution for the management of strictly protected and protected species and their cross-border trade, according to the requirements of the international agreement CITES, currently signed by the governments of 175 countries.
When did you establish the Research and Development Department and why?
The department has existed under its present name since the beginning of 2011, but early in 2008 we established a department that we then called Core Development and its main task was to design so called "core" software products - products that are not specific to a particular client, but can be applied elsewhere. That department subsequently evolved into what we now call the Research and Development Department. Today, we are less focused on new stand-alone products and more on the development of platforms that serve as carriers for other technologies that we offer. Currently, the largest and most interesting project of the Research and Development Department is called Rhetos. It is a platform for developing business applications - we already have a dozen. Of all those we call core products, ​Pismohrana (Archives) was developed on Rhetos. We have implemented it into, for example, the Agency for Medicinal Products and Medical Devices and the Water Supply and Drainage branch of Zagreb Holding. Today, Omega software invests from ten to fifteen percent of the total revenue into this department.

How did you organize your department? Are the work process and methods you use different given that you work on long-term development? What are the challenges that you encounter at the Research and Development Department and how do you deal with them?
With projects that are oriented towards software development, we use the SCRUM methodology to increase the focus of the team and a Kanban board as a very simple and efficient tool for coordinating developers and tasks. I would strongly recommend both methodologies to any team of developers. Additionally, we use code review or pair programming; it is enough for the developer to apply just one of these practices to increase the quality of the source code. These practices also have beneficial side-effects; they encourage mentoring and the dissemination of knowledge in the team.
As for the challenges we face, I would single out the focus on long-term development, which is just one of the reasons why we are a separate department. While most developers in the company focus on current commercial opportunities and the (always urgent) needs of our customers, Research and Development focuses on long-term goals. While participating in internal support on some commercial projects, we need to continuously invest a lot of effort and discipline into distinguishing between the urgent goals and the important goals, and commit ourselves to projects that are more important in the long run, sometimes even at the expense of short-term profit.
Another challenge that needs to be pointed out is predicting the long-term needs of the market and the company itself, business-wise as well as regarding technology. To better anticipate business needs, we work closely with sales and management. In addition, we strive to be constantly aware of the current events in the market related to the business domain we cover. For example, we follow the development of standards and specifications related to public administration, we have collaborated with the Ruđer Bošković Institute on a research project about electronic document exchange, and we recently attended the DLM Forum in Dublin with our solution for standardizing the management of electronic records. Technology-wise, long-term needs are fulfilled by permanently monitoring and applying new technologies, and when developing new software solutions within Research and Development, the possibility of the subsequent adaptation and specialization of these solutions is essential. That is why we often use more complex technological solutions such as the inversion of control tools or declarative programming. An example of this is one innovative approach to software design that we called feature-outside design. This approach allows us to reduce the complexity of our applications by eliminating the interdependence between individual components, thus preventing an excessive increase in complexity due to the constant addition of new business functions to the application.

How did the evolution of Omega's development platform progress? What preceded those you are working on today?
Omega software started by using Visual Basic for the development of business applications. With the arrival of .NET and C#, we moved to newer technologies and developed our own framework Imperios.NET, which significantly simplified the development of typical business applications. We then used it to create around 20 core business modules, as the foundation for the ERP system, and many more custom solutions.
The new Rhetos platform, also based on .NET technologies, has recently emerged as a response to the need for cheaper and better maintenance, the further development of existing systems and management adjustments specific to individual clients.

A little more detail on Rhetos
We consider Rhetos to be a global product and we will introduce it to the global market. This solution is based on DSL (Domain Specific Language) - a programming language used to develop solutions that are specific to a particular business area or domain. We have developed this special programming language in response to the problems we encountered in the implementation of business applications. Specifically, it is the complexity of the software used in the enterprise segment of business, primarily ERP and ECM applications. These are software products that have a large number of standardized functionalities that lead to complications when put into practice. Well, this is where we jump in and make matters simpler. Each function is defined as independent and we make sure that it does not increase the complexity of the system. We use C# and SQL, and our DSL is the next level located above these two programming languages. With our own programming language, we have increased the quality of programming. We also offered DSL to the Faculty of Science, as an option for students writing papers. As for comparable competition, there isn't much, and those who are working on this are trying to make a universal DSL language that could handle everything. I think this is the wrong approach. We focused on DSL aiming to solve one problem - the complexity that occurs with using standard business applications daily, for example in the ERP segment or in the use of business applications in the public sector. It is a programming language that allows you to define the functionality through the so-called plug-ins, which are created ​​according to the needs that arise from Omega's current projects. We are currently working on something we have called MoReqDSL, a tool in accordance with international standards that is used for the management of electronic records. It is really an expansion of our DSL and Rhetos and it is used to describe things that are compatible with MoReq. The next step is to make our solution Pismohrana (Archives) compatible with MoReq and put it on the European market.

What targets have the management defined for Research and Development Department by the end of the year, and what are the middle- and long-term goals?
In the short term, we aim to further improve the Rhetos platform, where the most important novelty is the tool I just mentioned - MoReqDSL, which will, when we connect it to Pismohrana, expand the market for that product. At the same time, we are experimenting with SaaS archiving, with which we could cover the long tail of minor users. As for our services, it is my opinion that Omega needs to strengthen its presence as an authority in the field of business solutions, it needs to sell its know-how in a greater measure, and, to a lesser extent, its products. As for the longer-term objectives, we have some strategic guidelines according to which our main goal is the commercialization of Rhetos. It will first be offered as an open source solution in order to increase the base of developers working on the platform. Expanding Rhetos in this way would be a form of marketing and we would gain profit through partnerships with serious companies that would buy various extensions and consulting services from us.
How do you, as "Omega's Bill Gates", interview new programmers?
Now, although prospective applicants must go through very extensive testing, I can personally say that I do not like these tests. My main concern at the interview is to try to determine how much a new developer might help us or how much they could potentially be damaging. The problem with software development is that it always leads to bugs and bad design, and this costs a lot. So I try to find out how they might fight the bugs, what methods they use, how they write code, how they test it. The most important element in this respect is their intrinsic motivation – that is the most important thing to establish. In the actual development phase, two of our developers either work at the same computer, or they work one after another and improve the code. In this way, the quality of the code is controlled and knowledge is shared.

What is the most important thing when learning how to program?
Choose one programming language in which you want to learn to program. I would recommend Pyton because it has some good principles, it is easy to learn, it is powerful and it forces the user to write elegant code. In the business world, the main languages are Java and C#, and SQL. For students who wish to engage in serious programming, I would also suggest following the Croatian Computer Science Association, which organizes a variety of developer training and competition. The most talented programmers in the past two decades in our country went through the Croatian Computer Science Association. Omega is a partner of the Croatian Computer Science Association and every year we create tasks that are used to prepare the people who go on to the IT Olympics.

Could you please comment on global IT trends: what are your thoughts on this and how do you think Omega is placed when it comes to cloud, big data, mobile, virtualization, and so on?
A lot has already been said about cloud. The biggest obstacle is getting the trust of major clients, but for minor consumers this is a successful approach in the form of various software-as-a-service solutions. We are planning business with the cloud, but only in a medium-term business plan. Our product FIP (Fax Integration Point) has the ability to adapt as a cloud solution, and internally in the company, all of our servers are virtualized. However, I argue that we will not see a real cloud in the public sector for a while, primarily due to problems with data protection, and large companies that can afford their own IT infrastructure will also not rush into cloud. Big Data is also a trend that cannot be discussed in Croatia in terms of some imminent major implementation. We have our own BI solutions and other solutions for data processing, but we are still not developing those in terms of what is usually considered Big Data technologies. As far as mobile technology goes, I have already mentioned our example - MojZagreb - a small project that is beneficial to all citizens of the city of Zagreb, giving them the ability to report utility irregularities in real time via the web and the application.

And finally, how do you see the IT services market in Croatia - what are the major trends, what are the obstacles and where in all this do you see Omega?
IT firms in our country engage in services using one of two approaches: they either implement popular foreign solutions or they focus on developing smaller off-the-shelf products or SaaS solutions. Omega has found a good niche between these two extremes – our customers get significantly cheaper solutions (of our own development) in relation to the big foreign players, but at the same time, those solutions are specifically adapted to the particular business processes of each user. Competitiveness to foreign solutions can be achieved by a stronger focus: you should take on a smaller area, but make the best solution in the world within this narrow segment. Notwithstanding the decline in business in the private sector, research conducted by IDC showed that we are among the top five suppliers of ERP solutions (SAP, Microsoft, IN2, PIS, Omega) in Croatia.

Source: Mreža