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.