Once the product's task is known design the interface first then implement...
Right now computers which are supposed to be our servant are oppressing us.
Imagine if every Thursday your shoes exploded if you tied them the usual way....