Progettare i software prima di iniziare a scriverli