SPE interview results

We interviewed 60 people about why SPE matters and where it's going.

The Fastcode team interviewed 60 individuals across academia, industry, and government about software performance engineering. We asked, “Why is software performance engineering important, and where is it headed?” Here's what we heard.

Opportunities for community

Many people related a few common themes that are especially relevant for community action:

  • A desire to compare notes with other professors who are teaching SPE
  • A desire for events and activities that bring together "the scattered tribes of SPE"
  • A desire for improved tools that make it easier for all programmers to do SPE.

If you're interested in connecting with others around the above topics (or any other topics), please let us know.

Why is SPE important?

With the demise of Moore's Law, SPE is increasingly vital for making the most of existing hardware resources. The results matter for a variety of reasons, including:

  • Innovation: Performance engineering unlocks the potential to solve problems that were previously intractable.
  • Competitive advantage: Performance engineering differentiates winners from losers in businesses like finance and technology, where firms provide time-critical software platforms where every microsecond matters (e.g. an operating system, web browser, or financial trading system).
  • Cost savings and environmental benefits: Performance engineering reduces the usage of resources such as CPU time, memory, and energy.
  • Scalability: Performance engineering enables software to handle increased load gracefully.
  • User experience Performance engineering improves software responsiveness for the people using the program.

Where is SPE going?

We heard about important SPE work happening in areas such as compilers, domain-specific languages, parallel programming, performance modeling and analysis, and hardware/software co-design.

Many interviewees expressed a desire to see SPE principles and practices applied more widely across computer science, related fields, and industry. For example:

  • Many real-life SPE projects involve detective work in the face of incomplete information about a large program that is tightly constrained by both resources and compatibility with legacy systems. We need better ways to incorporate these elements into CS education.
  • We need a way to recognize and reward software contributions in fields beyond mathematical software, perhaps through peer review of software artifacts alongside research papers.
  • We need SPE researchers to “listen more to people who actually use" the tools and techniques they develop, by engaging more with domain scientists and application developers.

Communication gaps are a key challenge for SPE. The gaps sometimes mirror the heterogeneity of the systems we are studying. They are fueled by reward systems that prioritize discovering new things over composing existing things. They are also exacerbated by the rapidly evolving technical landscape.

The interviews underscore the growing importance of SPE in a world increasingly reliant on software and constrained by limited resources. We are looking towards a future where SPE plays a more central role in computer science education, research, and practice.

What do you think about this vision and the role of your work and the Fastcode community? We welcome your thoughts, questions, and feedback. Please join us.