Continuous software engineering—A microservices architecture perspective

From its earliest days, software development has been beset with challenges in relation to timely delivery, appropriateness of features, and quality of deliverables. Many advances in software development processes have helped to address these concerns. For example, agile software development has helped to deliver working software more frequently, and capability maturity frameworks have brought about improved consistency in quality levels. However, the age‐old challenge of better, cheaper, faster software has continued to beguile developers. In this paper, we discuss an emerging approach to software development, continuous software engineering (CSE), wherein software of operational quality may be delivered on a very frequent basis, up to many times in a given day. This approach uses a complex set of independent tools that together reduce the lead time in delivering commercial‐grade software. Having examined the situational context of one industrial organization applying CSE, we conclude that the approach may not presently be appropriate to all manners of software development. Nonetheless, the authors are of the view that CSE represents a significant progression in software engineering and that software development settings of all types stand to gain from aspects of the CSE approach.

[1]  Peng Xu,et al.  Software Process Tailoring: An Empirical Investigation , 2007, J. Manag. Inf. Syst..

[2]  John Cameron,et al.  Configurable development processes , 2002, CACM.

[3]  Mark Keil,et al.  How Software Project Risk Affects Project Performance: An Investigation of the Dimensions of Risk and an Exploratory Model , 2004, Decis. Sci..

[4]  Kalle Lyytinen,et al.  Components of Software Development Risk: How to Address Them? A Project Manager Survey , 2000, IEEE Trans. Software Eng..

[5]  Rory O'Connor,et al.  Changing Situational Contexts Present a Constant Challenge to Software Developers , 2015, EuroSPI.

[6]  Rory V. O'Connor,et al.  A Complexity Theory Viewpoint on the Software Development Process and Situational Context , 2016, 2016 IEEE/ACM International Conference on Software and System Processes (ICSSP).

[7]  Holger M. Kienle It's About Time to Take JavaScript (More) Seriously , 2010, IEEE Software.

[8]  Rory V. O'Connor,et al.  A Hierarchy of SPI Activities for Software SMEs: Results from ISO/IEC 12207-Based SPI Assessments , 2012, SPICE.

[9]  Steve Neely,et al.  Continuous Delivery? Easy! Just Change Everything (Well, Maybe It Is Not That Easy) , 2013, 2013 Agile Conference.

[10]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[11]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[12]  Shriram Krishnamurthi,et al.  The Essence of JavaScript , 2010, ECOOP.

[13]  A. Strauss Basics Of Qualitative Research , 1992 .

[14]  Wanda J. Orlikowski,et al.  Studying Information Technology in Organizations: Research Approaches and Assumptions , 1991, Inf. Syst. Res..

[15]  André Nitze,et al.  Evaluation of JavaScript Quality Issues and Solutions for Enterprise Application Development , 2015, SWQD.

[16]  Liming Zhu,et al.  DevOps - A Software Architect's Perspective , 2015, SEI series in software engineering.

[17]  Tore Dybå Contextualizing empirical evidence , 2013, IEEE Software.

[18]  B. Boehm Software risk management: principles and practices , 1991, IEEE Software.

[19]  Mustafa Degerli,et al.  Yazilim Muhendisligi ve Sistem Muhendisligi Sureclerinin Harmanlanmasi: ISO/IEC 12207: 2008'in Getirdikleri ve Degisikliklerin Etkilerine Yonelik Degerlendirmeler (Blending Software Engineering and Systems Engineering Processes: Changes Introduced by ISO/IEC 12207: 2008 and Evaluations on Effects of , 2017, UYMS.

[20]  Rory V. O'Connor,et al.  Technology Enabled Continuous Software Development , 2016, 2016 IEEE/ACM International Workshop on Continuous Software Evolution and Delivery (CSED).

[21]  Rory V. O'Connor,et al.  The situational factors that affect the software development process: Towards a comprehensive reference framework , 2012, Inf. Softw. Technol..

[22]  Bill Curtis Three Problems Overcome with Behavioral Models of the Software Development Process , 1989, ICSE.

