  Many academics have called for increasing attention to theory in software
engineering. Consequently, this paper empirically evaluates two dissimilar
software development process theories - one expressing a more traditional,
methodical view (FBS) and one expressing an alternative, more improvisational
view (SCI). A primarily quantitative survey of more than 1300 software
developers is combined with four qualitative case studies to achieve a
simultaneously broad and deep empirical evaluation. Case data analysis using a
closed-ended, a priori coding scheme based on the two theories strongly
supports SCI, as does analysis of questionnaire response distributions
(p<0.001; chi-square goodness of fit test). Furthermore, case-questionnaire
triangulation found no evidence that support for SCI varied by participants'
gender, education, experience, nationality or the size or nature of their
projects. This suggests that instead of iteration between weakly-coupled phases
(analysis, design, coding, testing), it is more accurate and useful to
conceptualize development as ad hoc oscillation between organizing perceptions
of the project context (Sensemaking), simultaneously improving mental pictures
of the context and design artifact (Coevolution) and constructing, debugging
and deploying software artifacts (Implementation).
