/*Sign up for the DataFlex Newsletter*/
Sign up to stay informed about the latest news and events!
One of the challenges of building specialist, database-driven software is the composition of its architecture breaking down a complex system into smaller parts that are easy to manage and maintain. Opting for microservices over monolithic architecture is a great idea, in principle. But theres a catch.
During his long career in software, Michiel Schippers seen first-hand the challenges of assembling a stable development team that can adequately cover all the areas of expertise needed for software projects built on microservices. Heres how one language, and one framework DataFlex gave Michiels most recent software project a competitive advantage.
Working in and around portfolios of database-driven apps, Michiel originally started with the C# Microsoft environment, where one developer could do everything using SQL to access the database. There was an ongoing need for new competencies, especially in frontend development and various trends in microservices. His team grew and grew until he eventually needed someone to manage the directory of microservices, the API specs, and so on.
But adopting an Agile approach to development, and following the principles of Scrum, he noticed a decline in productivity. While Agile gave his devs with the ability to respond flexibly to demand for new features and functionality, it made it much slower to push through a smaller update.
Heres a typical example: lets say you want to add a new field to an object that needs to be visible and accessible from the front end. Firstly, you need a database engineer and a backend developer, wholl need to consult an API specialist. Then youll also need to speak to the frontend designer, wholl instruct a frontend engineer on where to implement this new parameter.
Its fair to say, this isnt a quick or efficient process for getting minor changes made!
When you install DataFlex Studio, you instantly get a working tech stack. This offloads a ton of set-up work from your dev team.
With so many specialities needed to field a strong development team, youre looking at scaling beyond 6 full-time devs. Thats an expensive option. You can try to keep it small with devs covering multiple elements of the architecture, but eventually as you scale, they will naturally need to specialize.
At the same time, its not easy to find the right tech talent. Sourcing and retaining the best devs is hard. With the constant wave of trends, and the ever-changing popularity of different frameworks amongst new generations of developers, its exceptionally difficult to find devs with the right skills and expertise.
A software company has to be highly-attractive to developers especially those leaving university or switching jobs. For recent graduates, current front-end scripting languages and embedded software tend to have strong appeal. Unreal Engine for real world simulations and experimental Google projects are also attractive propositions. None of those things?
Recruiting may take much longer than you expect. However, in Michiels experience, most developers, as they advance in their careers, tend to prefer creating value for customers above applying the latest technical frameworks. Its then that multi-layer, multi-technology architectures suddenly become a burden.
Flexible staffing solutions can cover the gaps to a point. But to be productive and nurture expertise in your own architecture, you need to have a stable and consistent team. A good example is backend development.
Backend systems tend to outlive the front end. In the ERP world, for example, they can last for 20 years or more. Built on top of that are the basic access user interfaces user management, configuration, and so on. Those components tend to last around 10 years.
But the frontend User Interface (UI) where end customers or agents do their work tend to last 4 or 5 years max. In terms of software lifecycles, that makes them disposable. For that reason, reusability and documentation become less important because the chances are in a couple of years, the UI will be updated to meet user needs. There are also more frequent updates and trends in frontend development, and you have to keep up or risk falling behind.
Many backend developers enjoy the scale and quality of their work. So if they switch to a front end framework, they can become easily frustrated by low-quality, disposable front end code. Thats where a fourth generation development (4GL) framework like DataFlex makes it much easier to optimize development for a smaller team of devs.
With DataFlex, the framework or skeleton contains a structure and placeholders for the main features of a database-driven app, such as a data entry screen. It also has data dictionaries which contain business rules for data entry.
What I see in DataFlex is that adding basic functionality to your front end to access the new functionality that you built in the back end is a normal flow of work for back-enders to do.
Using a 4GL team, a UX/UI designer, and the DataFlex framework, development is streamlined. Everything is in one place and theres greater harmony between backend and front end development. And, with an ever-growing library of customizable, ready-made components, development time is much quicker.
Heres a real world example. A project for a municipality was estimated to take 120 to 150 development days. Michiel thought it might be possible to do it in 100 days. With DataFlex, a development team was able to do the project in 15 days or, put another way, 10 times faster.
Part of the reason is this: if your development team is pulling in tools and products from different vendors, you also run the risk of a security flaw or compatibility issues either right away or further down the line. A flaw is exposed in one component, it could impact others, reducing functionality, and hurting your operations. In some cases, you could be looking at tens or even hundreds of open source packages needing constant assessment and monitoring for security flaws and updates.
In one product we sold, there were around 80 open-source packages in the framework. We had to keep every one of those versions aligned and updated. But thats something that DataFlex does for you, so if you install a new version it will be a coherent set of working functionalities.
For a recent project, Michiel hired a DataFlex team instead of using his own developers to test the difference. There were a number of reasons for choosing it.
Not only did it offer faster development times using fewer devs, it also offered the security and maintainability thats so often missing from microservices (or requires enormous effort to achieve, resulting in vast differences in work estimates).
You can migrate a Windows UI to the web to retain consistency and save time on developing separate environments. On top of that, you can even integrate other frontend technologies inside DataFlex should you wish. Making the switch back to DataFlex has left Michiel with no regrets.
DataFlex provides one robust development framework and one language for all your development needs. That means theres only one set of updates needed, and one thing to fix if something goes wrong. Try it for free.
Note: this blog is written by a copywriter, based on an interview with Michiel and Jos.