Performance Is a Feature

Now that is a widespread title for blog articles ! Just search Google, and you’ll find “Performance is a feature” in Coding Horror and others.

What’s in it for us ?

If performance is indead a feature, then it can be managed like any feature :

  • It should result from use cases

    During use case X, the user should not wait more than Y seconds for Z

  • It can be split into user stories

  • Story 1: During use case X, the user should not wait more than 2*Y seconds for Z
  • Story 2: During use case X, the user should not wait more than Y seconds for Z
  • They can be prioritized against other stories
  • Let’s forget about performance for now and deliver functionality A as soon as ready, we’ll speed things up later.
  • Let’s fix basic performance constraints for use case X for now, every story will have to comply with these constraints later.
  • The performance on these use cases should be automatically tested and non regressed
  • If we slow things too much and these tests breaks, we’ll have to optimize the code.
  • But as long as we don’t break the tests, it’s ok to unoptimize the code !

Maybe that’s a chance to stop performance related gut feeling quarrels !

Comments