Agile (adaptive) model

From apppm
Revision as of 23:02, 20 February 2022 by Marcolombardo (Talk | contribs)

Jump to: navigation, search

Marco Lombardo s210384

Contents

Abstract

Agile model is a new way to ride the life cycle in Project, Program and Portfolio Management. The focus of the model are process adaptability and customer satisfaction. To achieve the scope, the model uses a combination of iterative and incremental process models by rapid delivery of working software product. [1] Although there are some adaptive methods that are from before 2000’s, it is possible to date the concept of agile in 2001 when it was signed the Agile Manifesto.[2] The Agile Manifesto outlines 4 Core Values (individuals and interactions; working software; customer collaboration; and responding to change) and 12 Guiding Principles which are of key importance for any team aiming at using an agile model. The agile model is an adaptive model that is divided in 5 phases: envision, speculate, explore, adapt, and close, whereas the traditional models are based on a predictive approach (i.e., waterfall model). Both typologies of modelling have their pros and cons and the best approach to follow depends on the project/product. Its goal is to assist companies provide value more frequently to their clients, react quicker to changes, and eventually improve the business. [3] It is utilized when it is necessary to divide a large project into more reasonable tasks and complete them in short iterations throughout the project life cycle, defined as the set of phases from the start to the end of a project. [4] The model can be applied to almost any project, as it is not related to its size or complexity. However, it is not suitable for all cases, and it is fundamental to carefully define when to implement it. It is also important that the companies adopting the agile model make sure that their employees are aware of the rules and methodologies to successfully work with such a model.


Big Idea

The development models are tools that allow people to correctly follow the steps to create software that meets a business need, one of these tools is the agile model. This model is used for its elasticity and adaptability and based on an iterative approach. [6] It is possible to define the agile model as a lightweight method compared with all the other software development models.

History

The Agile Manifesto was written in 2001, when 17 developers in Wasatch Mountains (Utah) had a meeting focused on the technological development of the future. Everyone agreed to the fact that most companies were drowning in documentation and were focusing too much on planning, with the consequence that they were losing what was the most important thing for their business: their clients. For this reason, that weekend they wrote a short document (with only 68 words) that changed completely the development of software and the way of working for big companies. The idea of the Agile Manifesto was to find a common area among the most used frameworks conceptually close to the agile method (for example: Scrum, Extreme Programming, Crystal Clear and other frameworks). “The Agile Manifesto has four Core Values:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

And the 12 principles are:

  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 arness 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. Businesspeople 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 behaviour accordingly”. [5]

Description model

The model is well defined using the word adaptive, it is used in companies to break projects in small pieces. The approach used is that there is no detailed planning and the idea about future tasks is clear only about what is needed to be developed. Using this method teams need to be elastic and able to easily adapt when the product requirement is changing. The particularity of the version is that a product is examined regularly the use of release iterations, minimizing on this manner the hazard of any predominant disasters in future. The iterations involve different teams that simultaneously work on various area. [1] Work done in working sessions is also known as sprints. They have variable durations that can range from a few days to a few weeks. The idea is to have a rotating release schedule from the teams to demonstrate that these segments are working well and, if not, to quickly fix any flaws. The agile model has 5 main phases:

  1. Envision: this is the starter point for each company it is important to conceptualize the product and the needs of the end customer. It is important because in this step it is studied who will work on and its stakeholders.
  2. Speculate: this phase is important to create the initial requirements for the product. Each team would possibly paintings collectively to complicate a featured listing of the very last product, then become aware of milestones concerning the undertaking timeline.
  3. Explore: The mission is laboured on with a focal point on staying inside mission constraints, however groups may also discover options to meet mission requirements. Teams’ paintings on unmarried milestones and iterate earlier than shifting directly to the next.
  4. Adapt: Delivered outcomes are reviewed, and groups adapt as needed. This section makes a speciality of adjustments or corrections that arise primarily based totally on consumer and personnel perspectives. Feedback must be continuously given, so a part of the undertaking meets end-person requirements. The undertaking must enhance with every iteration.
  5. Close: The results provided will be reviewed and the groups adjusted as necessary. The final project is measured against the update requirements. Errors or problems encountered during this process should be investigated to avoid similar problems in the future. [3]

