Agile development is a valuable enabler of digital transformation. It allows organizations to respond rapidly to changing competitive forces, address developing customer needs, and drive strategic changes. Agile does this by empowering team autonomy and self-determination, establishing a tight alignment between development and clients or users, and implementing short, targeted, rapid development cycles (“sprints”) to rapidly deliver minimum viable product (MVP) releases prior to iteration.
A key tenet of the Agile Manifesto is “Responding to change over following a plan.” This directly challenges traditional programming models (like waterfall) that are often seen as slow, cumbersome, inflexible, bureaucratic, and unresponsive to business needs. Too often, IT development has been viewed as a business impediment, not a business enabler.
Agile’s benefits are sometimes at the expense of control and visibility into development, particularly predictability of delivery and costs, forecasting, and quality. These pitfalls can negatively impact the full value of Agile. Where the business once asked, ‘Why does IT take so long to do everything?’ they might say, ‘Why has development become unpredictable and difficult to budget and forecast?’
Here are three pitfalls that can affect the value of Agile.
[Where is your team’s digital transformation work stalling? Get the eBook: What’s slowing down your Digital Transformation? 8 questions to ask.]
1. Lack of visibility
Visibility into Agile projects across multiple sprints and teams is a challenge. Agile teams are self-organizing, which means they use varied methods to structure and track themselves across teams and even sprints. This helps things move quickly and stay responsive to new requirements, but it makes development efforts more opaque to outside stakeholders. Self-organization and agility may leave business stakeholders and executives unclear on project status, leading to unpleasant surprises.
This visibility challenge is compounded by the fact that Agile often uses qualitative measures to track and benchmark progress. Key progress measures used by many Agile teams are story points (a subjective measure of effort), velocity (delivery of story point functionality), and backlog (clearing of the development queue).
Many organizations improve visibility by defining consistent reporting frameworks (dashboards) across development teams. These frameworks are defined in advance and applied consistently across development teams. They can be tiered to align with the size and complexity of products. These frameworks should be simple, with key metrics driven by the visibility needs of management and business stakeholders. They can also be maintained by resources outside the development teams.
[ For more advice on agile adoption, read Agile strategy: 3 hard truths. ]
2. Poor predictability
More traditional, structured project development models (such as waterfall, with its defined milestones, gates, and roadmaps) theoretically allow easier progress to milestone tracking. This doesn’t mean people found waterfall development predictable, but it was easier for them to predict progress due to waterfall’s top-down, centralized, structured, and defined approach to management. It also tended to be consistent across projects, which is frequently not the case with Agile.
Additionally, the rapid and fluid nature of Agile means predictability is impacted by decreased code quality. A rapid pace of development and requirement changes increases code refactoring. Code refactoring adds friction to development, which causes rework and delays.
To address this challenge, development organizations can turn to automated source code analysis tools. These tools help automate the discovery of poor code or common vulnerabilities and exposures (CVEs) and suggest remediations. This provides rapid feedback to developers so they can improve their practices. It also reduces testing requirements, which takes friction and inefficiency out of development and improves predictability.
3. Challenging cost management
When visibility and predictability are sacrificed, spend and burn is hard to assess. This makes cost management difficult. When Agile teams qualitatively assess effort and prioritize work, cost management is driven by the self-management of development teams. Also, the close working relationship between developers and the business makes requirement ingestion much more fluid as it is introduced throughout the entire development process. In more structured approaches, there are specific phases where new requirements can be introduced; not so with Agile.
Addressing Agile pitfalls
Story points are at the heart of Agile’s visibility, predictability, and cost management challenges. Addressing story points will help teams extract more value from Agile development.
Story points determine the effort required to deliver functionality. They are a subjective measure of effort determined by teams and are relative to each other – for example, requirement A is twice as hard as requirement B.
Addressing story points will help teams extract more value from Agile development.
This qualitative approach is impractical for consistent reporting because story points are continually changing. The story point methodology works for teams but not for larger programs, management, and business needs that require consistency and comparability. Gaining visibility, predictability, and cost management require quantitative, disciplined metrics.
This can be addressed using function points.
Function point analysis (FPA) measures application functionality. International standards are built around it. It uses standardized criteria to measure size and complexity. Function points provide an objective, quantitative, and repeatable measure. They allow benchmarking across teams and even benchmarking of third-party developers against the market.
Function points are collected and assessed across multiple sprints to chart changes across development cycles. They provide insight into productivity, efficiency, and quality by identifying what was changed, added, refactored, and removed across sprints or releases. This enables effective forecasting of cost and delivery, quality assessment, and visibility into projects.
Tracked over time, function points provide consistent visibility for stakeholders and management. They enable organizations to better forecast new functional delivery, improve cost forecasting, and inform resourcing decisions to meet budget and delivery priorities.
Using function point analysis, we can address Agile pitfalls around visibility, control, quality, cost, and consistency. Function point analysis gives teams consistent, quantitative, industry-standard measurements without impacting the responsiveness and speed prized in Agile.
Combining consistent and purposeful reporting frameworks across teams, code analysis to identify poor or insecure coding, and function point analysis to understand productivity and efficiency of development, teams can gain more value from their Agile development efforts. These three techniques also address the most common pitfalls of Agile development without impairing the responsiveness and business alignment it provides.
[ Get exercises and approaches that make disparate teams stronger. Read the digital transformation ebook: Transformation Takes Practice. ]