The step from a list of requirements to a
design and specification that meets them is
the trickiest part of SE and is even more
complicated in the end-user domain, where
users without programming skills are
unfamiliar with the techniques and
heuristics that they can use to perform this
step [Burnett et al. 2004; Obrenovic and
Gasevic 2009; Ko et al. 2011]