Talk:Adaptation and agile

From apppm
Jump to: navigation, search

Requirements can change rapidly, and the technology itself is constantly improving. Agile methodologies embrace change and encourage teams to be flexible and adapt to changing circumstances. Agile methodologies prioritize working software over comprehensive documentation. This means that developers can quickly test and iterate on new features, rather than spending weeks or months designing and documenting them. Agile methodologies encourage teams to work closely together, with frequent communication and feedback. This helps to ensure that everyone is on the same page and working towards the same goals. Agile methodologies are designed to mitigate these risks by breaking projects down into smaller, more manageable pieces. This allows teams to focus on delivering value early and often while minimizing the risk of failure.

This article is a scientific walkthrough of the term agile and how an organization can tailor the approach to fit their specific needs. Project management within today’s society is an inevitable skill for all people to come across and its importance and impact go beyond one's comprehension. Fundamentally for management to become project management, is to have a starting and finish point to define a given project. This article enlightens how adaptation and agility 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 presents the 4 values of Agile a long side the 12 principles supporting the values (ref: Agile Manifesto). Additionally, how to work Agile is presented, through different project frameworks, recommendable software platforms, methods for daily work, and criteria to help method tailoring. The approach is found as beneficial to implement in project management to help pro-actively adapt to changes within a project/program/portfolio, while the level of transition to adopting to Agile is dependent on organizations approach status-qou.

Even though the benefits of agile methods are worthwhile and have been proved by scientific and market researches (Ahmed and Sidky, 2009; de Azevedo Santos et al., 2011; Glaiel et al., 2013; Jyothi and Rao, 2011; Moniruzzaman and Hossain, 2013; VersionOne, 2013) the complexity of adopting them is high because of organization culture, resistance to change and need for upper management sponsorship and involve- ment (Chow and Cao, 2008; Dyba and Dingsoyr, 2009; Gandomani et al., 2013; Koch, 2005).


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 [1], SCRUM, DSDM etc. [2]

In the mid-nineties, software developers started questioning their current way of building software 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.

The term Agile was defined in February 2001, when a group of 17 software developers formulated a manifest 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 Manifesto [5]. The Agile Alliance has in 2023 more than 72,000 members and works as an interest organization to continue the work on developing agile software development.


What is agile

Agile as defined in the manifesto [2] 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 defined in the Agile Manifesto [2]. 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 [2] and the adjective agile refer to the ability of adapting to change in a project context, by applying the values summarized by the Agile Manifesto.

4 Values of agile

The agile Manifesto is based on four main values and principles: (I) Individuals and interactions (II) Working software (III)Customer collaboration (IV) Responding to change [8].

12 Principles of Agile

A more elaborate presentation of the values was 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. [2]

Purpose of working agile

Agile allows for organizations in dynamic environments, to be agile by constantly adopting 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. 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” [10].


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 [11]. 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.

How is this tool usable – how to adapt agile?

While the Agile manifesto defines the values to the term, it does not include an elaborate guide of how to achieve the 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…” [2], 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 [11]

Since the launch of the Manifest, 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 [11]. 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 [11] 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 in daily work

On a more 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 [11]. The five techniques are presented bellow in order of popularity:

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, since the uncomfortableness motivates for quicker meetings. 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.

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 adopted daily to help improve communication and localize potential areas of improvement.

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.

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.

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 to Agile, 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 [11], 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

As Agile being 4 values and 12 supporting principles describing a way of working and a value set to think by, adopting to Agile should not be mistaken as adopting a method or process. The annual State of Agile Report [11] shows that adapting to Agile is not something businesses intuitively grasps, since the most common experienced challenge is the rest of an organization not understanding or even putting up roadblocks to one of their own teams working Agile. Additionally, a general experienced challenge 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.

Adopting to agile

When adopting 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 much more work to do if wanting to adopt to the Agile principles. 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.


Key references;

  1. Beck, K. (2000). Extreme programming explained : embrace change. Addison-Wesley
  2. 2.0 2.1 2.2 2.3 2.4 2.5 Beck, K. Beedle, Mike (2001). Manifesto for Agile Software Development. Retrieved 1. May 2023 from https://agilemanifesto.org/
  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. McCormick, R. (2015). Taking agile to Prince2. Raconteur. Retrieved 3. May 2023 from https://www.raconteur.net/taking-agile-to-prince2/
  11. 11.0 11.1 11.2 11.3 11.4 11.5 11.6 Regina Corso Consulting (2022). State of Agile Report, 16th Edition. State of Agile.
  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