Adaptation and agile

From apppm
Revision as of 21:53, 9 May 2023 by S183653 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The term Agile refers to a set of 4 values and 12 supporting principles for software developers to adopt and work by, focusing on creating flexibility and taking an iterative approach in projects. Agile originates from the “Manifesto for Agile Software Development” (2001)[1], written by a group of software developers. The Agile values are designed for software developers, and emphasizes collaboration, adaptability, and a high frequency of business-value adding deliveries throughout a project. Working Agile equals embracing change, through encouraging teams to be flexible and adapt to changing circumstances. The Agile values prioritize working software over comprehensive documentation. Adapting to the Agile values is found as beneficial to implement in projects operating in dynamic environments with a frequent change in delivery requirements or to prompt a proactive approach to changes.

This article enlightens how adapting the Agile value can be used in the context of project management, to help when the context of a project changes or proactively seek adaptation to the unknown factors within a dynamic project environment. The article explains the meaning of Agile and the 4 values of Agile a long side the 12 principles supporting the values [1]. How to work Agile is presented, through different project frameworks, recommendable software platforms, methods for daily work, and criteria to help method tailoring.


Contents

History of Agile

Although the term Agile was manifested in February 2001, Agile methods and approaches goes even further back, with Agile software development frameworks such as XP [2], SCRUM, DSDM etc. [1]

In the mid-nineties, software developers started questioning their current way of building software, with a high level documentation work, and as a response turned to start experimenting with old and new ideas to find a better way to work. From this, new methodologies emerged focusing on collaboration between the software developers and business stakeholders, more frequent value adding deliveries, team structuring, and new work methods within their development teams [3]. Through open innovation, the above-mentioned frameworks emerged and the movement around working Agile started growing in the industry.

The term Agile was defined in February 2001, when a group of 17 software developers gathered in Utah and formulated a manifesto called the Manifesto for Agile Software Development [4]. The Agile Manifesto emerged from the recognition that conventional software development methodologies, such as the Waterfall model, were unsatisfactory and inflexible to meet the rapidly changing demands of the software industry in the 1990s. Thus, a webpage by Jim Highsmith was published in 2001, manifesting the mindset and values of Agile.

A-long side the Agile Manifesto a non-profit global organization, Agile Alliance, was founded by the same founders that signed the Agile Manifesto [5]. The Agile Alliance has in 2023 more than 72,000 members and works as an interest organization to continue the work on finding better ways to develop software.


What is Agile

Agile as defined in the manifesto [1] goes broader than being a framework such as SCRUM, XP etc. and is more than a method such as daily stand-ups, sprints etc. Agile is by the Agile Alliance defined as an umbrella term [3] which groups a set of frameworks and practices through their overlapping values and principles, described in the Agile Manifesto [1]. The term agile comes from agility, and is by Qumer and Henderson-Sellers [6] understood as “the ability to accommodate and adapt to changes in a dynamic environment. Being agile means applying previous knowledge while learning from current experience to help deliver high-quality products, under budget constraints and in short time frames” [7].

The umbrella term Agile and the adjective agile, must, based on these definitions, be distinguished from each other, having the umbrella term Agile refer to the Agile Manifesto [1] and the adjective agile refer to the ability of adapting to change in a project context, by for instance applying the values summarized by the Agile Manifesto.

4 Values of Agile

The Agile Manifesto is based on four main values, which describes what a team adopting to the Agile values should strive after:

  • (I) Individuals and interactions over processes and tools.
  • (II) Working software over comprehensive documentation.
  • (III)Customer collaboration over contract negotiation.
  • (IV) Responding to change over following a plan. [8][1]

12 Principles of Agile

A more elaborate presentation of the values is presented in the Agile Manifesto a long side the 4 values, presenting 12 supporting principles. The principles each refers to the values in different ways, with the same goal of driving better software development.

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity--the art of maximizing the amount of work not done--is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. [1]

Purpose of working Agile

