designing software is for efficiency