A field study of domain knowledge sharing in the software development industry in New Zealand
In contemporary software development, an emergent understanding of the problem domain and envisioned goals forms the basis of designing, testing and development activities. Lack of a common understanding of the domain can result in costly rework or client dissatisfaction. Research shows that the development of shared understanding in this context is a complex and error-prone process and there is room for improvement. Is this because practitioners are not following suggested practice from literature? Or are the actual barriers to shared understanding not being addressed by current tools and techniques? Is the development of shared domain understanding even viewed as problematic (or even important) by practitioners? These are some questions that need to be investigated in order to effectively design process improvements and tool support in this area, yet there is little information related to this. This study takes a multi-case study approach, which incorporate semi-structured interviews with representative from ten small-to-medium organisations. This study focuses on the vendor’s perspective and includes a mix of application domains. Result of the interviews is analysed to discover themes and patterns related to an analysis framework constructed from the literature review. The findings indicate that vendors perceive the process of developing shared application-domain understanding with their clients as being both problematic and important to a successful implementation. Twelve barriers have been identified from the analysis. The results also confirm that the process of sharing understanding development is generally perceived as being evolutionary and collaborative. This process is described by most interviewees comprises iterative phases of elicitation, confirmation and refinement of the understanding. A definite preference for face-to-face interaction is evident at regular times throughout development, particularly in early stages, although the importance of ad-hoc communications by phone or email, as domain knowledge needs arise, is also emphasised. Access to cooperative domain-expert throughout development is generally seen as a critical success factor. Several companies report using in-house domain-expert as client “proxies” in this regard. There is a mix of attitudes apparent regarding the direct communications of developers with client stakeholders. This ranged from insisting that developers are involved from initial elicitation and “kick-off” meetings, to “shielding” developers almost entirely from client. In terms of representations of understanding, participants relate natural-language, screen-shots, mock-ups, prototypes and product-demonstrations as the most useful artefacts for sharing and confirming understanding of the problem domain. They emphasise the importance of flexibility and client familiarity with the representations. In general, there is no clear separation between problem and solution spaces evident when the interviewees discussed representations of understanding, and the preference seems to be for concrete rather than abstract representations. In conclusion, comparisons between the findings and literature generally confirm contemporary thinking regarding domain knowledge sharing, although a number of barriers were given particular emphasis in this field study. The use of computer-based tool support is not widespread and the need to improve the domain knowledge sharing process and tool support in practice is widely acknowledged by the participants in this investigation. This study has identified some fruitful areas of research in this regard.