Continuous *
Continuous * (pronounced Continuous Star)
Throughout is short history, software development has been characterised by disconnects between important activities e.g., planning, analysis, design and programming. The problem is further exacerbated by the episodic and infrequent performance of activities such as planning, testing, integration and releases.
Several emerging phenomena reflect attempts to address these problems. For example, the enterprise agile concept has emerged as a recognition that the benefits of agile software development will be sub-optimal if not complemented by an agile approach in related organisational function such as finance and HR. Continuous integration is a practice which has emerged initially in XP to eliminate discontinuities between development and deployment. In a similar vein, the recent emphasis on DevOps recognises that the integration between software development and its deployment needs to be a continuous one.
We argue a similar continuity is required between business strategy and development, BizDev is the term we coin for this. Drawing on the lean concept of flow, we identify a number of continuous activities which are important for software development today. These activities include continuous planning, continuous integration, continuous deployment, continuous release, continuous delivery, continuous improvement (both process and product), continuous compliance, continuous trust and continuous use. We use the umbrella term, continuous *, to identify this family of continuous activities. We also define each of these terms and indicate which are synonymous and also identify a higher level of abstraction which can be imposed on these terms.
The figure below summarizes the relationship between these continuous * activities.
Read more here: Fitzgerald B and Stol K (2014) Continuous Software Engineering and Beyond: Trends and Challenges, First International Workshop on Rapid Continuous Software Engineering (RCoSE) co-located with ICSE’14, Hyderabad, India.