Agile is everything about adaptive planning, development that evolve over time, early delivery, continuous improvement. it encourages rapid response, adoption and adaptation to change. [77]

Applications

Adaptive (agile model) vs. predictive (waterfall)

To explain where an agile model can be applied, it is important to understand the differences between adaptive (agile model) and predictive (waterfall model) methodologies. The adaptive strategies change fast exactly as fast as the real constraints and idea might change. Teams might be efficient to understand when a project change, they might adapt to it as well. Teams are working with agile models are not able to describe precisely what will happen in the project in the next future. The in addition away a date is, the vaguer an adaptive approach is ready what is going to show up on that date. An adaptive team cannot file precisely what obligations they may do subsequent week, however best which functions they plan for subsequent month. An instance is likewise while requested approximately a launch six months from now, an adaptive team is probably capable of file best the assignment assertion for the launch, or an assertion of predicted price vs. cost. Predictive strategies, in contrast, consciousness on analysing and making plans the destiny in element and cater for recognised risks. In the extremes, a predictive group can file precisely what functions and obligations are deliberate for the whole period of the improvement process. Predictive strategies depend on powerful early segment evaluation and if this is going very wrong, the mission might also additionally have problem converting direction. Predictive groups regularly institute an extrade manipulate board to make sure they do not forget most effective the maximum treasured changes. [4] The predictive models are still the most used to manage projects and in particular the Waterfall Model. It is defined also as a linear sequential model. Often, it is possible to consider the waterfall model as the traditional approach of project management. It is organized in a strict way of planning and executing the plan step-by-step, and each step is dependent to the previous. This type of linear approach often cannot be useful if the product needs dynamic and fast changing environment as nowadays. In a Waterfall project, if there is a need to fix a failure it will require lots of extra time and cost that are not planned with the clients. For this reason, many teams in companies are strict to ensure that projects satisfy the constraints before continuing to the next phase otherwise it will have to be rebuilt from the starter point. [7] Considering that, it is possible to make a clear line in between the two methodologies and trying to understand when it is better one and when the other. The waterfall model is suitable for projects with well-defined requirements where almost no changes are expected. Instead, agile works smoothly when there is a higher chance of frequent requirement changes. Agile is a flexible model able to adapt to the change of the requirements also if it will happen daily. Instead, in the waterfall model the constraints are defined with the business analyst only once at the starter point of the project. [10]

Companies which adopted the agile model

For its nature, agile model is a challenge for big companies, because it requires strong ability of the teams, flexibility, and fast response to changes. Something that does not seem to be compatible with the rigid’s structures of the large companies. But there are some big companies like CISCO (IT), Lego (IT), Barclays (Finance), Panera Bread (IT), Ericsson (Mobile network), PlayStation (Gaming), John Deere (IT), Fitbit (technology), OpenLink (Finance), Royal Philips (medical technology company) which had adopted the agile model and they got positive results from it. [87]

Examples of agile software

Some examples of the most popular agile methods are:

  1. Scrum

The first agile framework is Scrum, which uses sprints and daily meetings (also known as Scrum ceremonies) at intervals in order to address different portions or a set amount of work within a project during its life cycle. There are three important roles in Scrum: the leader of a project is usually the Scrum master, the client is often the product owner, while the people developing the product are the scrum team members. [8]

  1. Kanban

The Kanban method is one of the most used frameworks which consists on the visual display of present, future and completed tasks. Each task is displayed on a kanban board where the team members can see the state of every piece of work at any time. The applications for this method are the agile implementation and the development of DevOps software. The reason why the Kanban board is widely used is that having a visual representation of the tasks helps the agile team members to have an overview on all tasks, both their own and the ones related to the project. To achieve this visual display, it is important to have quick and continuous communication of available resources and being completely transparent on the work progress. [88] [8]

  1. Extreme programming (XP)

The last model is the Extreme programming an agile software development framework with the idea of producing a higher quality software and quality of work for the development team. The model is considered the most specific among all agile frameworks for what concerns good engineering practices for developing software. The values of the extreme programming are five and are: communication, simplicity, feedback, courage, and respect and are described in more detail on the website.

Limitations

Agile model - Pros and Cons

Annotated bibliography


1. SDLC - Agile Model

2. Manifesto for Agile Software Development

3. Agile Body of Knowledge

4. Life cycle,

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox