Customer Software Design