Professor Daniel Jackson of MIT CSAIL is working on a radical new approach to the design of software. Prof. Jackson, who leads the Software Design Group in CSAIL, says that his approach is “predicated on the assumption that if you want to build great software that is usable, reliable, and secure, then not only do you need to have a deep and clear understanding of what your software does and why it does it, but you need to embed that understanding in the very structure of the software system.”
He has developed a method of designing software around a notion he calls “concepts.” Concepts allow programmers to identify the concepts in a system, analyze the concepts systematically, and put them together in a productive way to solve problems. Ultimately, this gives a more flexible and simpler view of how to organize software and to ensure that the software actually meets the needs of its users.
Some design methodologies, such as Agile software development, may come to mind in the sense of making software and its design simpler, but Prof. Jackson notes that Agile is more of a process revolution rather than a software development resolution.
“Agile really did nothing to rethink what software was really all about, how we would actually design software,” he says. When it comes to actual software design, Prof. Jackson says, “We’re not really that far ahead of where we were in the 1970s.”
We may have come a long way in programming technology and programming methods, as well as abstract data types and objects and fundamental ideas. “But we still, in many respects, missed the big picture,” says Prof. Jackson. “What I see is that when we think about usability in particular, you have visual designers and user experience designers who tend to focus primarily on the skin of the user interface…and then you have, of course, a mountain of software engineers and developers who work on backend stuff…but there’s almost nobody bringing these two together. There’s nobody thinking about what it actually means to design the fundamental structures of software to serve the needs of the users.”
This is why, he argues, we so often end up with systems that, despite the remarkable technology involved, are still “almost unusable.”
He gives Zoom as an example. While Zoom’s popularity and success are well-deserved and its video technology is remarkable and reliable even if a user has a spotty internet connection, there are still situations that come up in which breakout rooms don’t always behave the way you expect them to, chat messages get lost, and security problems arise.
“We’re beginning to realize there’s this disparity between the underlying technology…and the usability of the technology, which is often just neglected,” he says.
To make software more usable, it has to be simpler, and that requires us to rethink the fundamental paradigms of programming. One way in which Prof. Jackson and the Software Design Group in CSAIL are pursuing this research is through the Wildcard project, which is a more customizable, flexible, and democratized way to browse the web. Wildcard is essentially a browser extension that allows both programmers and users to “really shape the applications that he or she uses,” says Prof. Jackson.
For example, if you are browsing an Airbnb page and see that it doesn’t allow you to sort listings by price, Wildcard could help you add that feature on the Airbnb app and the webpage.
“This requires no sort of expertise from the end user perspective,” he says. Right now, Wildcard is primarily spreadsheet-driven in terms of customization, but eventually, a user “could tailor their experience just with simple queries in plain English.”
As for the current commercial viability of such projects, Prof. Jackson says, “I think Wildcard is pretty close…we’re getting to the point where we will be able to customize a large variety of websites, and I think it could be very powerful and useful to end users.”
Another project his research group is developing is called Alloy. Alloy allows developers to write down the essential aspects of a design in a succinct and intuitive way, and then run an analysis that automatically finds bugs in the design.
“Alloy is a very radical idea, because it expects you to think about design in a different way,” says Prof. Jackson. “It expects you to think about the very essence of your design and to record it in this simple, logical language.”
Although Alloy was started many years ago in the 1990s, it has kept growing ever since and continues to bear fruitful tools and extensions, such as Electrum. It is also being taught in many universities all over the world, and used in many companies to find critical bugs in designs before those designs are even coded.
Prof. Jackson’s insights into programming paradigms extends into areas beyond computing, such as self-driving cars. Working with the Toyota Research Institute, he and his group developed an interlock that acts as a safety controller, ensuring the safety and dependability of highly complex systems like an autonomous vehicle.
The interlock essentially “monitors the behavior of this very complicated system with a much smaller and simpler piece of code,” Prof. Jackson explains, “and if there’s a problem that it detects, it intervenes.”
CSAIL Alliances has opened up many opportunities for continuing collaborations with industry, like the work with the Toyota Research Institute.
Prof. Jackson says, “I’ve been extraordinarily impressed by the amazing range and number of companies that are partnering with us through these alliances, and the vibrancy of the programs. I’ve had the opportunity to meet our colleagues from these companies who have come through MIT…and I’ve had the opportunity to participate in the Alliance’s wonderful annual meeting.”
He also values how such relationships can help academia and industry learn from each other. “I think that Alliances plays a crucial role in connecting us to industry, exposing industry to the ideas that we’re developing, and exposing us to some of the important challenges and problems and ideas that come out of industry. It’s a hugely synergistic and mutually beneficial system, and I’m thrilled to be a part of it.”