Custom Software vs Off-the-Shelf: Making the Right Choice