Establishing an efficient workflow and software lifecycle in a dedicated R&D oriented environment like a university research team poses some unique challenges that we will address in this post. Our explicit goal – which also comprises our competitive edge – is to facilitate the seamless transition from scientific novelty to industrial innovation.
We will first note that among all R&D under takings, universities shine best in areas that employ cutting-edge technology that still relies on academic research. Adjusting and implementing such advanced methods for specific tasks would usually require some experimentation and could produce several alternative and dead-end approaches before the final solution is agreed upon. Similarly, a university team will sometimes find itself facing challenges that necessitate quick attainment of a particular scientific or engineering expertise and/or equipment, often requiring coordination, interfacing and knowledge transfer with other research teams and departments. Project requirement specifications are usually vague to a degree and certain details are left to the researchers while other questions need continuous monitoring and consultation with the client, who is expected to continuously update the scope and constraints of the task as more details become apparent about thet heoretical possibilities and practical capabilities.
Therefore, we must conclude that rapid prototyping, technological flexibility and planning agility are essential for efficient research, and the workflow of our software lifecycle should be informed and characterized by this fact in order to minimize the costs and time-to-market of such dynamic under takings. In practical terms this means that in the research phase we take care to use rapid prototyping tool chains like the Python, Matlab and RTM aps ecosystems, where even students and scientists without an explicit IT background can easily contribute. Even at this early stage we already follow certain versioning, coding and design guidelines, but in a very lean manner, such as to achieve the compatibility, reusability and flexibility required but with minimal overhead.
In the second phase of the software lifecycle our proof-of-concept methods graduate to the level of functional prototype, where integration with the existing functions and demonstrability are primary concerns. Where necessary, the methods are ported to more serious technology stacks that support industry-grade performance (e.g. C, C++, real-time systems). Extensive testing and deployment automation is performed then to ensure convenient, reproducible and reliable demonstration experience. A major technological framework for this purpose is Docker that allows us to manage and coordinate our application deployment across various intelligent transportation systems. We maintain a central software image repository that allows any application to run on any suitable platform using lightweight virtual environments called containers (similar to virtual machines, but less resource consuming). This approach also prepares our systems for future load-balancing and OTA (over the air) update capability.
The third milestone consists of long-term deployment of our technology and services at our partners (including ZalaZONE test track and Hungarian public road authorities). For this step we make sure we refactor our codebase to perfectly align with our long-term architectural vision for a highly flexible and scalable toolchain that is also ready to be quickly adapted and employed in different environments. At this point a broad range of issues that we already anticipated and prepared forduring previous stages becomes prominent: e.g. the support of a wide spectrum of open and proprietary standards and formats (communication, safety, security,mapping, etc.), third-party software (including any tools accessible via Matlab, e.g. simulation software), hardware elements (sensors, actuators, computation, networking, etc.), and the operation of the system itself (both remote andon-site). Most functionalities in our systems are currently past the first two phases (demonstrated even at the prestigious ITS World Conference 2021) and close to the point where they will generate business value for our partners 0-24 in real environments. At the same time, we are ready to offer and extend our tools and services promptly as our flexible design with our standards support, modular interfacing and continuous delivery makes any cost of change minimal.