  Building shared understanding of requirements is key to ensuring downstream
software activities are efficient and effective. However, in continuous
software engineering (CSE) some lack of shared understanding is an expected,
and essential, part of a rapid feedback learning cycle. At the same time, there
is a key trade-off with avoidable costs, such as rework, that come from
accidental gaps in shared understanding. This trade-off is even more
challenging for non-functional requirements (NFRs), which have significant
implications for product success. Comprehending and managing NFRs is especially
difficult in small, agile organizations. How such organizations manage shared
understanding of NFRs in CSE is understudied. We conducted a case study of
three small organizations scaling up CSE to further understand and identify
factors that contribute to lack of shared understanding of NFRs, and its
relationship to rework. Our in-depth analysis identified 41 NFR-related
software tasks as rework due to a lack of shared understanding of NFRs. Of
these 41 tasks 78% were due to avoidable (accidental) lack of shared
understanding of NFRs. Using a mixed-methods approach we identify factors that
contribute to lack of shared understanding of NFRs, such as the lack of domain
knowledge, rapid pace of change, and cross-organizational communication
problems. We also identify recommended strategies to mitigate lack of shared
understanding through more effective management of requirements knowledge in
such organizations. We conclude by discussing the complex relationship between
shared understanding of requirements, rework and, CSE.
