Effective planning, definition and design is critical to establishing what will be delivered
Maintaining constant end user engagement is essential to keep expectations aligned
Sustaining contact with end-user communities beyond first release enables continuous improvement
Organizations can adopt Agile methodologies to gain strategic advantage in competitive markets by improving their efficiency and quality of product delivery. While Agile was developed for and is widely practiced in software development, many of its principles and tools can be applied in other projects, from strategic planning and business transformation to marketing or systems engineering design.
A critical first step is first understanding what the product being delivered is, why it’s important to both the organization and the end user, and how success is measured. From there, a common Agile practice is to break the development of a software product into smaller phases, or sprints, to iteratively plan, execute, and produce tangible deliverables after each sprint. This method enables the development team to quickly deliver value to customers, obtain feedback, and adapt to the changing market or to changing requirements without redoing work.
When core agile practices are not followed, the team may be risking the success of a product’s development by not aligning changing requirements with what’s being delivered, increasing the risk that the project will not deliver on time and to budget a product which meets the needs of the end user.
Agile is a design-centric methodology, not a development-centric one. Changing a requirement or design is cheap; changing code is ten times as expensive. No code should be written until why, how, and what the system will do is 80%-90% understood.
How to reduce risks and make Agile practice more effective
Invest sufficient time to truly understand success
One best practice of agile management is gaining insight into the customer’s needs and objectives early in the development process during the definition phase. During this process all stakeholders, especially end users, should be included to properly elicit their major requirements and agree on how success will be measured – in Agile parlance, the “Definition of Done”.
A common mistake of Agile projects is to believe that early design and definition isn’t required and to dive straight in to writing code or producing a deliverable. This “iterative, code-like-hell” approach most often results in a confusion of ever-changing and evolving requirements and designs which frequently overwhelm the team, rapidly slowing velocity and eroding product quality and resulting in a work product which is often late, poorly designed, and requires major rework.
A better practice is to spend the first few sprints as a “definition time-box” to agree objectives, set standards, and establish the initial set of requirements, designs, and priorities in the project backlog and a plan to complete the product. As each sprint release is intended to deliver working code or a tangible deliverable, ongoing definition and design work is vital to the ongoing success of each sprint and continued prioritization of the backlog. Over the course of the Agile project, the initial definition and design will evolve into a comprehensive, well-documented resource which captures a detailed understanding of the user’s needs and behavior aligned with the program objectives.
Continuous engagement of end users
A key element that should be factored in the roadmap is continuing to engage and iterate designs and needs with stakeholders, especially end users, to deliver continued modernization and innovation over multiple product releases. The sprint, increment, and product release plan aligned with the prioritized backlog is a key communication tool for achieving alignment and keeping delivery on track.
Agile is adaptable so as the organization’s goals and objectives change these can be reflected in features and functionality of the product. With the continuous incremental delivery of working code followed by the elicitation of feedback from end users, organizations will be able to better deliver value that continually and accurately aligns with their customers.
However, to avoid scope creep and requirements churn the changing needs of the business needs to be carefully managed to avoid completely disrupting project delivery. While some people regard Agile as being “ultimately flexible” and believe that major requirements can be changed on a whim, this has the effect of disrupting development and devolving into the same kind of directionless, “code-like-hell” situation described previously.
A more effective approach is to use the evolving requirements and ongoing product definition along with the backlog to maintain alignment between stakeholders, end users, and the project team. New requests, especially one which have a major impact on delivery, can be evaluated against existing needs and priorities and added to the backlog in the appropriate release timeframe. Having definition work lead development by several sprints enables several iterations of workflows and designs to take place and be prioritized in the backlog, allows developers to focus on producing good code in support of a well-articulated design.
Engagement of stakeholder and end users throughout the project helps ensure the end-product meets the needs of both groups while providing a level of transparency and visibility into product decisions. The definition and design process, including ongoing elicitation and validation, helps ensure that major changes are both captured and appropriately incorporated into the project to minimize disruption to delivery while still providing adaptability to evolving needs.
Sustaining innovation and continuous delivery
Crafting a well-designed plan for multiple releases and increments provides a foundation for continued improved and innovation beyond the first release. Maintaining the established set of Agile practices for subsequent releases is an effective strategy for continuing to release both high-quality features and capability and quickly resolving issues such as bugfixes or performance defects.
After the initial release, the ongoing development plan should include establishing channels for user support to enable issues experienced by users to be raised and captured outside of the sprint cycle. In addition, it’s good practice to have user support available to help new and existing users navigate and learn the system as new features are added and updates are made to resolve issues.
Including end-users in continuous development will also help in troubleshooting, problem resolution, and identifying any defects should any arise. Establishing a method for identifying issues allows the project team to resolve bugs in a timely manner and reduce system downtime. The full value of the solution cannot not be realized if the end users are not able to properly engage with the product throughout the development process.
By including the end-user community in the design and definition work, constantly eliciting feedback from end users through sprint releases and creating a plan for user support throughout ongoing sustainment, organizations can utilize agile more effectively. Stakeholders need to feel encouraged to provide feedback that allows organizations to deliver a solution that best reflects the customers’ needs. This collaborative and forward-thinking mindset will produce a continuous cycle of business values, increased usability, improved outcomes, and decreased risk. To get a better understanding of the importance of communication with stakeholders, read more here).