We analyze and compare fixed-fee and usage-fee software pricing schemes -in fixed-fee pricing, all users pay the same price; in usage-fee pricing, the users' fees depend on the amount that they use the software (e.g., the user of an online-database service might be charged for each data query). We employ a two-dimensional model of customer heterogeneity -specifically, we assume that customers vary in the amount that they will use the software (usage heterogeneity) and also in their per-use valuation of the software.To understand the performance of these pricing schemes and their sensitivity to the competitive environment in which they are used, we look at a number of different scenarios: a monopolist offering just one of these schemes, a monopolist offering a choice of pricing schemes, and several duopoly scenarios. We characterize and compare the equilibria that arise in these scenarios and provide insights into optimal pricing strategies.