Suggestions Instead Of Requirements

Specs & Suggestions: Rethinking Requirements in Agile #

In agile development, we often hear about “requirements,” but framing every request as a hard-and-fast requirement can bog down the process. Instead, I suggest teams think in terms of “Suggestions” and “Specifications”—with most requests starting as suggestions unless truly necessary to specify.

Why “Suggestions” Over “Requirements”? #

By default, treating requests as suggestions rather than strict requirements gives the team more flexibility and room to explore creative solutions. Agile is all about adaptability, and suggestions allow developers to think critically about the best ways to achieve the desired outcome while staying nimble.

Using suggestions also fosters collaboration and discussion, opening the door for feedback from the team that might improve the end result. Specifications, on the other hand, are vital but should be reserved for things that genuinely need to be strictly adhered to.

Examples of Suggestions #

Suggestions are best used for elements that improve the user experience but don’t affect core functionality. They give teams room to make adjustments and find what works best within the project’s context.

Here are some examples:

  • Look and Feel: A preferred color scheme or font style for a calendar widget can be suggested. While a design team might have a vision, the developers can explore different ways to achieve a consistent look and feel without being overly rigid.
  • Consistent Icons: It might be suggested that icons on a screen match those used in another application. While consistency is beneficial, small differences in iconography aren’t mission-critical and can be adjusted as needed.
  • Drag-and-Drop Features: For a component like a calendar, drag-and-drop functionality could be suggested but not required right away. The team might deliver a simpler MVP with plans to add drag-and-drop in a later sprint, based on time, budget, or technical feasibility.

When to Use Specifications #

Specifications are essential for areas where consistency and exactness are necessary, often for functional, legal, or compliance reasons. Specifications define requirements that must be met precisely to avoid errors or regulatory issues.

For example:

  • Email Validation: If email address validation must match the standards in a master customer database, this needs to be a specification. Misaligned validation could cause inconsistencies in data entry, affecting the entire system.
  • Terms of Use: Legal documents like a “Terms of Use” agreement need to be specified to ensure they’re accurate and current. This isn’t something teams can change or adapt without legal review.
  • Device Compatibility: Ensuring an app is fully functional on the latest iPhone or Android device should be a specification, particularly if the target user base includes mobile users.

Example of Flexibility: Screenshots in Documentation #

One product owner might “suggest” that documentation screenshots match the latest UI exactly, while another product owner might be okay if there are minor differences, marking this as a suggestion rather than a requirement. This flexible approach lets teams focus their efforts where it matters most and revisit “nice-to-have” details when there’s time.

Benefits of Suggestions from an Agile Perspective #

  1. Adaptability: Agile thrives on flexibility. Suggestions allow teams to find efficient solutions and avoid becoming bogged down by minor, non-critical details. Teams can decide if suggestions make sense or if tweaks would better serve the project’s goals.

  2. Encourages Creativity: Treating design and functionality as suggestions gives developers room to bring their insights and creativity to the table. This often results in better solutions that serve both the product and the end-user.

  3. Prevents Bottlenecks: When everything is a requirement, it can slow down the team’s progress. Suggestions free up the development process, allowing teams to make progress while focusing on what’s essential.

  4. Improves Prioritization: When only truly necessary elements are specified, teams can better prioritize their work. Specifications get the attention they need, while suggestions can be tackled as time and resources allow.

Bringing Suggestions and Specifications Together #

Adopting this approach encourages ongoing collaboration between product owners, developers, and QA. Product owners can provide guidance through suggestions without being overly prescriptive, and developers have the freedom to prioritize and create the best possible product.

In agile development, quality and functionality are built through flexibility and adaptability, not rigid adherence to endless requirements. By distinguishing suggestions from specifications, your team can work smarter, focus on what matters most, and ultimately deliver high-quality, user-focused products without unnecessary constraints.


© Raj Duggal