[23]  Michel Benaroch,et al.  Financial Pricing of Software Development Risk Factors , 2010, IEEE Software.

[24]  Stephen G. MacDonell,et al.  Factors that affect software systems development project outcomes: A survey of research , 2011, CSUR.

[25]  Rory O'Connor,et al.  Refactoring Software Development Process Terminology Through the Use of Ontology , 2016, EuroSPI.

[26]  Jesper Holck,et al.  Continuous Integration and Quality Assurance: a case study of two open source projects , 2003, Australas. J. Inf. Syst..

[27]  Rory O'Connor,et al.  Investigating software process in practice: A grounded theory perspective , 2008, J. Syst. Softw..

[28]  Rory V. O'Connor,et al.  An empirical examination of the extent of software process improvement in software SMEs , 2013, J. Softw. Evol. Process..

[29]  Jan Bosch,et al.  Continuous Software Engineering , 2014, Springer International Publishing.

[30]  Mary Poppendieck,et al.  Lean Software Development , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[31]  Daniela Cruzes,et al.  What works for whom, where, when, and why? On the role of context in empirical software engineering , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[32]  Lianping Chen,et al.  Continuous Delivery: Huge Benefits, but Challenges Too , 2015, IEEE Software.

[33]  Mark Keil,et al.  Software project risks and their effect on outcomes , 2004, CACM.

[34]  Mazin S. Yousif,et al.  Microservices , 2016, IEEE Cloud Comput..

[35]  Rory V. O'Connor,et al.  Exploring the Relationship between Software Process Adaptive Capability and Organisational Performance , 2015, IEEE Transactions on Software Engineering.

[36]  Miroslaw Staron,et al.  Supporting Continuous Integration by Code-Churn Based Test Selection , 2015, 2015 IEEE/ACM 2nd International Workshop on Rapid Continuous Software Engineering.

[37]  John E. Gaffney,et al.  Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation , 1983, IEEE Transactions on Software Engineering.

[38]  Bin Mai,et al.  Tailoring software development , 2010, SIGMIS-CPR '10.

[39]  Jan Bosch,et al.  Continuous Software Engineering: An Introduction , 2014, Continuous Software Engineering.

[40]  Watts S. Humphrey,et al.  Software process development and enactment: concepts and definitions , 1993, [1993] Proceedings of the Second International Conference on the Software Process-Continuous Software Process Improvement.

[41]  Mark Keil,et al.  An investigation of risk perception and risk propensity on the decision to continue a software development project , 2000, J. Syst. Softw..

[42]  Rory V. O'Connor,et al.  An Investigation of Software Development Process Terminology , 2016, SPICE.

[43]  Rory V. O'Connor,et al.  The influence of SPI on business success in software SMEs: An empirical study , 2012, J. Syst. Softw..

[44]  Rory V. O'Connor,et al.  A Conceptual Descriptive-Comparative Study of Models and Standards of Processes in SE, SwE, and IT Disciplines Using the Theory of Systems , 2008, Int. J. Inf. Technol. Syst. Approach.

[45]  A. Strauss,et al.  The discovery of grounded theory: strategies for qualitative research aldine de gruyter , 1968 .

[46]  Stefan Tilkov The Modern Cloud-Based Platform , 2015, IEEE Softw..

[47]  Jez Humble,et al.  The deployment production line , 2006, AGILE 2006 (AGILE'06).

[48]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

[49]  Michael J. Gallivan,et al.  Proceedings of the 2010 Special Interest Group on Management Information System's 48th annual conference on Computer personnel research on Computer personnel research , 2010 .

[50]  Rory V. O'Connor,et al.  Software process reflexivity and business performance: initial results from an empirical study , 2015, ICSSP.

[51]  Sean Stolberg,et al.  Enabling Agile Testing through Continuous Integration , 2009, 2009 Agile Conference.

[52]  Bill Curtis Modeling the software process: three problems overcome with behavioral models of the software development process (panel session) , 1989, ICSE 1989.

[53]  Lawrence H. Putnam,et al.  A General Empirical Solution to the Macro Software Sizing and Estimating Problem , 1978, IEEE Transactions on Software Engineering.