agile:agile

Differences

This shows you the differences between two versions of the page.


Previous revision
agile:agile [2023/05/01 18:40] (current) – [Software Development Process History] Henrik Yllemo
Line 1: Line 1:
 +<ifauth @admin>
 +[[{}new|Create new Agile Glossary]]
 +</ifauth>
 +====== Agile ======
 +
 +<callout type="primary"  title="Agile">
 +Agile is the ability to create and respond to change. Agile [[dev:dev|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:project|Project Management]] is a structured and iterative approach to project management and/or product development.
 +
 +
 +{{ :agile:almbok.com_agile.mp4 |}}
 +
 +</callout>
 +
 +
 +
 +
 +
 +
 +
 +<panel type="primary" title="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:
 +<alert type="primary">**Individuals and interactions** over processes and tools</alert>
 +<alert type="primary">**Working software** over comprehensive documentation</alert>
 +<alert type="primary">**Customer collaboration** over contract negotiation</alert>
 +<alert type="primary">**Responding to change** over following a plan</alert>
 +
 +That is, while there is value in the items on the right, we value the items on the left more.
 +
 +--- http://agilemanifesto.org/
 +</panel>
 +
 +<panel type="primary" title="12 Principles Behind the Agile Manifesto" >
 +  - Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 
 +  - Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 
 +  - Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 
 +  - Business people and developers must work together daily throughout the project. 
 +  - Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 
 +  - The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 
 +  - Working software is the primary measure of progress. 
 +  - Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 
 +  - Continuous attention to technical excellence and good design enhances agility. 
 +  - Simplicity--the art of maximizing the amount of work not done--is essential. 
 +  - The best architectures, requirements, and designs emerge from self-organizing teams. 
 +  - At regular intervals, the team reflects on how to become more effective, then tunes and adjusts  its behavior accordingly. 
 +
 +
 +</panel>
 +
 +
 +<accordion>
 +<panel type='' title='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.
 +</panel><panel type='' title='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.
 +</panel><panel type='' title='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.
 +</panel><panel type='' title='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.
 +</panel><panel type='' title='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.
 +</panel><panel type='' title='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.
 +</panel><panel type='' title='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.
 +</panel><panel type='' title='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?
 +</panel></accordion>
 +
 +
 +
 +<callout type="primary" title="" icon="fa fa-rss">
 +
 +<btn type="primary"  icon="fa fa-rss">[[ Agile RSS Feeds]]</btn>
 +
 +</callout>
 +
 +
 +
 +  * Business Agility
 +    * [[gov:business_agility|Business Agility]]
 +  * Organizational Agility
 +    * [[devops:devops|DevOps]]
 +    * [[method:lean_software_development|Lean]]
 +    * [[method:safe|SAFe]]
 +  * Agile software development
 +    * [[method:scrum|Scrum]]
 +    * [[method:kanban|Kanban]]
 +  * Agile Enterprise Architecture (AEA)
 +    * [[kb:itabok]]
 +    * [[architecture:agile]]
 +  * Agile Lifecycle Management (ALM) vs Application Lifecycle Management (ALM)
 +===== Agile Alliance =====
 +Agile Alliance is a global nonprofit organization dedicated to promoting the concepts of Agile software development as outlined in the Agile Manifesto
 +  * [[Agile Alliance]]
 +
 +
 +===== Disciplined Agile   =====
 +
 +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.
 +
 +  * [[:agile:da:da|Disciplined Agile]]
 +
 +
 +===== SAFe =====
 +SAFe for Lean Enterprises is a knowledge base of proven, integrated principles, practices, and competencies for Lean, Agile, and DevOps.
 +
 +  * [[agile:safe:safe]]
 +
 +===== Agile Lifecycle Management ===== 
 +  * Agile Lifecycle Management (ALM) vs Application Lifecycle Management (ALM)
 +  * https://www.perforce.com/blog/alm/what-agile-alm
 +  * https://codebeamer.com/cb/wiki/199592
 +
 +<callout type="primary" title="What is Agile ALM?" icon="fa fa-quote-right">
 +
 +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. 
 +\\
 + --- [[https://codebeamer.com/cb/wiki/199592|codeBeamer]]
 +\\
 +\\
 +
 +</callout>
 + 
 +  * Agile Requirements Management
 +  * Agile Project Management
 +  * Agile Development
 +  * Agile Test Management
 +
 +
 +<panel type='primary' title='Agile Lifecycle Management vs Application Lifecycle Management' icon='fa fa-globe' >
 +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.
 +</panel>
 +
 +===== Hyper Agile =====
 +<callout type="primary" title="What is Hyper Agile?" icon="fa fa-quote-right">
 +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.
 +\\
 + --- [[https://www.pmi.org/learning/library/agile-hyperagile-destination-journey-10182|PMI]]
 +\\
 +\\
 +
 +
 +</callout>
 +
 + 
 +
 +
 +===== Agile Glossary (Ceremonies and Rituals) =====
 +
 +
 +
 +<table ?p "Agile Glossary" ?c "Description">
 +?p is a: agile
 +?p Description: ?c
 +</table>
 +
 +
 +
 +^Agile|A methodology for software development that emphasizes flexibility, collaboration, and rapid iteration.|
 +^Scrum|A framework for Agile project management that emphasizes small, cross-functional teams and short, iterative development cycles.|
 +^Sprint|A short, time-boxed period during which a Scrum team works on a specific set of tasks and deliverables.|
 +^Product Owner|The person responsible for defining and prioritizing the features and requirements of a product in Agile development.|
 +^Scrum Master|The person responsible for facilitating the Scrum process and ensuring that the team is following Agile principles.|
 +^Sprint Review|A meeting at the end of each sprint during which the team demonstrates the work that has been completed and receives feedback from stakeholders.|
 +^Sprint Retrospective|A meeting at the end of each sprint during which the team reflects on the previous sprint and identifies areas for improvement.|
 +^Backlog|A prioritized list of tasks, features, and requirements that need to be completed in order to deliver a product.|
 +^User Story|A description of a feature or requirement from the perspective of the end user.|
 +^Agile Manifesto|A set of guiding values and principles for Agile software development, emphasizing individuals and interactions, working software, customer collaboration, and responding to change.|
 +^Kanban|An Agile methodology that focuses on visualizing work, limiting work in progress, and optimizing flow.|
 +^Lean|An Agile methodology that emphasizes minimizing waste and maximizing value for the customer.|
 +^Continuous Integration|The practice of merging code changes frequently and automatically, to ensure that the codebase is always functional.|
 +^Continuous Delivery|The practice of delivering software changes frequently and automatically, to ensure that the software is always deployable.|
 +^Retrospective|A 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 Chart|A 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.|
 +^Velocity|A measure of how much work a team can complete in a sprint, used to help plan future sprints.|
 +^Stand-up Meeting|A daily meeting where team members discuss what they accomplished the previous day, what they plan to do today, and any obstacles they are facing.|
 +^Epic|A large, high-level user story that is broken down into smaller, more manageable user stories.|
 +^Sprint Planning|A meeting where the team decides what work they will complete during the upcoming sprint, based on the priorities in the backlog.|
 +^Pair Programming|A 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 Criteria|A 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 Poker|A 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 Points|A relative measure of the effort required to complete a user story or task, used to estimate and plan work in Agile projects.|
 +^Agile Coach|A 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 Delivery|A development approach in which working software is delivered in small, frequent releases, rather than waiting for a large, monolithic release.|
 +^Retrospective Prime Directive|A 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 Goal|A 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 Scrum|A brief, daily meeting where the Scrum team synchronizes their work and progress, and discusses any issues or obstacles.|
 +^DevOps|An Agile approach that emphasizes collaboration and communication between development and operations teams, to improve the speed and quality of software delivery.|
 +^Product Backlog Refinement|An 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 Modeling|A practice of using visual models and diagrams to support Agile software development, including process flow charts, data models, and user interface designs.|
 +^Definition of Ready|A 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 Debt|The accumulation of incomplete or suboptimal code or design decisions that can slow down development and impede future progress, unless addressed.|
 +^Agile Estimating|A 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 Transformation|A process of adopting Agile principles and practices across an entire organization, to improve collaboration, communication, and the speed and quality of software delivery.|
 +^Refactoring|The process of improving the quality and maintainability of existing code, by restructuring it without changing its external behavior.|
 +^Backlog Grooming|A collaborative process of reviewing and updating the product backlog, to ensure that it remains relevant, prioritized, and actionable.|
 +^Sprint Review|A meeting held at the end of a sprint to showcase the work completed, gather feedback from stakeholders, and determine the next steps.|
 +^Sprint Retrospective|A 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 Mapping|A technique for visualizing and organizing user stories, features, and requirements, to help prioritize and plan development efforts.|
 +^Value Stream Mapping|A 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 Startup|An Agile approach to entrepreneurship and innovation, emphasizing rapid experimentation, customer feedback, and iterative development.|
 +^Mob Programming|A collaborative approach to software development, in which a team works together on a single task or feature, with everyone contributing and sharing knowledge.|
 +^Refinement Meeting|A 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 Master|A facilitator and coach for the Scrum team, responsible for guiding the process and removing any obstacles or impediments.|
 +^User Persona|A fictional representation of a user or customer, used to better understand their needs, goals, and behavior.|
 +^User Story|A simple, concise description of a feature or requirement, written from the perspective of the user or customer.|
 +^Definition of Ready|A 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 Done|A 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 Train|A framework for scaling Agile practices across multiple teams and departments, by coordinating their efforts and aligning them with a common goal.|
 +^Scaling Agile|A process of adapting Agile practices and principles to larger, more complex projects or organizations, to maintain agility while achieving greater efficiency and coordination.|
 +^Continuous Improvement|A core principle of Agile, emphasizing the ongoing pursuit of better processes, products, and outcomes, through reflection, experimentation, and adaptation.|
 +^Sprint Backlog|A 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 Manifesto|A set of four values and twelve principles that underpin Agile development, emphasizing collaboration, flexibility, and customer value.|
 +
 +===== Software Development Process History =====
 +  * [[kb:software_development_process_history|Software Development Process History]]
 +
 +
 +
 +<callout type="primary" title="Related:">
 +{{topic>agile}}
 +</callout>
 +
 +<callout title="External links:">
 +  * https://www.agilekb.com/
 +  * https://en.wikipedia.org/wiki/Agile_software_development
 +  * https://www.atlassian.com/agile (Atlassian Agile Coach)
 +  * https://agilityhealthradar.com/radars/
 +  * https://www.agilebusiness.org/
 +  * https://www.cprime.com/resources/what-is-agile-what-is-scrum/
 +</callout> 
 +{{tag>agile skill overview dx devx}}
 +=== ## ToDo ## ===
 +  * FIXME - [[:about|Support Us...]] ->
 +  * 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