DEQSE: Developer Experience in Iterative Quantum Software Engineering

Table of contents
Project description
In today’s software engineering, iterations form an important part of just about any system. These iterations help find the bugs and other problems as early as possible, because at that point the developers can fix them with straightforward actions. Moreover, since computing resources in general are cheap, iterations are affordable en masse. In fact, much of the mindset in agile and continuous software engineering is enabled by constant tests that detect possible problems at the point the errors are made, allowing developers to fix them while they are still in the flow state with the piece of code in question.
However, not all computing resources are cheap to consume. In high-performance (HPC) and quantum computing (QC), executions can consume considerable amounts of energy and time, which is reserved and used even if the very first steps in the process fail. This means that developers must assume a different attitude towards programming, and aim at error-free software before its execution. This is commonly done using simulators, which are commonplace for both HPC and QC. However the fashion developers advance from one tool to another is ad-hoc, with no established software engineering guidelines, and the final step from simulators to HPC/QC is still a leap of faith, comparable to releasing software.
In this project, we propose helping developers to iterate in an agile fashion when developing quantum software. The iterations are defined such that in the beginning, when the solution is still vague, computations are interactive and provide instant feedback, thus supporting conceptualization of the software and experimenting new ideas. In addition, cloud computing will be used to support code mutations and model transformations, that can help by partly automating the transformation from experimental code to HPC and QC. When the solution becomes more precise, more expensive computations such as quantum algorithm and hyperparameter optimization, executed in batches, are needed. Finally, when everything is verified using HPC, a real QC is involved, at a point when the algorithm and its hyperparameters are as precise as possible. To understand the applicability of the model, we study the developer experience across all the phases, and aim to consolidate guidelines for concrete development of quantum software in an agile fashion.