Custom Software is Hard: Synergise Short Term Desires and Long Term Goals