Planning and improvisation in software processes

This paper presents the results of an empirical study aimed at examining the extent to which software engineers follow a software process and the extent to which they improvise during the process. Our subjects tended to classify processes into two groups. In the first group are the processes that are formal, strict, and well-documented. In the second group are the processes that are informal and not well-structured. The classification has similar characteristics to the model proposed by Truex, Baskerville, and Travis [12]. Our first group is similar to their methodical classification, and our second group is similar to their amethodical classification. Interestingly, software engineers using a process in the second group stated that they were not using a process. We believe that software engineers who think that they are not using a process, because they have the prevalent concept of process as something methodical that is strict and structured, actually are using an informal (amethodical) process. We also found that software engineers improvise while using both types of processes in order to overcome shortcomings in the planned path which arose due to unexpected situations. This finding leads us to conclude that amethodical processes are processes too.