Agile

Agile

Agile is the ability to create and respond to change. Agile Software Development is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end. Agile Project Management is a structured and iterative approach to project management and/or product development.

Agile Manifesto

… in 2001 at Utah’s Snowbird ski resort, 17 software developers got together to discuss lightweight software development methods and produced the groundbreaking Agile Manifesto…

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

That is, while there is value in the items on the right, we value the items on the left more.

http://agilemanifesto.org/

12 Principles Behind the Agile Manifesto

  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.

What is Agile?

Agile is a methodology for project management that emphasizes flexibility, collaboration, and rapid iteration. It is based on the Agile Manifesto, a set of values and principles for software development.

What are the key principles of Agile?

The key principles of Agile include customer collaboration, responding to change, delivering working software frequently, and valuing individuals and interactions over processes and tools.

What is a Scrum?

Scrum is an Agile framework that provides a structured approach to project management. It involves working in short sprints, with regular meetings and reviews to track progress and make adjustments as needed.

What is a Sprint?

A Sprint is a timeboxed period of work, typically 1-4 weeks, during which a team works on a set of tasks or user stories. At the end of each Sprint, the team delivers a working product increment.

What is a Product Backlog?

The Product Backlog is a prioritized list of features or requirements for a project. It is maintained by the Product Owner and serves as a roadmap for the development team.

What is a Sprint Backlog?

The Sprint Backlog is a list of tasks or user stories that the development team plans to complete during the current Sprint. It is created during the Sprint Planning meeting and is updated daily during the Sprint.

What is a Sprint Review?

The Sprint Review is a meeting held at the end of each Sprint to review the progress made during the Sprint and demonstrate the working product increment to stakeholders.

What is a Sprint Retrospective?

The Sprint Retrospective is a meeting held at the end of each Sprint to reflect on the team's performance and identify areas for improvement. It involves reviewing the Sprint Backlog and discussing what went well, what didn't go well, and what could be done differently in the future. What is Continuous Integration?

Agile Alliance is a global nonprofit organization dedicated to promoting the concepts of Agile software development as outlined in the Agile Manifesto

The Disciplined Agile toolkit provides straightforward guidance to help organizations choose their way of working in a context-sensitive manner, providing a solid foundation for business agility.

SAFe for Lean Enterprises is a knowledge base of proven, integrated principles, practices, and competencies for Lean, Agile, and DevOps.

What is Agile ALM?

The basic idea behind agile development is the attempt to develop better software by reducing communication borders, and at the same time introducing shorter iterations of development and review. This enables development teams so react faster to changing conditions, may it be changes in the market or changes in the customer's mind about what the final product should be like.
codeBeamer

  • Agile Requirements Management
  • Agile Project Management
  • Agile Development
  • Agile Test Management

Agile Lifecycle Management vs Application Lifecycle Management

Agile Lifecycle Management (ALM) and Application Lifecycle Management (ALM) are two distinct approaches to managing software development projects, with some similarities and differences.

Agile Lifecycle Management refers to a set of practices and tools that support the Agile development process, from initial planning and requirements gathering to testing, deployment, and ongoing maintenance. The focus is on iterative, collaborative, and customer-centric development, with an emphasis on continuous improvement, flexibility, and adaptability. ALM typically involves the use of tools such as Agile project management software, version control systems, testing frameworks, and collaboration platforms.

Application Lifecycle Management, on the other hand, is a broader concept that encompasses the entire lifecycle of a software application, from conception to retirement. This includes not only the development phase but also requirements management, design, testing, deployment, and ongoing maintenance and support. ALM is often associated with more traditional development methodologies, such as Waterfall, which emphasize a linear, sequential approach to development and project management. ALM typically involves the use of tools such as requirements management software, project management software, version control systems, testing frameworks, and deployment automation tools.

While there are some differences between Agile Lifecycle Management and Application Lifecycle Management, they both aim to improve the efficiency, quality, and effectiveness of software development projects. Both approaches involve the use of tools and processes to manage the various stages of development, from planning and design to deployment and maintenance.

Application Lifecycle Management tends to be more structured and formal, while Agile Lifecycle Management is more flexible and adaptable to changing requirements and customer needs.

What is Hyper Agile?

Hyperagility seeks to drive an agile culture further, beyond the walls of any one product team or project, embedding it into the organisational DNA. This is hyperagility.
PMI

