Continuous Software Engineering

Software Development and the management thereof is a critical activity for CIOs. In this post we draw heavily on the work of Brian Fitgerald and Klaas-Jan Stol to show how to modernise and automate the process for developing products and bringing them to the customer quicker. This post also serves as a summary for a slew of software engineering concepts. Please feel free to research all of them in more details.

Software development is a process adopted by IT organisations which involves computer programming, testing, documenting, bug fixing etc. aimed at creating applications and frameworks that will result in the production of a software product. It is an imperative process in the successful functioning and productivity of an IT organisation. Despite its importance, throughout its existence it has been characterised by a variety of detrimental disconnects that have been observed between important activities needed for maximised efficiency and value. These activities include planning, development, and implementation.

Multiple concepts have emerged in an attempt to address these glaring disconnects. These include:

Continuous integration, a practice adopted to eradicate the disconnects between development and deployment. DevOps, being emphasised to ensure that integration between software development and its operational deployment is continuous. BizDev, to ensure that integration between business strategy and development is continuous.

By employing these strategies, or practices, a more holistic approach to software and development operations is adopted. This, in turn, makes certain that other important aspects aside from mere software integration become the focus and that a well-rounded approach to continuity and operations is guaranteed. Thus, a more proactive approach is maintained in which the ‘flow’ concept of Lean/Agile principles is prioritised allowing for the establishment of a continuous movement in product manufacturing and development.

In the end, the aim is to integrate business strategy, development, and operations within the processes in software engineering to ensure continuous improvement, evolution, and innovation. Succeeding in this guarantees optimised value and success in the long-term for IT organisations and their software development endevours.

This is illustrated in the diagram below. Following the diagram is a table containing a variety of definitions describing concepts mentioned throughout this lecture as well as the illustration.

Table 1: Different types of continuous software engineering practices (Source: Ftizgerald & Stol)

Conclusion

Ensuring that disconnects between software development and activities including planning, development, and implementation involves the employment of a holistic approach that emphasizes continuous software integration, DevOps, and BizDev. Doing this allows all factors within software and development operations to be integrated including business strategy, development, and operations. In turn, this guarantees continuous improvement, evolution, and innovation within the IT organisation and its software development operations. This continuity is imperative for the maximisation of functionality, efficiency, value, and success for the organisation in the long-term.

Resources

Fitzgerald, B. & Stol, K.J. Continuous software engineering: A roadmap and agenda, The Journal of Systems and Software (2015), http://dx.doi.org/10.1016/j.jss.2015.06.063

What is next

Previous Post Next post Enterprise Architecture IT Risk Management

For all our Podcasts

If you feel you are stuck in your career try our Coaching for Corporate Athletes