This post is about Software Engineering and its perception in the technical field. You may remember that we launched a survey, where we tried to identify and better understand the role of Software Engineering in different technology sectors. In doing so, we were also able to compare the delta between the market and research sectors, and our SODALITE project in terms of market trends, technologies, components and the overall research vision. Our findings were quite encouraging and are presented below:

Before we begin, let's first describe Software Engineering and its position in European Research and Innovation Strategy. Software Engineering, at its core, aims to improve the quality of software technologies and solutions. We can extrapolate on the famous Marc Andreessen “Software is eating the world” quote and declare that we actually live in the software-defined world. An enormous number of devices are deployed daily. They sit there, constantly gathering data and transforming it into value. This transformation mostly happens in data centres, where the appropriate software is deployed and orchestrated, which essentially equates to crunching data. There is, however, room for much improvement in the definition, deployment and management of the current software infrastructures. Research in this area should be supported and adopted in anticipation of enabling further expansion and adoption of deployed sensors and devices, etc. in the future.

Survey Findings

The core of the survey asked about the conceptual meaning of software engineering, the main limitations faced by developers and integrators and the possible solutions they may see. The primary professional demographics were also captured to better interpret the results with appropriate context.

The survey had a total of 42 respondents from a number of professional fields. Interestingly, not just the developers (33%) and researchers (10%) showed an interest in software engineering advances, but also team managers (10%), business consultants (14%) and others more tangential to the field (33%). From this limited, yet generally representative group, we focused on determining their understanding of the concept of Software Engineering. Surprisingly, we discovered that 86% of respondents were familiar with the field, implying that concept of software engineering has permeated through to most professional fields in today’s market. Of this group, we saw a range of interests represented, from those with in-depth knowledge of the field to those with limited general awareness.

When we enquired about the perceived importance and impact of Software Engineering research, a majority of respondents (81%) believed that research lead to "Better Quality Products". Other popular perceptions also included enhancement of industrial processes (64%), and an increase of industrial competitiveness (56%). These two show that the need for better quality software is still present in no small degree.

The next series of questions attempted to prioritise the main challenges and obstacles developers and integrators commonly face. We were not surprised to learn that the vast majority of respondents feel

overwhelmed by challenges surrounding the integration and delivery of software. These obstacles and hurdles cause delays and make predictions and planning of deployment timelines a tricky, frustrating, and ultimately thankless business, bordering on the black arts. The most common management techniques, through which the respondents try to solve these issues, are software modelling and DevOps approaches (roughly 40% each), which are naturally coupled. Additionally, the more traditional waterfall planning and delivery processes are now considered largely obsolete, with more than 70% of respondents stating they expected some sort of agile development methodology instead to help cope with the ever increasing complexity of their jobs.

From our survey, our respondents believed that the most crucial software tools for the improvement of the current state of affairs are, first and foremost, CI/CD systems (60%). This was closely followed by automatic code optimisation for the targeted infrastructure, and support for heterogeneous infrastructure (roughly 50% each). Interestingly, refactoring technologies, such as code smells detection and automatic code generation only received 30% support, which can be attributed to the still relatively unknown approaches (code smells) and lack of trust in automatic code generation.

SODALITE benefits

SODALITE targets a combined solution for developers and infrastructure operators that targets the above-described issues.

Essentially, the application operator will be able to describe the application in a straightforward, no-nonsense way. Likewise, the infrastructure operator will be provided with tooling capable of describing their assets in simple terms. SODALITE will merge these descriptions/inputs and then ensure optimisation of the application, if the source code is available. After the application is deployed, dynamic optimisation ensues, taking monitoring data as input and aligning it with the application and infrastructure requirements. The resulting action is either application scaling or redeployment on a different part of the infrastructure.

Alignment with the SODALITE project

SODALITE aims to develop a combined solution for developers and infrastructure operators that will tackle the challenges surrounding the integration and delivery of software, and from our survey results, we found that SODALITE goals aligned well with the needs and concerns of our respondents. Firstly, our approach will be agile and streamlined, corresponding directly to the management needs captured in the survey. Secondly, SODALITE supports CI/CD systems through increasing the repeatability of application and infrastructure modelling processes. Thirdly, our tool set will support them in abstracting and defining the application deployment over heterogeneous infrastructures, and in the description of the infrastructure itself through IaC concepts. Having the whole system described in code also enables SODALITE to perform optimisations on different levels. Finally, SODALITE's heterogeneity support is inherent and will be crucial in meeting the growing needs of this new era of heterogeneous, software-defined, high-performance computing and cloud environments.

To sum up, we were pleased to find that our project goals, and the expectations and perceptions of the respondents aligned well. We believe that SODALITE is well on its way to providing industry solutions that will meet current and future demands.

For further questions or comments, please contact us.