Class Notes - The Agile Practice of Continuously Identifying Problems, Impediments, and Risks
Dr. Darnell’s Class Notes
Amberton University
MGT6525 Agile Value Delivery
Summer (2023). Week 7:
Competency: The Agile practice of continuous identification of problems, impediments, and risks.
Introduction
The Agile practice of continuously identifying problems, impediments, and risks is a cornerstone of its iterative, responsive nature. This approach enables teams to pivot quickly, improve constantly, and ensure that projects do not derail.
Since its conception, agile project management and its affiliated practices have transformed the landscape of software development and other fields. The Agile Manifesto, formulated in 2001, emphasizes values like individuals and interactions, customer collaboration, and the ability to respond to change (Beck et al., 2001). An essential aspect of implementing this approach is continuously identifying problems, impediments, and risks. This practice is integral to Agile's iterative, adaptive nature, supporting its responsiveness to change and fostering an environment of ongoing improvement.
In traditional project management, problems and risks are typically identified and addressed during particular stages, often leading to the issues becoming substantial before they are dealt with. Agile practices, in contrast, allow for the ongoing detection and resolution of such issues, enabling teams to pivot quickly and mitigate the risk of project derailment. This continual improvement involves daily standup meetings, retrospectives, explicit risk management, visual management, and continuous integration.
While not all frameworks explicitly mention "continuous identification of problems, impediments, and risks,” the concept is implicit in Agile's nature and is present in various ways in different practices:
Remember, the ultimate goal of Agile is to deliver working software quickly and respond to changes efficiently. The continuous identification and resolution of problems, impediments, and risks is crucial to achieving this goal.
Further Elaboration
The following explores the Agile practices noted above, which contribute to an effective system of identifying and addressing problems, impediments, and risks. We'll discuss how these practices foster transparency, encourage problem-solving, and help create self-organizing teams that adapt to change and consistently deliver value to the customer.
Daily Scrum / Standup /Team Sync
In Scrum, a popular Agile framework, Daily Scrum meetings are essential to the process. The Daily Scrum, also known as the daily stand-up or team sync, is a 15-minute event for the Developers of the Scrum Team. It's designed to be held at the same location and time daily to reduce scheduling complexity (Schwaber & Sutherland, 2020).
According to the Scrum Guide, during the meeting, the Developers plan work for the next 24 hours. This optimizes team collaboration and efficiency and helps meet the Sprint Goal. The Developers can select whatever structure and techniques they want for the Daily Scrum as long as it focuses on progress toward the Sprint Goal (Schwaber & Sutherland, 2020).
While it's common for the Developers to discuss what work was done yesterday, what work will be done today, and what obstacles impede progress, this format is not mandated in the 2020 Scrum Guide. The objective is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary, adjusting the upcoming planned work.
The Daily Scrum is a key inspect and adapt event crucial to promoting transparency and quick problem-solving. It allows the Developers to inspect their work, synchronize their activities, and create a plan for the next 24 hours, addressing any issues hindering their progress.
The Scrum Master, while not a mandatory participant, can attend this meeting and ensures that the Developers are conducting the Daily Scrum but does not interfere with their ownership of the event. They can also help by facilitating the meeting if requested or needed and ensuring that it remains within its time box and focuses on the appropriate topics.
Through this practice, the Scrum framework promotes a culture of collaboration, accountability, and continuous planning to increase the likelihood of achieving the Sprint Goal.
Retrospectives (Scrum, Extreme Programming, and others):
At the end of each sprint or iteration, the team holds a retrospective to reflect on what went well and what didn't. They then make plans to improve their processes for the next iteration. This regular reflection helps the team continuously identify and address problems.
In many Agile methodologies, such as Scrum and Extreme Programming (XP), retrospectives are an essential practice. The Scrum Master or team coach typically facilitates them, but everyone from the team is encouraged to participate openly and honestly (Schwaber & Sutherland, 2020).
Retrospectives serve as a dedicated time for teams to reflect on their work with the objective of continuous improvement. These meetings involve reflecting on what went well and what could be improved and then developing action plans to improve the next iteration (Derby & Larsen, 2006).
The purpose of retrospectives includes:
Teams often use structured formats to conduct effective retrospectives that encourage complete and constructive feedback. Typical stages of a retrospective include setting the stage, gathering data, generating insights, deciding what to do, and closing the retrospective.
Agile teams foster a culture of transparency, inspection, and adaptation through this practice, allowing them to identify and address problems, risks, and inefficiencies continuously.
By providing a dedicated space and time for reflection and discussion, retrospectives create a mechanism for continuous problems, impediments, and risk identification. This aligns with the Agile principle: "At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly" (Beck et al., 2001), helping teams improve their processes, stay adaptable, and manage potential risks effectively.
However, retrospectives do more than identify problems, impediments, and risks; they also foster problem-solving and continuous improvement. Once the issues are identified, teams collaboratively decide on actions to address them in the upcoming sprint. By assigning ownership and tracking these actions, teams ensure that they actively work towards mitigating identified problems and risks, thereby enhancing their effectiveness and agility over time.
Agile Risk Management
Risk management in Agile methodologies is an ongoing process that involves identifying, categorizing, prioritizing, and mitigating potential project threats. By continuously managing risk, Agile teams can proactively address issues that could negatively impact the project's progress or success.
Different Agile frameworks handle risk management in varying ways. For example, Crystal, a family of Agile methodologies developed by Alistair Cockburn, incorporates a "risk list" as a key artifact. The risk list is a living document that records identified risks, their severity, and mitigation strategies. It serves as a visual and accessible reminder for the team to continually consider and address project risks throughout each iteration (Cockburn, 2004).
In Scrum, one of the most popular Agile frameworks, risk management tasks are divided among different roles. The Product Owner is primarily responsible for managing external risks. These could include changes in market demands, customer needs, company strategy, or technology that could impact the product. The Product Owner needs to communicate these risks to the team and stakeholders and adjust the product backlog accordingly to mitigate potential impacts.
On the other hand, the Scrum Master helps the team deal with internal risks and impediments. These could be team-related issues like conflicts, skill gaps, productivity blocks, or project-related like technical debt, architecture problems, or tooling issues. The Scrum Master's role is to facilitate the removal of these obstacles, keeping the team's progress toward the Sprint Goal as smooth as possible (Schwaber & Sutherland, 2020).
In the Scaled Agile Framework (SAFe), risk management is explicitly addressed through the use of a Risk Management Cycle and Risk Backlog. During Program Increment (PI) planning sessions, teams identify risks and create a management plan. These risks are then documented and managed via the Risk Backlog (Scaled Agile, Inc., 2021). Additionally, a structured risk management cycle is part of each PI. This involves:
Risks are categorized as one of three types in SAFe: business, technical, or compliance. This helps teams design an appropriate mitigation strategy (Scaled Agile, Inc., 2021).
Large Scale Scrum (LeSS): does not have specific guidelines for risk management; however, it adopts and scales essential Scrum elements and practices that inherently address risks.
In LeSS, managing risks involves maximizing transparency, improving product definition, reducing cycle time, and focusing on customer value. By having cross-functional teams and promoting continuous integration and delivery, many risks related to dependencies, integration, and delivery delays are naturally mitigated (Larman & Vodde, 2016).
By following Scrum's empirical process control theory (transparency, inspection, adaptation), LeSS encourages teams to continuously identify, inspect, and adapt to risks throughout the product development process.
Disciplined Agile Delivery (DAD) is a hybrid Agile approach to enterprise IT solution delivery. It has all the elements of Scrum, Agile Modeling, Lean software development, and Extreme programming. DAD is a part of the Disciplined Agile (DA) toolkit, which provides a more flexible approach to the workflow and extends its Agile and Lean strategies to provide a robust, end-to-end streamlined delivery process.
In terms of risk management, DAD provides explicit and robust guidance. Like other Agile methodologies, risk management is ongoing throughout the project's lifecycle. The DAD framework encourages proactive risk mitigation through active stakeholder participation, early and frequent feedback, prioritized requirements, and iterative development (Ambler & Lines, 2012).
In DAD, risk management is made explicit through various practices such as:
This systematic approach to risk management in DAD allows teams to identify potential issues early, react efficiently, and minimize the overall impact of the risks on the project outcome.
It's important to note that Agile risk management is an ongoing process, not a one-time event. Risks are continuously identified, assessed, and prioritized throughout the project lifecycle. Then, proactive steps are taken to mitigate the most significant risks. This constant loop of identifying and addressing risks aligns with the Agile core principle of embracing change and maintaining flexibility.
Continuous Risk Management in Agile
Agile methodologies, at their core, are centered around adaptability and continuous improvement. Risk management in Agile reflects these principles, positioning itself as an ongoing process rather than a one-off activity. The dimensions of continuous risk management are listed below:
By adhering to this ongoing process of identifying, assessing, prioritizing, and mitigating risks, Agile teams can avoid potential problems, handle them before they become critical, and remain flexible in the face of change. This iterative approach aligns perfectly with Agile's flexibility, adaptability, and continuous improvement principles, fostering a proactive and responsive project environment.
Visual Management in Kanban
Visual management is a critical component of the Kanban methodology, originating from the Japanese Toyota Production System. Kanban is focused on creating visual workflows that allow teams to manage their work more efficiently. This is typically done through a Kanban board, a visual tool that depicts work at various stages of the process (Anderson, 2010).
The Kanban board is divided into different columns, each representing a different stage in the workflow. Each task or work item is represented as a card that moves from one column to the next as it progresses through the stages. This makes the workflow transparent and gives everyone a clear and real-time overview of the status of the work.
In the context of continuous identification of problems, impediments, and risks, Kanban offers several benefits:
In essence, the Kanban board is a powerful tool for visual management, providing immediate insight into the status and health of the workflow. It aids in the continuous identification and resolution of problems, impediments, and risks, fostering a culture of transparency, communication, and continuous improvement.
Inspect and Adapt:
Inspect and Adapt is where the team and stakeholders regularly inspect the product being developed and how well the team is working, intending to identify potential issues and make improvements.
Inspect and Adapt is a core principle in Agile frameworks such as Scrum and the Scaled Agile Framework (SAFe). It encapsulates the idea that teams should regularly evaluate their product and processes and make necessary adjustments to optimize quality and productivity. This iterative approach allows teams to respond to change effectively and continuously improve over time (Schwaber & Sutherland, 2020; Scaled Agile, Inc., 2021). The dimensions of an Inspect and Adapt philosophy are described below:
The Continuous Loop of Inspection and Adaptation in Agile Methodologies
The "Inspect and Adapt" principle in Agile methodologies forms a continuous feedback loop that enables teams to maintain high product quality, efficiency, and responsiveness to change. This principle is deeply ingrained in Agile practices such as Scrum and the Scaled Agile Framework (SAFe), reinforcing Agile development's iterative and incremental nature (Schwaber & Sutherland, 2020; Scaled Agile, Inc., 2021).
Regular and frequent inspection provides visibility into the product's development status and the team's working methods. This transparency allows for the early identification of problems, bottlenecks, or risks and opportunities for improvement. Product inspection ensures that the output aligns with customer requirements and expectations. It also quickly uncovers any deviations or quality issues, allowing for timely corrective actions.
Meanwhile, process inspection evaluates the effectiveness and efficiency of the team's practices and interactions. By reflecting on their work, the team can identify strengths to leverage and weaknesses to address. They can spot friction, redundancy, or miscommunication and figure out how to enhance their working methods.
Adaptation is the responsive action taken after inspection. It involves adjusting the course based on the insights gained from the inspection. For the product, this might mean refining features, reprioritizing the backlog, or making design changes to better meet customer needs. For the team, adaptation could involve revising workflows, improving communication channels, or adopting new tools or techniques to increase productivity and collaboration.
This continuous loop of inspection and adaptation ensures that Agile teams remain nimble and effective. They can adapt their product and processes according to evolving customer needs, business contexts, or technological advancements while also fostering a culture of continuous learning and improvement.
The "Inspect and Adapt" principle embodies the Agile commitment to delivering value and embracing change. By integrating this principle into their routines, Agile teams ensure they're always moving towards optimal performance and product excellence. The Inspect and Adapt principle promotes transparency, adaptation, and continuous improvement in Agile teams, fostering an open learning environment, flexible to changes, and focused on delivering high-quality products that meet customer needs.
Continuous Integration (Extreme Programming): By integrating and testing code several times a day, teams can identify and fix problems as soon as they occur rather than letting them build up into more significant issues.
Continuous Integration (CI) is a software development practice that originated from Extreme Programming (XP), though it is now widely adopted across various Agile methodologies. It involves integrating work frequently, usually multiple times daily, to detect and resolve integration issues as early as possible (Beck, 2000; Fowler, 2006).
Here's how continuous integration aids in the continuous identification of problems, impediments, and risks:
Continuous Integration, therefore, plays a significant role in Agile practices, particularly in the continuous identification and resolution of software development problems. By integrating and testing frequently, Agile teams can maintain a high-quality, reliable codebase and effectively manage risks associated with integration.
DevOps and Continuous Problem Identification
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) with the goal of shortening the system development lifecycle and providing continuous delivery with high software quality. DevOps can be seen as an extension of Agile methodologies that focuses on the end-to-end software delivery pipeline.
In the context of continuous problem identification, DevOps introduces several practices and principles:
By integrating these practices, DevOps enables continuous identification and resolution of problems, enhancing software quality, reliability, and security. It promotes a culture of collaboration, learning, and continuous improvement that aligns well with the Agile principles.
Summary
We've explored the Agile practice of continuous identification of problems, impediments, and risks. This is central to Agile methodologies as it supports adaptability, flexibility, and continuous improvement principles.
Several Agile practices facilitate continuous problem identification:
Daily Scrum: Daily standup meetings allow team members to share their progress and discuss any issues or impediments, promoting transparency and immediate problem-solving.
Retrospectives: Agile teams hold retrospectives at the end of each sprint or iteration to reflect on their performance and identify areas for improvement. This helps them continuously address issues and refine their working processes.
Agile Risk Management: Risk management in Agile methodologies is an ongoing process that involves identifying, categorizing, prioritizing, and mitigating potential project threats. Continuous Risk Management in Agile: Agile teams can proactively address issues that could negatively impact the project's progress or success by continuously managing risk.
Visual Management (Kanban): Kanban teams use visual boards to manage their work. This visualization aids in quickly spotting bottlenecks, blocked tasks, and other problems.
Inspect and Adapt: Core to Scrum and SAFe, this principle involves the regular examination of the product and the team's performance to identify potential issues, followed by changes to improve. This embodies the continuous improvement philosophy of Agile.
Continuous Integration (Extreme Programming): By integrating and testing code several times daily, teams can promptly detect and fix problems, preventing them from becoming more significant issues.
DevOps and Continuous Problem Identification: DevOps can be seen as an extension of Agile methodologies that focuses on the end-to-end software delivery pipeline. DevOps enables continuous identification and resolution of problems, enhancing software quality, reliability, and security.
Agile frameworks like Crystal maintain a "risk list," while Scrum assigns the task of managing risks to the Product Owner and Scrum Master. The DAD and SAFe methodologies scale Agile principles for larger teams and projects, offering advanced risk management practices.
We also touched on DevOps, a set of practices that bridge software development and IT operations for continuously delivering high-quality software. DevOps integrates continuous integration and delivery, infrastructure as code, real-time monitoring, blameless post-mortems, and integrated security practices to identify and mitigate issues continuously.
The Agile practice of continuously identifying problems, impediments, and risks is pivotal in maintaining high product quality, promoting a culture of learning and improvement, and ensuring responsiveness to change.
References
Ambler, S., & Lines, M. (2012). Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise. IBM Press.
Anderson, D. J. (2010). Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press.
Beck, K. (2000). Extreme Programming Explained: Embrace Change. Addison-Wesley.
Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., ... & Kern, J. (2001). Manifesto for Agile Software Development. Agile Alliance.
Cockburn, A. (2004). Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley.
Derby, E., & Larsen, D. (2006). Agile retrospectives: making good teams great. Pragmatic Bookshelf.
Fowler, M. (2006). Continuous Integration. MartinFowler.com. Retrieved from https://martinfowler.com/articles/continuousIntegration.html
Kim, G., Debois, P., Willis, J., & Humble, J. (2016). The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. IT Revolution.
Puppet Labs. (2015). 2015 State of DevOps Report. Puppet Labs. Retrieved from https://puppet.com/resources/white-paper/2015-state-of-devops-report
Scaled Agile, Inc. (2021). SAFe 5.0 Reference Guide: Scaled Agile Framework for Lean Enterprises. Scaled Agile, Inc.
Schwaber, K., & Sutherland, J. (2017). The Scrum Guide. Scrum Guides.
Schwaber, K., & Sutherland, J. (2020). The Scrum Guide. Scrum Guides.
Proficient at applying academic and career background to Training & Development, Sales & Marketing, and Operations. Understands how ADDIE applies to ALL phases of the educational and business environments.
1 年The article provides a really concise yet detailed rendering of the Agile concept in operation.