Before testing: If you want a product with good UX, do you give the
programmers a list of functions or a list of scenarios?
Usually people write a functional spec for a software/website they want,
which they then give to the programmer. The programmer will create a
program/website with the functions you requested. The programmer comes back
and feels great about this product he created for you, with all the
functions you asked for, maybe even threw in a few extra.
You try the program and it has all the functions, but it is impractical.