From “Agile” to Agility

In 2001, the Manifesto for Agile Software Development framed a set of value statements and associated principles for “better ways of developing software”. The preambles were lightweight software development and iterative project management methods coupled with emerged trends in manufacturing industries (especially car manufacturing) for agile and lean production systems. The focus of the Manifesto was on software teams and emphasizing people factors.

Since then, “Agile” (noun, typically written with a capital A) has become to mean a wide range of concepts in software development processes and software organization contexts. In fact, the label “agile” is nowadays attached to most every area of software engineering and its management (e.g., agile project management, agile requirements engineering, etc). Moreover, the initial team-level focus has been scaled up to larger organizations (multiple teams) and also beyond software functions in company enterprise contexts. Some “agile” is nowadays prevalent in software-intensive companies and organizations, often even without saying so explicitly.

Interestingly enough, there is a more general concept of agility especially in business and management disciplines. While there is no one unified definition, it generally refers to the ability of the organization to sense and react appropriately and quickly enough to changes in its environment. Moreover, there are more focused sub-concepts of agility including business agility, organizational agility, operational agility and strategic agility. Overall, there is enterprise agility.

Following the above line of discourse, it is justifiable to make and discuss such questions as follows:

  • Is the company as agile as it should be?
  • Should the company become more agile?
  • How much agility does the company need in its (future) business environments?
  • What is the current level and degree of agility of the organization?
  • Is the software team agile enough?
  • How do agile software development methods and practices affect software company agility?

Strikingly, for some those kinds of questions may appear confusing and even misleading. However, it depends fundamentally on how one defines and conceives the terms “agile” and “agility” in the context.

While agile software development has been practiced for more than twenty years now and it has become mostly typical ways of working in software organizations—even to the extent that the term “agile” is not mentioned explicitly—currently there are pressing needs for most companies in different industries and business to be even radically agile. That stems from such fundamental changes in business environments as digital transformations, AI technology advancements, and sustainability (green) transitions. It follows that, in addition to the above-mentioned ones, there are new needs to make and discuss such questions as follows:

  • Does hybrid work make companies (more/less) agile?
  • How could AI improve software development agility?
  • Are agile software organizations sustainable?

It follows that basic agile software development (software agility) may not be enough to succeed at the company/enterprise level. For contemporary software engineering research, this means that the research problems and questions of agile software engineering should evolve accordingly following the evolution of the business and technological changes and advances.

Agile software engineering has been researched actively for more than two decades now since the publication of the Manifesto. Notwithstanding, astute research continues to discern and even charter what agility is principally and what it could—and perhaps even should—be in the current and future technological environments and software-intensive organizations.

Digitalization, Data, Artificial Intelligence, 6G, Smart Energy Systems, Circular Economy—Needs for More Software!

Interestingly, all the themes and areas listed in the title are currently under intensive development and advancement. While the terms are not exactly defined and may involve different things in different organizational and business contexts, they entail in general such topics and issues as the following:

  • Digitalization means incorporating digital elements (e.g., new information systems) for example to automate work processes.
  • Data is increasingly collected, processed, stored, and shared in digital systems (e.g., IoT).
  • Artificial intelligence technology systems (e.g., machine learning) are based on digital data.
  • 6G telecommunications systems incorporate complex control and signal processing functionalities.
  • Smart energy systems build on advanced automation and control systems (see for instance here).
  • Circular economy organizations and services rely more and more on digital systems (e.g., platforms).

Strikingly, all the above incorporate and rely more and more on software technology—even as a key enabling technology (KET) without directly stating so. Someone or something must develop and maintain all that software. Consequently, even many traditional, non-ICT companies and organizations (e.g., financial sector) need more software and related technological competences and capabilities. That entails not just software development but also the expertise to apply software technological solutions for instance in various business process areas and organizational functions. Overall, there is a global lack of such software-related resources, and that may even limit the growth of many companies—perhaps even more so in the future, given that the amount and sophistication of needed software development seems to be continuously increasing.

For the software research, the above brings many intriguing and significant drivers and targets, such as:

  • Increasing the overall productivity of software development
  • Continuously maintaining (and enhancing) existing and growing, connected software systems—including “legacy” systems, possibly with old-fashioned architectural dependencies and outdated technological elements
  • Recognizing and discerning opportunities and needs for software-based solutions and systems in new product/service and business areas

Some of those may include significant new and open software development and technological research questions while some may be more about applying currently existing research knowledge and results. It is imperative to realize that to advance effective and meaningful software engineering research.

Agility—Yes, But What Agility?

Over the past few years, software companies and software-intensive product development organizations have experienced turbulent changes in their business and operating environments. Furthermore, such current courses as large-scale digital transformations, data/AI technology developments and green transitions are likely to call for strong and sustainable capabilities for even enterprise-level agility.

In the annual (since 2018) Nordic Agile Survey industry-academia collaborative research, we have been investigating the current nature of agility in industry. The survey is again open for responding. What agility means and entails for Your company/organization nowadays—and in the future? Think about that, and reply to the survey here!

 

GREEN ICT FOR GREENING

Green ICT is not a new concept. However, for many reasons it has recently started attracting increasingly both software researchers, industrial software companies and public sector IT organizations. In particular, since many organizations and industrial sectors have announced their targets to become carbon neutral by 2030 or even sooner, there are clear motives and interests to develop and utilize green ICT. In general, sustainability goals call for green ICT.

So what is actually “green ICT” — and, conversely, what is then perhaps not so “green”? There are many aspects of “green” and, consequently, different definitions emphasizing different features of sustainability. In general, resource consumption (especially energy efficiency) is addressed. In current software systems environments, dependencies on various platforms and infrastructures (networks, data centers) make it complicated to realize the actual net effects. An apparently short piece of source code may actually require a lot more — thus being less “green”.

