What is it about?

Performance engineering considerations are often omitted from courses on software engineering, computer science, and software development processes. This gives rise to the misconception, often seen in industry, that performance concerns can be dealt with once the system is built and tested. We explain that performance concerns should be addressed at every phase of the software development life cycle, and show that these concerns can show up in unexpected places. For instance, long builds and long execution times for functional tests can delay software releases, while wasteful, repetitive code can slow down program execution and increase response times.

Featured Image

Why is it important?

Poor performance is a major cause of the failure or cancellation of software projects. Slow e-commerce systems will cause a loss of revenue and increase cloud processing costs. An unresponsive control system in an aircraft, train, or a surgical robot can cost lives. Thus, there is a clear benefit to ensuring good system performance and a high cost of neglecting it. Cultivating this awareness as early as possible in coursework should encourage students to insist on designing for performance in the workplace.

Perspectives

The first author has been involved with the performance of numerous systems, including train control systems, alarm systems, data communications and voice communications systems, and network management systems. The performance of all these systems is critical to their success and effectiveness in the field. As an industrial practitioner, he has had to get buy-in and support for performance concerns with architectural and development teams. This involves explaining performance considerations and remedies on the teams' terms. His teaching and industrial experience give him a unique perspective on how to do this. We hope that this paper will encourage computer science and software engineering instructors to knit performance considerations into their lectures about the main topics of their courses, and that it will encourage industrial practitioners to cultivate performance awareness and how to support performance among their colleagues.

Andre Bondi
Stevens Institute of Technology

Read the Original

This page is a summary of: Early Progress on Enhancing Existing Software Engineering Courses to Cultivate Performance Awareness, April 2023, ACM (Association for Computing Machinery),
DOI: 10.1145/3578245.3584352.
You can read the full text:

Read

Contributors

The following have contributed to this page