Software Design in an Exploratory Culture
Toward a Pattern Language to Discover, Learn, and Communicate Exploratory Programming Practices
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 collaborative activities, 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.