Whether you’re assigning complexity points to a story or scoping a project in terms of iterations, here are factors to consider when estimating the complexity of a task:


  • Stability of requirements
  • Turnaround time for requirements questions
  • User types: external users, internal users, support, maintenance development
  • Dependencies on other developers/teams’ work being delivered


  • Third-party technology integration
  • Developer’s familiarity with technologies
  • Stability of technologies
  • Dependency upgrades
  • Performance and throughput needs

The Code

  • Testing needs: automated, manual, QA team coordination, user acceptance approach
  • Data persistence
  • Data pushes or synchronization
  • Monetization: payment processing, advertising integration
  • Search reliability
  • Robustness of validation needed
  • Robustness of error handling needed
  • User interface: functionality, design
  • API accessibility
  • User accounts: third-party integration, locking, resetting, customer support
  • Security: TLS, authorization, exploit protection, compliance
  • Secondary behaviors: caching, logging, auditing, notifications, analytics


  • Infrastructure setup
  • Data import or migration
  • Complexity of go-live
  • Localization