software buying process