The Agile values allow for organizations in dynamic environments, to be agile by constantly adapting to the changes in their environment. Working Agile in the IT industry has become popular to counteract the pitfalls of which the industry in general is known for, including budget overruns, missed deadlines, low-quality outputs, and dissatisfied users [9]. The advantages of Agile lays within the focus on adapting to changes and frequently delivering working software throughout a project to create an impact. Working Agile allows an organization or team to accept that a project is in constant evolvement and sudden changes might be needed, which Agile accounts for. From a top management perspective, Agile working motivates the employees by giving them responsibility and the flexibility to create the most possible business-value for the client, rather than having to strictly follow an outdated project plan made in the initial project stages. From an employee point of view, of those who are happy with working Agile, statistics shows that 7 out of 10 report they are satisfied due to an ‘increased collaboration’ at the workplace [10]. More than half of the same employee group report that they are satisfied due to ‘better alignment to business needs’ and 39% report it helps to a better working environment. As a contrast to the stage gate principle in the waterfall model, the focus in Agile methods lays within business-value generation when doing work prioritizations for the development team on what to focus on in the product backlog [9]. Agile working focusses on constant feedback between the product owner and the development team, having the product owner prioritize what features will provide the most business value when doing the project planning. This allows for the development teams management to take a step back and provide macromanagement instead of micromanagement.

The well-known Prince2 Management certification that has evolved to be a globally accepted management method, has in 2021 launched an extension to the management framework, combining Prince2 with Agile [9]. In the released book “Prince2 Agile – Practical Implementation Guide”, it is stated that adding the principle of Agile is beneficial to both existing Prince2 organizations and new users. The extension to the Prince2 framework increases on-time and on-budget project deliveries, better internal and external communication, and greater flexibility to adapt to changing requirements. Agile is by the PRINCE2 organization seen as a principle with even greater potential than just for software development, but for project management in general:

“Organizations that adopt agile behaviors and techniques stand to gain from early delivery of more projects … faster returns on their investment … a competitive edge” [11].


Adopting Agile

While the Agile Manifesto defines the values to the term, it does not include an elaborate guide on how to achieve the listed values in a project. When adapting the Agile practice into a project, as stated in the Manifesto for Agile Software development, the practice involves “…uncovering better ways of developing software…” [1], meaning one must test and tailor methods and theories according to their context to adopt the Agile values.

Methodologies and frameworks for project management

Most popular Agile Methodologies [10]

Since the launch of the Manifesto for Agile Software development, organizations globally have done such experimentations to design appropriate models and frameworks that drives the Agile values in a project. The Annual State of Agile Report released in 2022, by Regina Corso Consulting, an independent survey consultancy, is a report summarizing the state of Agile based on questionaries answered by organizations part of the Agile Community [10]. The annual report enlightens the most used frameworks and methodologies for working Agile during the last year, from which the most popular way of adapting to Agile can be found.

Scrum [10] is from the research found as the most popular framework to drive Agile work and has over the past year increased its lead over Kanban. Scrum is a framework which helps business management by visually presenting all project tasks and categorizing the tasks regarding their activity status. The framework helps to prioritize tasks with a goal of delivering frequent business value adding deliveries to the client [12].

Recommended software tools

The research State of Agile report (ref: State of Agile report) includes the top 5 most popular project management software tools based on the participants experiences, from which using Atlassian JIRA and VersionOne is what most participants will recommend other organizations to use.


Agile techniques for daily work

On a day to day level in a development team or project team, research was carried out to determine the most used techniques to adhere the Agile principles in such work [10]. The five techniques are presented bellow in order of popularity:

(I) Daily stand up – a short daily meeting often held in the morning regarding the daily planning. The concept is that the meeting is held standing, for the uncomfortableness to motivate for a quicker meeting. The technique is a part of working with Scrum, where each employee explains what they worked on yesterday and their plans for the day, to help resource prioritization and communication.

(II) Retrospectives – in line with the values states in the Agile Manifesto, retrospective is the technique of learning from the past, having the team reflect on the past with the scope of improving future work. The technique can be carried out in different formats but should be adapted daily to help improve communication and localize potential areas of improvement.

(III) Iteration planning – is a technique to break down the complexity of a project into smaller iterations and establishing the goal for each iteration. This method aligns with the Agile value of striving to maximize work which creates the most business-value throughout a project, by ensuring each iteration contributes to this goal. The technique is valuable to adapt to help the frequency of deliveries to the customer.

