How to Estimate Time for Tasks Without a Design

How to Estimate Time for Tasks Without a Design
Photo by Alvaro Reyes / Unsplash

Estimating time for development tasks without a design can feel like trying to complete a puzzle without all the pieces. However, it’s a situation many developers encounter, and with the right approach, you can still provide meaningful estimates. Below are practical steps, considerations, and tips to guide you and your team.

1. Understand the Requirements Thoroughly

The first step is to gain clarity on what the task entails. Even without a design, the project manager (PM) should provide a clear description of the task’s purpose and functionality. If any descriptions are vague or ambiguous, ask questions to eliminate confusion. A task with unclear requirements is a recipe for inaccurate estimates.

2. Make Reasonable Assumptions

When designs are missing, assumptions become your foundation. For example:

  • Assume the UI will follow an existing design system if your project already has one.
  • Estimate the number of fields, buttons, or interactions based on the task description.
  • Assume complexity levels for integrations or user workflows.

Document all assumptions and share them with the PM to ensure everyone is on the same page. These assumptions should be validated or revised once designs are available.

3. Base Estimates on Previous Experience

Leverage your prior experience with similar tasks. If a task resembles something you’ve done before, use it as a baseline. For instance:

  • Developing an API endpoint might take 2-4 hours if it’s simple.
  • A complex form with validation and interactions could take 8-12 hours.

Use these benchmarks to approximate new tasks.

4. Collaborate Between Front-End and Back-End Teams

If you’re working with other developers, such as a front-end specialist, coordinate your efforts. Divide responsibilities:

  • The back-end team can estimate API development, database schema design, authentication, and core business logic.
  • The front-end team can focus on implementing components, styling, and ensuring interactions meet the expected functionality.

5. Include Buffers for Uncertainty

Missing designs introduce an element of unpredictability. To mitigate this, add a buffer to each estimate:

  • Simple tasks: Add 10-15%.
  • Moderate tasks: Add 20%.
  • Complex tasks: Add 30% or more.

These buffers account for potential rework, misaligned expectations, and unexpected complexities.

6. Classify Tasks by Complexity

Break tasks into three categories:

  • Simple: Basic tasks with minimal risk (e.g., CRUD operations).
  • Moderate: Tasks requiring some integration and validation (e.g., forms, simple workflows).
  • Complex: Tasks with multiple dependencies or dynamic workflows (e.g., multi-step wizards, analytics dashboards).

Assign rough time ranges for each category, and refine them as more details become available.

7. Highlight High-Risk Areas

Some tasks are design-dependent, such as:

  • Pixel-perfect UI components.
  • Complex user flows requiring visual feedback.
  • Responsive design for multiple screen sizes.

Flag these tasks as high-risk and provide broader time ranges until designs are provided.

8. Use Estimation Techniques

Several estimation techniques can help you provide a structured approach:

  • Analogous Estimation: Compare tasks to previously completed ones.
  • Planning Poker: Collaborate with your team to discuss and agree on relative sizes of tasks.
  • Three-Point Estimation: Use optimistic, pessimistic, and most likely scenarios to calculate an average time.

9. Communicate Clearly and Proactively

When presenting estimates, be transparent about:

  • The assumptions made.
  • The risks involved.
  • Which estimates are more accurate versus which are provisional.

For instance, you can say, “This estimate assumes the design will use standard components from our existing library. If custom designs are introduced, the estimate will increase.”

10. Account for Dependencies

Some tasks depend heavily on other aspects of the project, such as:

  • Third-party APIs: Will they be available and functional?
  • Team Availability: Are there other tasks or meetings that might delay progress?
  • Existing Codebase: Does the task build on a stable foundation, or are there unresolved bugs that could affect it?

11. Factor in Testing and Review Time

Do not underestimate the time required for:

  • Writing unit tests or integration tests.
  • Conducting code reviews.
  • Handling QA feedback and fixing bugs.

Include these steps in your estimate to avoid surprises later.

12. Plan for Revisions Post-Design

Once designs are available, expect to revisit your estimates. This is an inevitable part of the process. Be upfront about this with the PM and set expectations that additional time may be required to refine or adjust implementations based on the finalized design.

13. Leverage Tools and Frameworks

If your team uses standardized tools or frameworks, these can reduce the uncertainty:

  • Component Libraries: Use ready-made UI components to speed up front-end work.
  • Back-End Frameworks: Predefined modules and tools can streamline development.

Discuss with senior developers how these tools can help streamline the work and adjust estimates accordingly.

Finally

Estimating tasks without designs is a balancing act between experience, assumptions, and communication. By breaking tasks into smaller pieces, collaborating with your team, and proactively addressing risks and uncertainties, you can provide estimates that are both practical and transparent. Remember to regularly update the PM and adjust your estimates as more information becomes available. With this approach, you’ll stay on track while maintaining clarity and accountability.

Support Us