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.