We describe extensions to the Excel spreadsheet that integrate user-defined functions into the spreadsheet grid, rather than treating them as a “bolt-on”. Our case study is unusual in that it highlights the way that programming language insights can be applied to a product not normally considered as a programming language.

Even more unusual, our design is ruthlessly driven by principles of user-centred design developed by the HCI community, extending them to programming language design. Unlike other programming language research that focuses on usability, our project involves the evolution of the design of a well-established language, which raises compatibility with previous versions as a major issue, but also gives us access to a user base who are able to offer feedback in the user-centred design process.

In this paper we present our extensions and the HCI design principles that lead to our design choices.

If you are interested in this paper, you may also be interested in the European Spreadsheet Risk Interest Group (EuSpRIG).