Data-driven Mechanisms to Improve Agile Software Development Processes in Large Organizations
Type of activity
AGAUR. Agència de Gestió d'Ajuts Universitaris i de Recerca
Funding entity code
2017 DI 036
More organizations in all industries recognize they are evolving into technology and data companies (McKendrick, 2015), and their business models are being partially or fully transformed by software. Just as an example, David Zanka, SVP of IT at FedEx, recently said “I run a software company inside of FedEx” (Gothelf, 2015). As businesses in many industries become software-driven, the need for innovation forces companies to look for alternatives to traditional software development methods that cannot guarantee continuous development and delivery models in an aggressively changing market. In order to face this major challenge, many companies have already adopted agile methodologies. According to Forrester, 69% of respondents out of 560 surveyed decision-makers of the annual Forrester Forrsights Software Survey have interest, plan to implement, or have already implemented Agile for their custom development (Benkel & Lo Giudice, 2014). However, software companies have detected a much deeper cultural problem that prevents them from ensuring continuous development and delivery: their organizations work in silos and the interaction between development and operations is almost non-existent. As a consequence, DevOps has been recently coined to describe a holistic organizational and technical software engineering approach that goes beyond software production and into operations and eventually customer demand. DevOps entails shifting operational concerns to much earlier design phases so that developers and operators can form a cohesive group to handle a more coherent architecture with the twin goal of continuous development and continuous improvement. DevOps is a natural response to business leaders' recognition that market growth and citizen-centric service delivery are dependent on the rapid delivery of high-quality software systems (Waterhouse, 2015). Measuring success in the DevOps business context is critical. However, since DevOps is not a formal framework, companies have little guidance to implement methodologies that foster a DevOps culture in their organizations and allow them to assess its effectiveness. As a consequence, many organizations try to adopt output-based measurement systems or use other non DevOps-specific metrics to assess its productivity. However, these metrics incentivize behaviours that are counterproductive to the DevOps culture. The success of DevOps culture is related to speed of deployment, rate of change, customer response, etc. Metrics to measure the success of DevOps culture in an organization need to take into account three essential dimensions: people, process and technology. This project aims at covering the gap that prevents companies from effectively improving their development and operations efficiency within their organizations and measuring the impact of nurturing a DevOps culture with appropriate metrics capturing the people, process and technology dimensions. In particular, industry lacks methods to leverage big data analytics in order to improve customer service and compute relevant DevOps success metrics, using the large quantity of stored data that is constantly generated by development teams, operations teams, customers and the interaction of these stakeholders due to the continuous development and continuous delivery processes. For example, data can be extracted from public and private software repositories to study: highly skilled team members, organizational structures relevant to a certain context; operational and customer data can be extracted from monitoring data (e.g., from issue tracking or Enterprise Resource Planning software logs); data concerning organizational structure and collaboration patterns can be extracted from corporate databases; etc. This project aims at providing technology to set up the basis for a first-of-its-kind agile software development analytics platform, which will enable mechanisms to effectively identify and compute metrics related to people, processes and technology in distributed systems engineering, and will build a set of tools to help organizations to efficiently improve their development and operations, ultimately leading to grow a DevOps culture. We plan to use analytics and machine learning techniques in order to learn and classify development team processes and behaviours and to predict future performance. In this project, we will use existing metrics like the one provided by SDPI (Software Development Performance Index: https://help.rallydev.com/insights-performance-index-calculation (last retrieved: November 2016) at an industrial level, or like ISO/IEC/IEEE 29119 on Software Testing and ISO/IEC 25010:2011 on QA and extend them to improve analysis and enable predictive mechanisms. With this, we plan to analyse development team behaviour rather than individual behaviour. By using analytics, we plan to explore potential relations between team performance and geographic distribution. We may also extract behavioural patterns that identify kanban teams versus scrum teams versus other processes and highlight differences between the methodologies. Besides, we will apply analytics and create new machine learning-based tools for early detection and prediction of quality issues and development team performance based on productivity-related metrics such as responsiveness, throughput, predictability, etc. For example, we may be interested in predicting the health of a future release, in terms of release timeline, quality, adoption, etc.
V Pla de Recerca i Innovació de Catalunya (PRI). 2010-2013
Agència De Gestió D'ajuts Universitaris I De Recerca (agaur)