A Software Engineer’s Wish List for CS Research
The computer science I dream of
A recent edition of Communications of the ACM [1] had a special section on the federal funding of academic research. The edition discussed many major breakthroughs in computing that were driven initially by funding of academic research by the US Federal Government. This includes things such as the Internet itself, RAID, RISC, software-defined networking, and web search among many others. Reading the magazine was a humble reminder that many advancements in computing came from academia with government funding, not commercial products.
It got me thinking...If I could see CS research in any areas I wanted, what would I want? So, I’ve compiled a list of 5 specific areas where research would likely have a positive impact on me and my work in industry. (And, for this article, we are going to take a much-needed breather from anything related to AI.)
A Framework for Database Scalability Analysis
Many of us live in a world where two basic things about our application databases are continually changing:
- Ever more data is accumulated
- Ever more features and functionality are layered on top of all the existing ones
In other words, size and complexity are always increasing; we get no relief. We often find that performance either degrades slowly over time or, worse, an unknown threshold is crossed one day as table sizes scale up, operations start to time out, and the system is broken.
We don’t currently have a good way to determine whether a given query can support a given performance level as tables size scales up. EXPLAIN statements and query plans can provide insight into a query’s performance under the current schema and scale but do not extrapolate to higher levels of scale.
CS research has given us a mature and useful system for evaluating in-memory data structures and algorithms using the familiar asymptotic “big O” analysis. It would be a dream of mine to have a similar thing for databases and queries.
New Specification Systems for Software
We need software specification systems that allow for iterative development in short cycles, cover the breadth of all types of software while producing and maintaining a permanent and living description of correct system functionality.
MIL-STD-style SRS (Software Requirements Specification) documents never gave software developers a clear picture of what they should be building, in my experience. Requirements writers aimed to write specifications that were both simple and free of ambiguity. In reality, those two dimensions often had to be traded off. The result was often a specification that was simple but largely incomprehensible without tribal knowledge of the system.
User stories gave us a user-centric and incremental approach to specification which in many ways was an important step forward. But user stories often fooled us into ignoring non-functional requirements and wrongly thinking that technical tasks that are not user-centric have no value. Trying to apply user stories to non-interactive software is like trying to fit a square peg in a round hole. And, perhaps most importantly, user stories give us no concise description of what the software is supposed to do beyond the few weeks of work. As the years go by, we are left with an archive of thousands of user stories to sift through to try to figure out what the software is actually supposed to do.
Coping with Race Conditions
Race conditions are an old problem that we continue to live with today. On the one hand, we have better tools today than we did 30 years ago for avoiding bugs due to race conditions. On the other hand, issues caused by race conditions as a source of bugs simply refuse to go away and are typically detected and solved intuitively and through much pain. I would love to see more scientific systems emerge for detecting problematic race conditions and a set of structured solutions for coping with various patterns of race condition problems.
Better Authorization Controls
We live in a SaaS cloud world. We are increasingly being asked to build multi-tenant systems where access to hierarchical and nested object collections, many of which can scale without bounds, must be governed securely. RBAC by itself is no longer adequate. Roles must be tied to specific objects that entail access to related objects. Typically, such systems are implemented in an ad hoc fashion without formal structure and this often leads to a complex system of authorization controls that is difficult to reason about. ABAC approaches offer promise but have yet to see broad adoption. We need a system model for defining and implementing access controls within the scope of specific objects and to do so scalably.
Are We Building a Digital House of Cards?
When I began my career, software was developed using a compiler and a few libraries mostly provided by the OS and compiler suite. These days software is built atop enormously complicated operating systems, deep package hierarchies, and multiple layers of opaque cloud services. Critical industries such as health care, energy, transportation, logistics, and law enforcement depend implicitly on software. Companies pursuing ever-growing revenue in fierce competition unknowingly skimp on security and reliability. Malicious cyber actors operate at scale; scammers are enjoying a golden age. And militaries around the world are ready for full-scale cyberwarfare.
This all makes me wonder...have we built a digital house of cards? Is the globally interconnected information system and its supporting economy robust enough to survive attacks, unexpected failures, and honest human error? Or are we at risk of seeing the whole structure come crashing down and along with it our businesses, governments, and institutions?
Conclusion
So there it is...my wish list for CS research. I should also note that I don’t actually know where the frontier currently stands for each of these areas. My next step is to do some searching and reading to find out. For all I know, perhaps we have made significant progress in some of these areas in recent years. Or perhaps not yet. What is certain, however, is that federal funding of computing research has borne much fruit and there is much more fruit yet to be borne as long as we continue to tend the soil. And that is far more important than one engineer’s wish list.
References
- "Special Section: Federal Funding of Academic Research." Communications of the ACM. December, 2025. https://cacm.acm.org/section/federal-funding-of-academic-research/
Acknowledgements
ChatGPT was used in the preparation of this article for light proofreading, stylistic suggestions, and formatting.