Software Design in an Exploratory Culture II

PI: Professor Dr. Robert Hirschfeld


Understanding unfolds only gradually. Because of that, software developers strive for simple and malleable design models and code elements to be able to react to insights and changes swiftly and concisely. While Design Thinking and agile development provide guidance mainly for user-centered and collabo-rative activities, complementary processes and supporting technologies suitable for exploring complex problem domains and solution spaces have been neglected. With programming-as-theory-building at the core of software system development, we want to apply the idea of pattern languages to capture and preserve original and modern exploratory programming practices. Based on the concise representation of each individual pattern, such a pattern language for exploratory programming can support developers discover, learn, and communicate best practices to arrive at and maintain a high-quality code base. We argue that software development will greatly benefit from such a synergy of insights from the Design Thinking and Design Patterns communities to provide means to explore interesting problem domains and propose meaningful software solutions more creatively and effectively.  In the first year, we established a process for and revealed challenges in pattern mining. In the second year, we will focus on the pattern form and means for onward evaluation.


Marcel Taeumel, Patrick Rein, Jens Lincke, Richard P. Gabriel