%0 Journal Article %T The Study of Resource Allocation among Software Development Phases: An Economics-Based Approach %A Peleg Yiftachel %A Irit Hadar %A Dan Peled %A Eitan Farchi %A Dan Goldwasser %J Advances in Software Engineering %D 2011 %I Hindawi Publishing Corporation %R 10.1155/2011/579292 %X This paper presents an economics-based approach for studying the problem of resource allocation among software development phases. Our approach is structured along two parallel axes: theoretical and empirical. We developed a general economic model for analyzing the allocation problem as a constrained profit maximization problem. The model, based on a novel concept of software production function, considers the effects of different allocations of development resources on output measures of the resulting software product. An empirical environment for evaluating and refining the model is presented, and a first exploratory study for characterizing the model's components and developers' resource allocation decisions is described. The findings illustrate how the model can be applied and validate its underlying assumptions and usability. Future quantitative empirical studies can refine and substantiate various aspects of the proposed model and ultimately improve the productivity of software development processes. 1. Introduction Fundamental disagreements often arise with regard to the ¡°correct¡± allocation of resources to various software development phases (SDPs). For example, persuasive arguments are made for devoting substantial effort to requirements analysis and design, in order to avoid the costly consequences of modifications in later development stages [1¨C4]. However, the pressure to provide an executable product, which can be tested and presented to the customer sooner rather than later, can sometimes constitute a consideration for shifting resource allocation to implementation instead. Yet another approach can be seen in Test-Driven Development methods [5, 6], where much emphasis is placed on testing, both before and after implementation. These tradeoffs are relevant when analyzing graphs showing the cost of detecting and correcting a fault as a function of the phase in which it is detected. Such graphs¡ªprevalent in the literature¡ªdemonstrate the dramatic increase in cost when defects are detected later in the development process [7¨C9]. This observation is often used to support the claim that more resources should be allocated to early SDPs. Obviously, this claim can be pursued ad absurdum: dedicating all (or almost all) resources to the requirements and design phases would leave insufficient resources for implementation. Yet developers1 cannot find any guidance as to how many resources should be allocated to the various SDPs. Why are such fundamentally different approaches being advocated for allocating resources to SDPs? Does a correct allocation %U http://www.hindawi.com/journals/ase/2011/579292/