Methodologies

Methodologies

Vertical Vs Horizontal Team Structures For Dependent Projects

Software development projects often involve multiple teams working in concert to deliver complex solutions. This interdependency introduces coordination challenges that impact delivery timelines and software quality. Two predominant approaches for structuring teams on dependent efforts are vertical team structures organized by layers of the technology stack, and horizontal structures that group cross-functional members across components…

Extending Sprints Vs. Technical Task Breakdowns: The Scrum Dilemma

Balancing Iteration Lengths in Agile Development Agile development methodologies like Scrum are widely adopted for their ability to deliver working software faster through short, iterative development cycles called sprints. However, project teams often face dilemmas in balancing sprint lengths with the level of effort required to complete complex technical tasks. This article examines the tradeoffs…

Achieving The Sprint Goal With Slack Time And Process Improvements

Allocating Capacity for Unplanned Work Defining sprint capacity based on the development team’s velocity provides a starting point for planning. However, additional slack time should be allocated to account for unplanned work that may arise during the sprint. Planning for a 20% buffer by reducing scope or stretching capacity allows the team to absorb incoming…

When Scrum Is Not The Right Fit: Alternatives For Non-User Facing Projects

Scrum’s Shortcomings for Internal Projects Scrum is an agile framework designed to deliver working software frequently through incremental sprints. It relies heavily on active customer engagement to continuously prioritize features that deliver the most value. However, for internal initiatives that don’t have an external customer to provide feedback, Scrum can encounter challenges such as: Lack…

Agile Metrics: Measuring Productivity Vs. Predictability

To measure the effectiveness of agile software development, organizations rely on key metrics that evaluate both the productivity achieved in outputting working features as well as the predictability achieved in forecasting future work capacity. Core metrics that quantify productivity dimensions like velocity and business value delivery must be balanced with indicators of reliability like lead…

Integrating Testing Into Development: Bdd And Living Documentation

Writing Testable Code from the Start Following test-driven development (TDD) principles allows developers to write highly modular, less coupled code that lends itself to testability. The key aspects of TDD involve writing failing tests first before incrementally writing implementation code to pass each test. This enforces a cycle of red-green testing that builds program logic…

Beyond Backlog Items: Delivering A Coherent Sprint Goal

Understanding the Reader Analyzing the target audience When embarking on an agile software development project, it is critical to understand the needs and perspectives of the target audience, including project stakeholders, product owners, and end users. Conduct user research to identify demographics, levels of expertise, attitudes towards technology, and pain points. Personas and user stories…

Adapting Process Requirements To Agile: Focusing On Principles Over Practices

Aligning Process Values with Agile Values The core values and principles of Agile software development differ markedly from traditional plan-driven approaches. Where traditional processes focus on comprehensive upfront planning, extensive documentation, and strict adherence to initial requirements, Agile emphasizes responding to change, frequent inspection and adaptation, and face-to-face communication amongst team members. These divergent philosophies…

Scrum Anti-Patterns: Mandatory Story Completion And The Struggling Team

The Core Problem of Mandatory Story Completion Excessive pressure on the software development team to complete user stories within a sprint can lead to major problems. Rigid mandates to finish all committed stories lack flexibility and inevitably cause technical debt, quality issues, and team member burnout. Agile frameworks like Scrum emphasize working software over comprehensive…

Balancing New Features And Bug Fixes Using Scrum Practices

Prioritizing the Product Backlog One of the key responsibilities of the Product Owner in Scrum is to prioritize the Product Backlog to maximize business value delivered by the development team. This involves carefully ranking new features and bugs based on their expected impact, cost to implement, time sensitivity and risk. Grouping related product backlog items…