designing software requires an organised mind