Can Design Thinking Improve Programming? III
Exploring Means to Grow a Shared Vocabulary Between Programmers and Domain Experts
PI: Professor Dr. Robert Hirschfeld
Software design projects are carried out by teams of experts from multiple professions, which need to establish a shared vocabulary to foster collaboration and focused discussions. Tacit knowledge impedes direct knowledge exchange and thus involves social interactions supported by design tools such as interviews, drawings, and tangible prototypes. Similarly, in software engineering, there are agile practices to cope with changing insights due to only slowly revealing, domain-specific details. Eventually, the executable code artifacts will carry that vocabulary and describe the software. Thus, collaboration close to such artifacts can support knowledge exchange. We want to investigate the strategies non-programming experts apply when understanding source code. We then want to derive techniques to represent readable, domain specific expressions carried by general-purpose programming languages to reduce translation efforts and support collaboration. We plan to complement the text form with visual, yet executable, annotations to amplify the use of tangible artifacts. In addition to improving timeliness and quality, we think domain experts could carry on adjusting domain-specific rules in the software product without the programmers' assistance.