designing software requires expertise