Learn Agile Frameworks/Methodologies (CAPM) with Interactive Flashcards
Master key concepts in Agile Frameworks/Methodologies through our interactive flashcard system. Click on each card to reveal detailed explanations and enhance your understanding.
Scrum
Scrum is one of the most widely used Agile frameworks for managing complex projects. It emphasizes iterative and incremental product development, enabling teams to deliver high-value products by breaking down large tasks into manageable work segments called Sprints, which are typically two to four weeks long. Scrum is defined by several key roles, artifacts, and ceremonies.
The key roles include the Product Owner, the Scrum Master, and the Development Team. The Product Owner is responsible for maximizing the value of the product by managing the Product Backlog, which is an ordered list of everything that is known to be needed in the product. The Scrum Master serves as a facilitator for the team, ensuring that Scrum practices are followed and removing impediments to progress. The Development Team is a self-organizing group of professionals who do the work of delivering potentially shippable increments of the product at the end of each Sprint.
Scrum ceremonies include Sprint Planning, Daily Scrum, Sprint Review, and Sprint Retrospective. During Sprint Planning, the team collaborates to decide what work will be done in the upcoming Sprint. The Daily Scrum is a short, time-boxed meeting where team members synchronize their activities and create a plan for the next 24 hours. The Sprint Review is held at the end of the Sprint to inspect the increment and adapt the Product Backlog if needed. The Sprint Retrospective is an opportunity for the team to reflect on the past Sprint and identify improvements for the future.
Scrum's emphasis on transparency, inspection, and adaptation allows teams to respond quickly to change, improve communication, and deliver high-quality products more efficiently. By focusing on delivering incremental value and continuously improving processes, Scrum helps teams navigate complexity and uncertainty in today's fast-paced project environments.
Kanban
Kanban is an Agile methodology that focuses on visualizing the workflow, limiting work in progress (WIP), and optimizing efficiency. Originating from lean manufacturing processes, Kanban has been adapted for software development and other project management contexts. The central idea of Kanban is to use a visual board, often called a Kanban board, that represents the flow of tasks through different stages until completion.
The Kanban board is typically divided into columns that represent different stages of the process, such as "To Do," "Doing," and "Done." Tasks, represented as cards, move across the board as they progress. This visual representation helps teams understand the current state of work, identify bottlenecks, and collaborate more effectively. By limiting the number of tasks in each stage (WIP limits), teams can ensure that work moves smoothly through the system without overloading any particular part of the process.
Kanban promotes continuous delivery and continuous improvement without the need for time-boxed iterations. Unlike Scrum, Kanban does not prescribe roles or ceremonies. Teams can implement Kanban alongside their existing processes, making it highly flexible and adaptable. The methodology encourages teams to pull work as capacity permits rather than pushing work into the process, which enhances efficiency and responsiveness to change.
Kanban's focus on reducing waste, optimizing flow, and improving process efficiency makes it an effective approach for teams seeking to enhance their workflow management. It is particularly useful in environments where priorities change frequently, or where work arrives in an unpredictable manner. By making the process transparent and fostering a culture of continuous improvement, Kanban helps teams deliver value more consistently and respond to stakeholder needs more effectively.
Extreme Programming
Extreme Programming (XP) is an Agile software development methodology that emphasizes customer satisfaction, simplicity, and frequent delivery of functional software. XP encourages developers to take the best practices to extreme levels, hence the name. Core practices of XP include Test-Driven Development (TDD), Pair Programming, Continuous Integration, and Frequent Releases.
In XP, developers write automated unit tests before writing the actual code (TDD), ensuring that the code meets the requirements from the outset and facilitates easier maintenance. Pair Programming involves two developers working together at one workstation; one writes code while the other reviews each line of code as it is typed. This practice improves code quality and knowledge sharing within the team.
Continuous Integration is another key practice where code changes are integrated into a shared repository several times a day. This frequent integration allows for early detection of integration issues and reduces the risk of conflicts. XP also advocates for small, frequent releases, delivering value to customers quickly and incorporating their feedback into subsequent iterations.
XP stresses the importance of communication, simplicity, feedback, courage, and respect. By promoting open communication between the team and the customer, XP ensures that the development process remains aligned with customer needs. Simplicity is achieved by focusing on delivering only what is necessary, avoiding unnecessary complexity. Feedback loops, such as customer feedback and unit tests, help teams adjust their approach as needed.
By adhering to these principles and practices, XP aims to improve software quality and responsiveness to changing customer requirements. It is particularly effective in dynamic environments where requirements change rapidly, and teams need to adapt quickly.
Lean Software Development
Lean Software Development is an Agile methodology that focuses on delivering value to the customer by eliminating waste, optimizing processes, and empowering teams. Originating from Lean Manufacturing principles developed by Toyota, Lean Software Development translates these principles into the software development context to improve efficiency and quality.
The core principles of Lean Software Development include eliminating waste, amplifying learning, deciding as late as possible, delivering as fast as possible, empowering the team, building integrity in, and seeing the whole.
Eliminating waste involves identifying and removing activities that do not add value to the customer, such as unnecessary features, delays, handoffs, and defects. Amplifying learning emphasizes the importance of continuous improvement and adapting to change through feedback loops and knowledge sharing within the team.
Deciding as late as possible allows teams to keep options open and make informed decisions based on the most recent data, reducing the risk of rework. Delivering as fast as possible means shortening the development cycle to provide value to the customer quickly, which also helps in receiving early feedback.
Empowering the team involves giving team members autonomy and responsibility, fostering a collaborative environment where everyone contributes to decision-making. Building integrity in ensures that the system's design and functionality meet the customer's needs, emphasizing quality throughout the development process rather than relying solely on end-stage testing.
Seeing the whole encourages teams to understand the entire process and system rather than focusing on individual components, promoting holistic optimization over sub-optimization.
Lean Software Development is particularly effective in environments where requirements are not fully known upfront and can change frequently. It helps organizations respond quickly to customer needs and market changes while minimizing waste and maximizing value delivery.
By adopting Lean principles, project managers can improve team efficiency, reduce costs, and deliver higher-quality software. It promotes a culture of continuous improvement, where teams consistently seek ways to refine processes, enhance collaboration, and deliver better outcomes for stakeholders.
Crystal Methodology
Crystal Methodology is a family of Agile software development methodologies that emphasize people and their interactions over processes and artifacts. Developed by Alistair Cockburn, Crystal recognizes that every project may require a slightly different set of policies, practices, and processes, tailored to the specific characteristics of the project and the team.
The Crystal family includes methods like Crystal Clear, Crystal Yellow, Crystal Orange, etc., each suited to projects of different sizes and criticality levels. For instance, Crystal Clear is designed for small teams of up to eight people working on non-critical applications, while Crystal Orange is suitable for larger teams.
Key principles of Crystal Methodology include frequent delivery of working software, reflective improvement, osmotic communication, personal safety, focus, easy access to expert users, and a technical environment with automated tests, configuration management, and frequent integration.
Osmotic communication refers to the flow of information within a co-located team, where team members absorb information by being in close proximity. This setup enhances collaboration and speed of information sharing.
Reflective improvement encourages teams to regularly reflect on their processes and adapt them as necessary. Personal safety ensures that team members feel comfortable sharing ideas and concerns without fear of reprisal.
Crystal Methodology is flexible and light on documentation, believing that overly rigid processes can stifle a team's ability to produce valuable software. It advocates for minimal processes that are just enough to ensure project success.
For project managers, Crystal emphasizes the importance of understanding the unique aspects of their project and tailoring their approach accordingly. It underlines that the skills and talents of the team are the most critical factors in project success, more so than the processes they use.
By focusing on people and their interactions, Crystal Methodology aims to create a productive and enjoyable working environment, leading to higher morale, better team cohesion, and ultimately, successful software delivery.
Feature-Driven Development
Feature-Driven Development (FDD) is an Agile methodology that focuses on delivering tangible, working software repeatedly and frequently through a feature-centric approach. Developed by Jeff De Luca in the late 1990s, FDD combines industry best practices into a cohesive whole, tailored to large-scale projects with complex domains.
The main goal of FDD is to design and build software features every two weeks. A "feature" in FDD is a small, client-valued function that can be implemented in no more than two weeks. This time-boxing ensures that progress is measurable and that client feedback can be incorporated promptly.
FDD follows a five-step process:
1. **Develop an overall model**: Understand the domain and create high-level models to guide development.
2. **Build a features list**: Break down the system functionality into a list of features.
3. **Plan by feature**: Organize the development plan based on feature implementation priorities.
4. **Design by feature**: For each feature, perform detailed design activities.
5. **Build by feature**: Implement, test, and integrate the feature into the system.
Key practices in FDD include domain object modeling, developing by feature, component/class ownership, inspections, configuration management, regular builds, and visibility of progress and results.
Class ownership assigns responsibility for classes to specific developers, fostering accountability and expertise in particular areas of the system. Regular builds and inspections ensure that integration issues are identified early and that code quality remains high.
For project managers, FDD provides clear tracking and reporting mechanisms, as the feature list serves as a tangible measure of progress. It supports scalability, making it suitable for large teams and complex projects.
FDD emphasizes collaboration, but with a stronger focus on individual code ownership compared to other Agile methodologies. It balances the need for structure in large projects with the flexibility of Agile practices.
By focusing on delivering features that provide real value to the client, FDD helps ensure that development efforts are aligned with business objectives, leading to successful project outcomes.
Dynamic Systems Development Method (DSDM)
The Dynamic Systems Development Method (DSDM) is an Agile project delivery framework that focuses on delivering business value and ensuring timely delivery of software projects. Originating in the 1990s, DSDM was one of the first Agile methodologies, providing a comprehensive approach that covers the entire project lifecycle. It is characterized by its strong emphasis on governance and control while still promoting flexibility and iterative developmentDSDM operates on eight core principles:1. **Focus on the business need**: Projects must be aligned with clear business objectives to ensure that the delivered solution provides real value 2. **Deliver on time**: Timeboxing is essential in DSDM, where work is divided into fixed periods to promote timely delivery 3. **Collaborate**: Active user involvement and effective collaboration among stakeholders are crucial for project success 4. **Never compromise quality**: Quality criteria are agreed upon at the outset, and all work must meet these predefined standards 5. **Build incrementally from firm foundations**: The project is developed in increments, allowing for early delivery of usable components and feedback incorporation 6. **Develop iteratively**: Continuous refinement through iterative development acknowledges that all requirements may not be known at the start 7. **Communicate continuously and clearly**: Open and frequent communication minimizes misunderstandings and keeps the project aligned 8. **Demonstrate control**: Regular reviews and assessments ensure that the project remains on track and any issues are promptly addressedDSDM integrates best practices from both Agile and traditional project management. It uses techniques like the MoSCoW prioritization (Must have, Should have, Could have, Won't have) to manage requirements and emphasizes the importance of facilitated workshops, modeling, and prototypingBy balancing flexibility with a structured framework, DSDM helps organizations manage risks and adapt to changes without losing sight of project goals. It is particularly well-suited for projects with tight schedules and budgets, where delivering the most critical features on time is paramount. DSDM's holistic approach makes it applicable beyond software development, extending its benefits to various types of business projects seeking an Agile methodology with robust governance.
Scaled Agile Framework (SAFe)
The Scaled Agile Framework (SAFe) is a set of organizational and workflow patterns intended to guide enterprises in scaling lean and Agile practices. SAFe is designed to help businesses deliver value on a regular and predictable schedule, improve product quality, and increase employee engagement. It provides a structured approach that combines the flexibility and iterative progress of Agile with the need for larger organizations to have planning, coordination, and management at scaleKey components of SAFe include:1. **Lean-Agile Principles**: SAFe is grounded in ten foundational principles that blend Agile development, systems thinking, and Lean product development, emphasizing concepts like flow, decentralization, and continuous improvement2. **Four Configurations**: SAFe offers four configurations—Essential SAFe, Large Solution SAFe, Portfolio SAFe, and Full SAFe—to cater to different organizational sizes and complexities3. **Agile Release Train (ART)**: A long-lived team of Agile teams (typically 5–12 teams) that plan, commit, and execute together. ART synchronizes alignment, collaboration, and delivery for multiple teams4. **Program Increment (PI)**: A timebox (usually 8–12 weeks) during which an ART delivers incremental value in the form of working, tested software and systems5. **Roles and Responsibilities**: SAFe defines roles at the team, program, and portfolio levels, including Release Train Engineer, Product Owner, Scrum Master, and System Architect, to ensure clarity and accountability6. **Cadence and Synchronization**: Regular synchronization points to ensure that teams remain aligned, including PI Planning events, daily stand-ups, and system demos7. **Built-In Quality and DevOps**: Emphasizes practices that ensure quality is embedded throughout the development process, along with a Continuous Delivery Pipeline to support rapid and reliable releasesSAFe addresses common challenges faced by large organizations adopting Agile, such as coordinating work across multiple teams, aligning development with organizational strategy, and managing dependencies. By providing a scalable framework, SAFe enables organizations to leverage the benefits of Agile methodologies while maintaining the necessary structure to meet strategic objectivesImplementing SAFe requires a cultural shift towards Lean-Agile thinking and often necessitates training and coaching. However, organizations that successfully adopt SAFe can achieve improved time-to-market, higher quality products, and better alignment between business and IT, ultimately delivering greater value to customers and stakeholders.
Adaptive Software Development (ASD)
Adaptive Software Development (ASD) is an Agile methodology that focuses on continuous learning and adaptation throughout the software development lifecycle. Introduced by Jim Highsmith in the mid-1990s, ASD emerged as a response to the rapidly changing requirements and the need for more flexible approaches than traditional, plan-driven methodsASD is characterized by its dynamic, change-tolerant nature and is built around a three-phase cycle:1. **Speculate**: Recognizing that initial project plans are based on incomplete information, the Speculate phase involves setting objectives and creating adaptive plans that are expected to evolve. It promotes exploratory thinking and encourages teams to make informed guesses (speculations) about the project's direction2. **Collaborate**: Collaboration is at the heart of ASD. This phase emphasizes self-organizing teams working closely with stakeholders, facilitating open communication, and leveraging diverse skills and perspectives to solve problems. The collaborative environment enables rapid decision-making and fosters innovation3. **Learn**: ASD treats every iteration as an opportunity to learn and improve. The Learn phase involves reflecting on outcomes, gathering feedback, and incorporating new knowledge into the next cycle. This continuous learning loop allows the team to adapt to changes and refine the product incrementallyKey principles of ASD include:- **Mission-Driven Planning**: Focusing on the overarching goals and vision rather than rigid plans- **Feature-Based Development**: Delivering functional features in short iterations, allowing for frequent reassessment of priorities- **Timeboxing**: Setting fixed time periods for tasks or iterations to maintain momentum and ensure regular delivery- **Risk Management**: Proactively identifying and addressing risks through iterative development and constant feedback- **Adaptive Leadership**: Leaders facilitate collaboration and empower teams rather than directing every actionASD is well-suited for projects where requirements are uncertain or likely to change. It accepts that change is inevitable and provides mechanisms to adapt effectively. By encouraging experimentation and embracing change, ASD enables teams to deliver value even in turbulent environmentsThe methodology's emphasis on learning and adaptation makes it particularly valuable for complex, high-risk projects. It fosters a culture of continuous improvement, where failures are viewed as learning opportunities. This mindset helps organizations become more resilient and responsive to changing market demands and technological advancements.
Go Premium
Certified Associate in Project Management Preparation Package (2024)
- Earn 15 PDUs needed for your CAPM certification
- 8521 Superior-grade Certified Associate in Project Management practice questions.
- Accelerated Mastery: Deep dive into critical topics to fast-track your mastery.
- Unlock Effortless CAPM preparation: 5 full exams.
- 100% Satisfaction Guaranteed: Full refund with no questions if unsatisfied.
- Bonus: If you upgrade now you get upgraded access to all courses
- Risk-Free Decision: Start with a 7-day free trial - get premium features at no cost!