(IV) Short iterations – is the technique of bringing down the time which each iteration takes to develop. With a short iteration period the development team can ensure providing the most value for the client, by making more frequent deliveries to the client. This takes for the iterations to be planed more feasible for the development team to carry out and drives more frequent feedback from the client.

(V) Kanban – is a technique which visualizes the work which has been, is being or will be carried out by the project team. The technique helps to limit the number of tasks in progress and indicate how long time a task has been on its way [13]. The technique can be useful to drive a short iteration time, iteration planning and be a part of the daily stand-up.

Choosing the right method

When adopting the Agile value, and having to method engineer according to ones needs, then according to Kalus and Kuhrmann, to help a successful choice of methods, one should consider criteria within team, internal environment, external environment, and objectives [14]. Although studies within Agile method application does favor daily Stand-up, Scrum, and Kanban [10], these considerations can be crucial to secure success in applying Agile, given a general step-by-step method guide is not applicable [8].

Development method tailoring criteria [14]
Type Examples
Team Size, distribution, turnover, previous cooperation, good cooperation, domain knowledge, tool knowledge, technology knowledge and process knowledge.
Internal environment Prototyping, Clear project proposal, management availability, management support, project budget, project duration, project type, project role, sub-contractors, financial controlling, measurement, technical support, programming language, COTS products, operating system, database system, tool infrastructure.
External environment Legal aspects, number of Stakeholders, stakeholder availability, stakeholder background, requirements stability, client process, client availability, type of contract, user availability, user background and trainings.
Objectives Complexity, degree of innovation, legacy system, legacy system documentation, domain, conceptual solution, technical solution, safety & security, hardware development, neighboring systems, user interface and system integration test.


Limitations of working Agile

Adopting Agile should not be mistaken as equally easy as adopting a new method or process. The annual State of Agile Report [10] explains that adapting to Agile is not something businesses intuitively grasps and the most common experienced challenge is the rest of an organization not understanding or even putting up roadblocks to an Agile working team. Additionally, a general experienced challenge in the adaptation is not enough leadership participation and not enough knowledge about Agile. Thus, it is of importance to include organizational change management when adopting to Agile, to minimize some of these pitfalls.

Transitioning to the Agile values

When transitioning to go Agile, an organization must consider their work approach status-quo, as their current approach defines the size of the transition which is needed. Given that Agile does follow the principles of lean and can function as an extension to management principles of PRINCE2, for some organizations already based on these principles, the transition to Agile will take less work.

Contrary, the organization build around the stage-gate approach will have a larger transition to go through to adopt to the principles of Agile. The stage-gate approach focusses on up-front planning, to limit the resources spend in the project execution [15]. The principles of the stage-gate approach simply relay on minimizing changes to a project throughout its lifetime, thus the transition in approach will seem more drastic [16]. Compared to Agile, the stage gate principle is better suited for organizations in a less dynamic environment.

Although Agile brings the possibility of a constant change in work focus, the values do not prescribe how a project manager should adapt to the values in their daily management, but only prescribes the direction and goal. Thus, in addition to the Agile values, an organization must expect having to educate and experiment in their management form when striving to follow the Agile values.

Annotated bibliography

Manifesto for Agile Software Development - The webpage is a declaration of the values ratifying the meaning of Agile. The webpage is written by one of the authors behind the manifesto and member of the Agile Aliance. The source is written in an informal language. The interests of the author, as a member of the Agile Aliance, must be considered by the reader when studying the page, given that it does provide a subjective opinion on alternative to working Agile and does not back-up arguments with relevant references. The webpage must be considered fundamental to study if wanting to adopt the Agile values.

State of Agile Report, 16th Edition - The report is a part of an annual conference on software development, explaining a status-quo perspective on the development of Agile throughout the software industry. The report is written by an independent consultancy firm, without any interests in the topic, yet is sponsored by interest organizations within Agile development. The report is based on statistics from pro-Agile companies, meaning the data describes popular trends and downsides to the values from users perspective, but does not reflect on alternatives to Agile development. The report is relevant to read for individuals interested in following the latest trends within Agile software development.