Agile Glossary Description
Backlog RefinementBacklog refinement is when the product owner and some, or all, of the team examine backlog items to ensure they're appropriate, prioritized, and ready for delivery.
Daily Stand-upThe daily stand-up is a brief check-in that allows the development team to share the current state of affairs and identify any roadblocks.
Definition of doneThe definition of done is an agreed-upon set of tasks needed to finish an iteration's product increment.
IterationDevelopment timebox. Most teams conduct 1-to-4-week iterations.
PlanningIteration begins with planning. Planning defines what can be accomplished in an iteration and how.
Product BacklogA product backlog is a list of the new features, changes to existing features, bug fixes, infrastructure changes, or other activities that a team may deliver to achieve a specific outcome. The product backlog is the single authoritative source for things that a team works on.
Product incrementAfter a development period or timebox, a software product increment is produced.
RetrospectiveEnd-iteration retrospectives are held. The team reflects on the iteration and identifies improvements during the retrospective.
ReviewThe review shows customers and stakeholders the team's iteration work and compares it to the initial commitment.
AgileA methodology for software development that emphasizes flexibility, collaboration, and rapid iteration.
ScrumA framework for Agile project management that emphasizes small, cross-functional teams and short, iterative development cycles.
SprintA short, time-boxed period during which a Scrum team works on a specific set of tasks and deliverables.
Product OwnerThe person responsible for defining and prioritizing the features and requirements of a product in Agile development.
Scrum MasterThe person responsible for facilitating the Scrum process and ensuring that the team is following Agile principles.
Sprint ReviewA meeting at the end of each sprint during which the team demonstrates the work that has been completed and receives feedback from stakeholders.
Sprint RetrospectiveA meeting at the end of each sprint during which the team reflects on the previous sprint and identifies areas for improvement.
BacklogA prioritized list of tasks, features, and requirements that need to be completed in order to deliver a product.
User StoryA description of a feature or requirement from the perspective of the end user.
Agile ManifestoA set of guiding values and principles for Agile software development, emphasizing individuals and interactions, working software, customer collaboration, and responding to change.
KanbanAn Agile methodology that focuses on visualizing work, limiting work in progress, and optimizing flow.
LeanAn Agile methodology that emphasizes minimizing waste and maximizing value for the customer.
Continuous IntegrationThe practice of merging code changes frequently and automatically, to ensure that the codebase is always functional.
Continuous DeliveryThe practice of delivering software changes frequently and automatically, to ensure that the software is always deployable.
RetrospectiveA meeting held at the end of a project or sprint to review what went well, what could be improved, and what actions should be taken in the future.
Burn-Down ChartA visual representation of the work remaining in a sprint or project, showing how much work has been completed and how much is left to do.
VelocityA measure of how much work a team can complete in a sprint, used to help plan future sprints.
Stand-up MeetingA daily meeting where team members discuss what they accomplished the previous day, what they plan to do today, and any obstacles they are facing.
EpicA large, high-level user story that is broken down into smaller, more manageable user stories.
Sprint PlanningA meeting where the team decides what work they will complete during the upcoming sprint, based on the priorities in the backlog.
Pair ProgrammingA practice in which two programmers work together on a single task or feature, with one person typing and the other person reviewing.
Test-Driven Development (TDD)A development approach in which automated tests are written before the code is developed, to ensure that the code meets the desired functionality.
Acceptance CriteriaA set of conditions that a product or feature must meet in order to be considered complete and acceptable to stakeholders.
Definition of Done (DoD)A shared understanding among the team of what it means for a task or feature to be considered completed, including any necessary testing, documentation, and integration.
Planning PokerA technique used in Agile project planning to estimate the effort required for a task or feature, by assigning points based on the complexity and uncertainty of the work.
Story PointsA relative measure of the effort required to complete a user story or task, used to estimate and plan work in Agile projects.
Agile CoachA person who supports and guides Agile teams, helping them to adopt Agile practices and principles and overcome any obstacles or challenges.
Minimum Viable Product (MVP)The smallest possible version of a product that still delivers value to the customer, used to test and validate assumptions and gather feedback.
Incremental DeliveryA development approach in which working software is delivered in small, frequent releases, rather than waiting for a large, monolithic release.
Retrospective Prime DirectiveA statement used in Agile retrospectives to encourage open and honest discussion, by emphasizing that everyone is doing the best they can with the resources available.
Sprint GoalA clear and concise objective for the Scrum team to work towards during a sprint, to guide their efforts and align them with the product vision.
Daily ScrumA brief, daily meeting where the Scrum team synchronizes their work and progress, and discusses any issues or obstacles.
DevOpsAn Agile approach that emphasizes collaboration and communication between development and operations teams, to improve the speed and quality of software delivery.
Product Backlog RefinementAn ongoing process of reviewing and updating the product backlog, to ensure that it remains relevant and reflects the current priorities and needs of stakeholders.
Feature Driven Development (FDD)An Agile methodology that focuses on developing features incrementally and iteratively, using a structured, step-by-step approach.
Agile ModelingA practice of using visual models and diagrams to support Agile software development, including process flow charts, data models, and user interface designs.
Definition of ReadyA shared understanding among the team of what is needed in order for a user story or task to be considered ready to work on, including clear requirements, acceptance criteria, and any necessary dependencies or resources.
Technical DebtThe accumulation of incomplete or suboptimal code or design decisions that can slow down development and impede future progress, unless addressed.
Agile EstimatingA collaborative process of estimating the time, effort, and resources required to complete a task or feature, using techniques such as planning poker or relative sizing.
Agile TransformationA process of adopting Agile principles and practices across an entire organization, to improve collaboration, communication, and the speed and quality of software delivery.
RefactoringThe process of improving the quality and maintainability of existing code, by restructuring it without changing its external behavior.
Backlog GroomingA collaborative process of reviewing and updating the product backlog, to ensure that it remains relevant, prioritized, and actionable.
Sprint ReviewA meeting held at the end of a sprint to showcase the work completed, gather feedback from stakeholders, and determine the next steps.
Sprint RetrospectiveA meeting held at the end of a sprint to reflect on the process and outcomes, identify areas for improvement, and make adjustments for the next sprint.
Story MappingA technique for visualizing and organizing user stories, features, and requirements, to help prioritize and plan development efforts.
Value Stream MappingA tool for identifying and optimizing the end-to-end process of delivering value to customers, by visualizing the flow of work and identifying areas of waste or inefficiency.
Lean StartupAn Agile approach to entrepreneurship and innovation, emphasizing rapid experimentation, customer feedback, and iterative development.
Mob ProgrammingA collaborative approach to software development, in which a team works together on a single task or feature, with everyone contributing and sharing knowledge.
Refinement MeetingA regular meeting where the team discusses and clarifies upcoming user stories or tasks, to ensure that they are ready to be worked on in the next sprint.
Scrum MasterA facilitator and coach for the Scrum team, responsible for guiding the process and removing any obstacles or impediments.
User PersonaA fictional representation of a user or customer, used to better understand their needs, goals, and behavior.
User StoryA simple, concise description of a feature or requirement, written from the perspective of the user or customer.
Definition of ReadyA shared understanding among the team of what is needed in order for a user story or task to be considered ready to work on, including clear requirements, acceptance criteria, and any necessary dependencies or resources.
Definition of DoneA shared understanding among the team of what it means for a user story or task to be considered completed, including any necessary testing, documentation, and integration.
Agile Release TrainA framework for scaling Agile practices across multiple teams and departments, by coordinating their efforts and aligning them with a common goal.
Scaling AgileA process of adapting Agile practices and principles to larger, more complex projects or organizations, to maintain agility while achieving greater efficiency and coordination.
Continuous ImprovementA core principle of Agile, emphasizing the ongoing pursuit of better processes, products, and outcomes, through reflection, experimentation, and adaptation.
Sprint BacklogA prioritized list of tasks or user stories that the Scrum team plans to work on during a sprint, based on the priorities in the product backlog.
User Acceptance Testing (UAT)A process of testing a product or feature with real users or customers, to ensure that it meets their needs and expectations.
Agile ManifestoA set of four values and twelve principles that underpin Agile development, emphasizing collaboration, flexibility, and customer value.

## ToDo ##

  • Scrum
  • Sprint
  • Product owner
  • Backlog
  • User story
  • Kanban
  • Retrospective
  • Continuous improvement
  • Cross-functional team
  • Agile manifesto
  • Agile methodology
  • Agile coach
  • Agile transformation
  • Agile framework
  • Agile development
  • Agile planning
  • Agile delivery
  • Agile testing
  • Agile culture
  • agile/agile.txt
  • Last modified: 2023/05/01 18:40
  • by Henrik Yllemo