Presenting the GAP Framework - the Architects' Guide to GSD

Following our Systematic Literature Review on software architecting practices, together with colleagues from Lero - the Irish Software Research Centre, we wanted to hear what practitioners had to say. We conducted interviews with software developers and architects from seven different companies involved in distributed software development. The message was clear - architecture decisions follow common practices, guidelines and procedures, but actually making those decisions becomes increasingly difficult, when design and development of the software is distributed.

In 2014, I started an Academy of Finland funded project GloFuMe, where I studied software architecture design in the context of global software development.  A lot of core work was done in collaboration with Lero – the Irish Software Research Centre. The tale behind our Systematic Literature Review (SLR) has been told in a previous post: The Yellow Brick Road to a JUFO 3 Publication.

In our SLR we were able to extract architecting practices and challenges from the literature and build a conceptual model of software architecting in GSD. However, there were rather few empirical studies in the covered literature, so we wanted to conduct an empirical study of our own. We wanted to find out what software architects considered as the biggest challenges in design, when they know that implementation will be spread over various sites, countries and time zones. We also wanted to know what kind of practices they had to overcome these challenges. We were also particularly interested how well the practitioners’ views matched with what we had previously found in the literature.

Using the networks of Lero and then laboratory of Pervasive Computing, we were able to find 13 architects (or developers who were involved or had experience in architecting activities) representing 7 different companies involved in GSD. The interviews were conducted between May 2015 and December 2016.

After a long and pain-stakingly systematic analysis and validation process (details can be found in our interview and analysis protocol, open access) we were able to produce a set of eight challenges and eight practices related to software architecture design. Each practice and challenge was further defined by concrete concerns. We redesigned the conceptual model from the SLR, and ended with the GSD Architectural Practice (GAP) Framework.

The GAP Framework

The GAP Framework combines practices and challanges found in the literature and our empirical study, and further shows the connections between them. The GAP Framework helps understanding relationships between different concepts in GSD Architecting, and how well-defined practices in one dimension help overcome challenges in another. For example – project management practices determine ways of working, but ways of working are also a part of the design process. Quality management practices, in turn, are part of ways of working. Thus, good project management practices and practices defined for the design process can both help overcome quality management challenges.

When comparing our empirical results to those found in the literature, we could see that two distinct challenges had repeatedly risen in our interviews that we had not recorded in the SLR – deviating from processes and handling soft issues. A lot of the challenges in architecture design in GSD have to do with knowledge management, understanding rationale behind decisions, dealing with instability and communication.  Many of these issues arise when people begin to deviate from defined processes – which they are more inclined to do, if they consider that the organizational hierarchy and processes do not support daily activities. Motivated by these findings, we are now studying the role of social interactions in GSD.

The end result of this empirical study was a set of practices and challenges, a concern framework (The GAP Framework), and having them published in a JUFO 3 level journal (JSS article found here). While the publication process was a lot smoother than with our SLR (JSS was our first choice as a publication venue), the analysis process was time-consuming. The interviews were conducted between 2015 and 2016  – while the undersigned was on maternity leave for one year in between interviews. Coding the transcripts, extracting the concerns and defining them as challenges and practices took 6 months, and the first draft of the framework was ready in summer 2017. After this, partially due to conflicting schedules between the authors, it took almost one year of validation rounds and revisions to the framework, as well as writing up the results, before the first version of the paper was ready in early summer 2018. Following this, another six months was spent revising, and ultimately doing two additional rounds of validation, when we combined results from the SLR to our empirical findings. The paper was finally submitted in December 2018 – and the corresponding author was a colleague from Lero, as at that point the undersigned had just started her second maternity leave, having had her second child a month before. Acceptance to JSS came in August 2019.

So again, as a word of encouragement to starting researchers – good quality research, leading to high quality results takes time. Sometimes as much time as it takes to bring two children with an age gap of 3 years into the world…  But in the end – you want to do the work to get the results you are confident in and proud of.

Keep reading