Prince2 Agile Practical Implementation Guide - Step-by-step Advice for Every Project Type, Second Edition - For readers interested in further studying the adaptation of Agile values, this book presents a step-by-step guide of how to and important considerations one must do in the transition to ensure success. The credibility of the PRINCE2 organization, alongside the acknowledgement within modern management of PRINCE2 certification, makes this book a strong reference, given the PRINCE2 organization having an interest of maintaining their highly thought of reputation, by only publishing quality products. The book does diverge from other perspectives on the Agile values, by acknowledging the potential of the philosophy being relevant to not just software development but to projects in dynamic environments in general.


Key references;

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Beck, K. Beedle, Mike (2001). Manifesto for Agile Software Development. Retrieved 1. May 2023 from https://agilemanifesto.org/
  2. Beck, K. (2000). Extreme programming explained : embrace change. Addison-Wesley
  3. 3.0 3.1 Agile Aliance (2023). Agile 101. Retrieved 2. May 2023 from https://www.agilealliance.org/agile101/
  4. Highsmith, J. (2001). History: The Agile Manifesto. Retrieved 1. May 2023 from https://agilemanifesto.org/history.html
  5. Agile Aliance (2023). About Agile Alliance. Retrieved 1. May 2023 from https://www.agilealliance.org/the-alliance/
  6. Qumer, A., & Henderson-Sellers, B. (2006). Comparative evaluation of XP and scrum using the 4d analytical tool (4-DAT). Proceedings of the European and Mediterranean Conference on Information Systems, Emcis 2006.
  7. Jyothi, V. E., & Rao, K. N. (2011). Effective Implementation of Agile Practices: Ingenious and Organized Theoretical Framework. International Journal of Advanced Computer Science and Applications, 2(3), 41–48. https://doi.org/10.14569/IJACSA.2011.020308
  8. 8.0 8.1 Campanelli, A. S., & Parreiras, F. S. (2015). Agile methods tailoring – A systematic literature review. Journal of Systems and Software, 110, 85–100. https://doi.org/10.1016/j.jss.2015.08.035
  9. 9.0 9.1 9.2 Cooke, J. L. (2021). PRINCE2 Agile Practical Implementation Guide - Step-By-step Advice for Every Project Type, Second Edition, PRINCE2 Agile An Implementation Pocket Guide - Step-by-step advice for every project type, Second edition. Prince2 Agile Practical Implementation Guide - Step-by-step Advice for Every Project Type, Second Edition. IT Governance Publishing.
  10. 10.0 10.1 10.2 10.3 10.4 10.5 10.6 Regina Corso Consulting (2022). State of Agile Report, 16th Edition. State of Agile.
  11. McCormick, R. (2015). Taking agile to Prince2. Raconteur. Retrieved 3. May 2023 from https://www.raconteur.net/taking-agile-to-prince2/
  12. Schwaber, K., Sutherland, J (2011). The home of Scrum. Retrieved 6. May 2023 from https://www.scrum.org//
  13. Ikonen, M., Kettunen, P., Oza, N., & Abrahamsson, P. (2010). Exploring the sources of waste in Kanban software development projects. Proceedings - 36th Euromicro Conference on Software Engineering and Advanced Applications, Seaa 2010, 376–381. https://doi.org/10.1109/SEAA.2010.40
  14. 14.0 14.1 Kalus, G., & Kuhrmann, M. (2013). Criteria for software process tailoring: A systematic review. Acm International Conference Proceeding Series, 171–180. https://doi.org/10.1145/2486046.2486078
  15. COOPER, R. G. (1990). STAGE-GATE SYSTEMS - A NEW TOOL FOR MANAGING NEW PRODUCTS. Business Horizons, 33(3), 44–54. https://doi.org/10.1016/0007-6813(90)90040-I
  16. Sommer, A. F., Hedegaard, C., Dukovska-Popovska, I., & Steger-Jensen, K. (2015). Improved product development performance through agile/stage-gate hybrids: The next-generation stage-gate process? Research Technology Management, 58(1), 34–44. https://doi.org/10.5437/08956308X5801236
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox