Perceptions of 395 Developers on Software Architecture's Documentation and Conformance - Melo, Izabela; Santos, Gustavo; Serey, Dalton; Valente, Marco Tulio (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), 2016)
Since the 90's, a major effort has been applied in the academy to study and evolve aspects related to Software Architecture. The significant rise in the number of publications in the last few years shows how much importance and concern academia gives to the subject. However, previous studies have pointed out that when it comes to software architecture concepts and practices, there is a gap between industry and academy. Industry professionals do not know/use what is proposed by academic researchers. From the academic perspective, the theoretical foundations about software architecture, architectural documentation and architectural conformance checking are well developed. Then why industry seems not to follow them? What aspects does the academy miss about the problems in practice? What is the practical/industrial context about software architecture's definition, documentation and verification? Aiming to answer these questions, we performed a 3-step qualitative study. Firstly, we applied an exploratory survey to 58 professionals to better understand the state of the practice on software development and architecture and to give us an initial comprehension of software architecture concepts, practices and problems from the point of view of the industry. Secondly, we interviewed 14 top-professionals chosen among those who participated in the exploratory survey. In this phase we intended to deeply understand the professionals' perceptions on the subject. We used thematic analysis to assess the narratives, to form a base for our understanding and to formulate our comprehension as a series of statements. Finally, in a third phase, we performed a confirmatory survey by means of which we were able to confirm the findings. We sent the survey to GitHub users with public emails and more than 100 followers, getting 7.74% of response rate (337 respondents). From our study, we confirmed that there is not a single and unified definition and understanding of the term "software architecture" among software developers. In particular, we observed that the definition depends on several factors, such as the professional's experience and the company in which he/she is currently working. The architecture is sometimes documented but, most of the time, it is incomplete, informal and outdated. Finaly, we observed that while there is a general perception of the relevance of architectural conformity and compliance of software, activities to check architectural conformance and compliance are seldom adopted - not to mention the use of automated tools and procedures.