Nowadays ICT and software are increasingly utilized in most every industrial sector in many different ways. It has even been said that all companies are becoming “software companies”. In many cases, ICT is an enabling technology for “greening”. For example various equipment manufactures can embed software systems into their products to optimize energy consumption. Product development companies can use software tools to analyze the products under development to design-for-green.

Ultimately, a combination of utilizing green ICT for greening could be ideal. In such constellations, the ICT solution itself would not be a “problem” and it would provide solution possibilities to sustainability problems.

For us as software engineering researchers, the aforementioned developments introduce many intriguing research problems and aims:

  • How to specify “green” software products and systems?
  • How to design and develop them?
  • How to measure the products and their development with respect to “green”?

and

  • How to identify ICT opportunities for greening in different (non-ICT) industry sectors and application domains?

Nordic Agile Survey: Pandemic Agility

As posted earlier, we conducted a survey round in October–November 2020 including question items about the impacts of the pandemic and its potential relations to agility. We have now analyzed those results and published a new research paper in the XP 2021 workshop:

Impacts of COVID-19 Pandemic for Software Development in Nordic Companies – Agility Helps to Respond

The key findings showed that although the impacts have mostly been negative, it has not been all so. The pandemic has impacted different companies differently both in negative and positive ways. The majority of the responses indicated that agility has helped to respond to the situation.


We are currently preparing another survey round to be conducted by the end of 2021. In fact, perhaps unevenly, the pandemic is (still) affecting many companies, so a longitudinal study is warranted.

For more information about the Nordic Agile Survey, see here.

Nordic Agile Survey 2020

We have again continued our agile survey research with Nitor started in 2018 (see Agile Now in Finland Continued):

  • In November 2020, we presented further results of the two survey rounds conducted in 2018 and 2019: ICSOB 2020.
  • In December 2020, in collaboration with Karlstad University, we finished another survey round targeted to respondents in Finland and Sweden. We received a substantial set of responses, and we are currently working on the analysis to publish the research results. The questionnaire included items about the impacts of the current situation of the pandemic and its potential relations to agility of companies.

 

Discontinuity and Continuous X Within Software Development

Many – if not all – software organizations are currently faced with extraordinary circumstances and highly uncertain business conditions. Hardly any “business-as-usual” exists. Some of the discontinuities may even become “new normal”. In these discontinuous times, it is especially apt to consider, what continuous activities and capabilities relate to modern software creation and production.

Continuous delivery and continuous deployment (CD) are nowadays mainstream practices in modern software engineering. Such practices coupled with efficient infrastructures make it possible to develop and maintain software systems frequently based on the current feedback and usage conditions. Continuous integration (CI) supports that way of working.

Continuous experimentation facilitates software product creation by reducing uncertainties with systematic experiments (c.f., here). Consequently, the more uncertainties the software product is faced with, the more useful such experimental development approaches with continuous learning may be.

Advancing from and building on the aforementioned developmental capabilities continuous innovation integrates continuous learning, improvement and innovation. Continuity of the innovation activities and related business processes are especially important in volatile and fast-moving environments where stable states may not prevail for longer times and disruptions may blur and even reposition industry boundaries.

We have recently investigated continuous innovation in an industrial case study (see https://doi.org/10.1007/978-3-030-33742-1_13). ICT use may improve organization-wide ideation and the subsequent innovation process activities by making key information transparent and ubiquitously accessible for all stakeholders. That enables every employee to continuously engage and contribute to idea generation, development and validation. Ideally, the knowledge and creative potential of the entire organization is utilized at critical times.

 

Agile Now in Finland

Agile software development is nowadays perceived to be mainstream practice in industrial companies and software development organizations. However, since the publication of the Agile Manifesto in 2001 a lot of progressive evolution and developments have taken place both in industrial practice and academic agile research. One of the significant current drivers is the ongoing digitalization which has affected most industry sectors even radically.

Therefore, we have been interested in investigating the actual current state of agile software development in industrial organizations. Moreover, we want to understand Agile in practice more broadly and deeply considering even enterprise-level agility. We are interested in different industrial sectors beyond ICT since agile methods are possibly increasingly applied also in non-ICT companies when they become more software-intensive.

For those research interests we have been collaborating with Nitor (see here) in conducting an industrial survey in Finland in late 2018. The first results have just been presented at XP 2019 7th International Workshop on Large-Scale Agile Development (LargeScaleAgile).

 

Software Futures in Future Energy Systems

Energy systems are in global transition. They are becoming “smarter” by incorporating more and more software and digital data. This is in particular the case with electricity power systems which are currently developed to so-called Smart Grids. In essence they are power systems coupled with ICT systems.

The nature of the future electricity Smart Grid system is fundamentally different from the traditional power systems. Traditional bulk power generation is shifting towards distributed energy resources (e.g., wind turbines). Furthermore, the power flows can now be two-way so that even individual citizens can produce and sell electricity based on for example their private solar panels. In Finland, households are now equipped with smart metering devices making it possible to manage such power flows with information flows.

Such developments bring up many new needs of software systems engineering for current and future energy system houses to be able to design, build and operate the increasingly complex systems-of-systems comprising hardware, software and human elements (cyber-physical systems, CPS). Moreover, the systems must run 24/7/365 being parts of critical national infrastructure under regulations.

We have recently addressed this empirical software research field in a presentation in the Futures Conference 2018: ENERGIZING FUTURES – Sustainable Development and Energy in Transition with the title

Future smart energy software houses

 

For further information, see:

https://futuresconference2018.wordpress.com/
https://futuresconference2018.files.wordpress.com/2018/06/energizing-boa-web.pdf