<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Determination of the Next Release of a Software Product: an Approach using Integer Linear Programming</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Van Den Akker</surname></persName>
							<email>j.m.vandenakker@cs.uu.nl</email>
						</author>
						<author>
							<persName><forename type="first">S</forename><surname>Brinkkemper</surname></persName>
							<email>s.brinkkemper@cs.uu.nl</email>
						</author>
						<author>
							<persName><forename type="first">G</forename><surname>Diepen</surname></persName>
							<email>g.diepen@cs.uu.nl</email>
						</author>
						<author>
							<persName><forename type="first">J</forename><surname>Versendaal</surname></persName>
							<email>j.versendaal@cs.uu.nl</email>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="department">Institute for Information and Computing Sciences</orgName>
								<orgName type="institution">Universiteit Utrecht</orgName>
								<address>
									<postBox>P.O. Box 80089</postBox>
									<postCode>3508 TB</postCode>
									<settlement>Utrecht</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff1">
								<orgName type="department">Faculdade de Engenharia</orgName>
								<orgName type="institution">Universidade do Porto</orgName>
								<address>
									<addrLine>ISBN 972</addrLine>
									<postCode>2005 --752-078-2</postCode>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Determination of the Next Release of a Software Product: an Approach using Integer Linear Programming</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B1731CCE5D096ECB4F20A54EFE2DC293</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T06:10+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Selection of the requirements for the next release of a software product is a inherently complex task due to the high volume of intricate requirements and to the varied interests of the stake holders involved. In this paper we apply integer linear programming techniques to aid requirements managers of product software companies in release planning. The applied techniques take candidate requirements, estimated revenue per requirement (or combination of requirements), and available resources as input. Planning suppleness is added by way of allowing flexibility in team composition, team transfers, extension of deadlines and hiring external resources. Through experiments the application of the proposed approach is demonstrated with real life data. Future additions to the model are identified, as well as improved validation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Planning the next release</head><p>Companies developing product or embedded software face challenges in determining the set of requirements for an upcoming release. Confronted with hundreds, if not thousands, of requirements proposed by users, potential customers, marketing and sales managers, architects and software engineers, it is far from trivial to select those requirements that add most value to the product. Different stake holders in the planning process may each have their own preferred content in view of the projected revenue estimations and required development efforts. In Figure <ref type="figure">1</ref> the requirements management process is depicted in relation to the development of a release. The picture is derived from Natt och <ref type="bibr" target="#b4">Dag et al. (2005)</ref> and shows the practice Baan (an enterprise resource planning software company, now part SSA Global). We use this process to describe the context of the release planning process.</p><p>Market requirements represent the wishes from existing and potential customers of the software product. Product requirements are defined as generic customer wishes that can be included in the software solution to be developed</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>by the software vendor. Release initiation is a formal document triggering the release of a development project. The release definition contains the list of product requirements to be developed in the upcoming release. Conceptual solutions in requirements management are used to sketch the business context of one or more product requirements, and help developers to view the 'big picture' of the development of a product requirement. Finally, the selected product requirements will be developed into software components.</p><p>Provided the set of all product requirements, many aspects influence the definition of an optimal set of requirements for a next release. For example, the importance or business value of the requirement, personal preference of certain customers and other stake holders, penalty if not developed, cost of development in man-days, development lead-time, requirement volatility, requirement dependencies, ability to reuse, and requirements quality (e.g. <ref type="bibr">Berander</ref>  for application of ILP in the area of scheduling), to support software vendors in determining the next release of product software. Our technique is based on the assumption that a release's best set of requirements is the set that results maximum projected revenue against available resources in a given time period. We take into account practical aspects, including the total list of requirements, whether or not requirements are dependent on one another, a requirement's projected revenue, and a requirements resource claim per development team. To further increase its application in practice, we enhance our technique with managerial steering mechanisms, i.c. enabling of team transfers, conceding release deadline extension, allowing extra resources, and more. By introducing these aspects and managerial steering mechanisms into ILP models for the release composition process we extend the work of <ref type="bibr" target="#b3">Jung (1998)</ref>, who also applied linear programming techniques in the context of release planning.</p><p>Our approach is original in three ways. Firstly, we include a unique set of aspects, among others needed team capacity per requirement. Secondly, we introduce unique yet practical managerial steering mechanisms that can help product managers and development project managers in release planning: enabling of team transfers, and deadlines and extra resources. Thirdly, we apply ILP techniques in a unique way.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Integer linear programming models for release planning</head><p>Let {R 1 , R 2 , . . . , R n } be the set of candidate requirements. For each requirement R j we assume we can estimate its revenue v j . Further assume that we have a fixed development period. We have to find the subset of requirements for the next release such that the revenue is maximal and the available capacity is not exceeded. We denote our development period by T and define d(T ) as the number of working days in the development period. Moreover, let Q be the number of persons working in the development teams of the company. Then, the available capacity equals d(T )Q man-days. Moreover, we have an estimate a j of the amount of man days needed for the implementation of requirement R j . We model the requirements selection problem in terms of binary variables x j (j = 1, . . . , n), where</p><formula xml:id="formula_0">x j = 1 if requirement R j is selected; 0 otherwise.</formula><p>The problem can be modeled as an ILP problem in the following way:</p><formula xml:id="formula_1">max n j=1 v j x j subject to n j=1 a j x j ≤ d(T )Q,<label>(1)</label></formula><p>x j ∈ {0, 1}, for j = 1, . . . , n.</p><p>If the company decides that, in any case, some of the requirements have to be included in the new release, this can be achieved by fixing the corresponding variables x j at 1, i.e. adding the equation x j = 1 to the above model. If the number of working days in the planning period is different for different persons the total capacity is given by d p (T ), where d p (T ) is the number of working days of person p in period T and the sum is over all persons in the company.</p><p>Especially in larger product software companies there are different development teams, each with their own specialization. Let m be the number of teams and suppose team G i (i = 1, . . . , m) consists of Q i persons. We assume that the implementation of requirement R j needs a given amount a ij of man days from team G i (i = 1, . . . , m). Now the team capacities can be included by replacing constraint 1 by:</p><formula xml:id="formula_2">n j=1 a ij x j ≤ d(T )Q i , for i = 1, . . . , m.</formula><p>(</p><p>Note that for m = 1, this coincides with the model for one pool of developers. By allowing people to work in a different team, there is more flexibility that can increase revenue. We assume that if a person from team G i works in another team G k his contribution in terms of man days is multiplied by α ik , i.e. if the person works one day this contributes only α ik to the work delivered by team G k . Besides the variables x j , we now define the variables y ik as the number mandays from team G i deployed in team G k . Let m i be the number of man-days in team G i . Including transfers results in the following model:</p><formula xml:id="formula_4">max n j=1 v j x j subject to n j=1 a ij x j ≤ y ii + k:k =i α ki y ki for , i = 1, . . . , m,<label>(3)</label></formula><formula xml:id="formula_5">m k=1 y ik = m i , for i = 1, . . . , m,<label>(4)</label></formula><p>x j ∈ {0, 1}, for j = 1, . . . , n, y ik nonnegative and integral, for j = 1, . . . , n.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Experimentation</head><p>As a proof-of-concept we implemented a prototype of a requirements selection system. For testing the program different data sets were used. The different sets were: small with 9 requirements and 3 teams, AA, BB, CC with 24 requirements and 17 teams and different ratios of available and total required capacity and master with 99 requirements and 17 teams. All of the used data sets are available online for research purposes at http://www.cs.uu.nl/~diepen/ReqMan.</p><p>The following table presents the total revenues for the optimal requirement selection for the different problems that were tested. The first column in Table <ref type="table" target="#tab_0">1</ref> represents the scenario of a development organization consisting of one big pool of developers. In practice, however, there will be different teams (especially with larger development organizations); the second column therefore depicts the scenario with multiple teams in the development organization (with no transfers allowed). The last column depicts the scenario with multiple teams, and team transfers allowed (α ik = 0.7 for all i = k). The case with one big pool of developers leads to the highest revenue. Introducing multiple teams will decrease total revenue. From the theory this is explained by the fact that this model imposes stricter conditions in assigning labor to requirements. However, allowing transfers between teams (for α ik = 0.7 for all i = k) again increases flexibility and hence revenue.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Extensions to the base model</head><p>Until now we have assumed that all requirements can be implemented independently Suppose that the functionality imposed by a certain requirement can only be effective if one or more other requirements are also implemented, say if we select requirement R j we also have to select R k . In the model, we have to ensure that</p><formula xml:id="formula_6">x j = 1 ⇒ x k = 1.</formula><p>This can be done by extending our model with the linear inequality</p><formula xml:id="formula_7">x j ≤ x k . (<label>5</label></formula><formula xml:id="formula_8">)</formula><p>Note that if two requirements are dependent in the sense that they cannot be realized separately from each other, this can be handled by considering them as one requirement.</p><p>Until now, we assumed that the total revenue of a release is the sum of the revenues of the individual requirements included in the release. However, the revenue may be larger if some collection of requirements is completely realized. A typical example is when these requirements together provide a 'package' in some area within the software product. We can include this in our model by using a binary variable x S indicating if the set S is completely realized. Further details are omitted for reasons of brevity.</p><p>To increase the capacity for the development of the next release, the company may consider to hire external personnel in some of the development teams. In our model, this can be included by to adding the external capacity to the right-hand side of constraints (2) and including the cost in the revenue function. Again, we omit further details for reasons of brevity. Another possibility is postponing the delivery date for the new release. This can be included in a similar way.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions and future research</head><p>We have shown that ILP models and methods can be used in flexible release planning by implementing a subset of the managerial steering mechanisms in a prototype tool. ILP techniques can be used to help product and requirements managers in software release planning. In this paper we specifically optimized revenues against available resources in a given time period. Scenarios dealing with one pool of developers, different development teams, including the possibility of transfer of developers between teams are discussed and demonstrated through experimentation. Moreover a number of extensions were modeled.</p><p>Our approach simplified the task of computing the set of release requirements to a great extend. We aim for more support during release development as in the dynamics of the project workload turns out to be overestimated or underestimated, and that the revenue projections are changing due to a changing market. We further plan to test the validity of our model through multiple business cases. In such cases an appropriate approach is to use our model for release planning on the one hand, and compare its outcome with the company's proprietary way of release planning. We finally note that our approach supports the release planning at the start of the release planning process. In practice the value of requirements may evolve over time, as the release is being developed; dealing with this is a further extension of our current approach.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. The requirements management process related to development management</figDesc><graphic coords="2,123.85,57.72,184.25,146.42" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>and Andrews (2005); Firesmith (2004); Ruhe et al. (2003); Natt och Dag et al. (2004); Natt och Dag et al. (2005)). So we address what an adequate set of product requirements is for an upcoming release of the software, in the context of business continuity of the product software company. We develop and demonstrate an optimization technique, based on Integer Linear Programming (ILP) (see e.g. Wolsey (1998) for a general introduction on ILP; see e.g. Van den Akker, et al. (1999A) and Van den Akker, et al. (1999B)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Revenue values for the three types of data sets</figDesc><table><row><cell cols="4">Data Pool No-X-Teams X-Teams</cell></row><row><cell cols="2">small 182</cell><cell>147</cell><cell>182</cell></row><row><cell>AA</cell><cell>700</cell><cell>510</cell><cell>685</cell></row><row><cell>BB</cell><cell>810</cell><cell>570</cell><cell>790</cell></row><row><cell>CC</cell><cell>835</cell><cell>670</cell><cell>810</cell></row><row><cell cols="2">master 46220</cell><cell>42730</cell><cell>44810</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="124" xml:id="foot_0">J.M. van den Akker, S. Brinkkemper, G. Diepen, J. Versendaal</note>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Supported by BSIK grant 03018 (BRICKS: Basic Research in Informatics for Creating the knowledge Society)</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A polyhedral approach to single-machine scheduling problems</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Van Den Akker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">P M</forename><surname>Van Hoesel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">W P</forename><surname>Savelsbergh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Mathematical Programming</title>
		<imprint>
			<biblScope unit="volume">85</biblScope>
			<biblScope unit="page" from="541" to="572" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Parallel machine scheduling by column generation</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Van Den Akker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Hoogeveen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">L</forename><surname>Van De Velde</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Operations Research</title>
		<imprint>
			<biblScope unit="volume">47</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="862" to="872" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Requirements Prioritization</title>
		<author>
			<persName><forename type="first">P</forename><surname>Berander</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Andrews</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Engineering and Managing Software Requirements</title>
				<editor>
			<persName><forename type="first">A</forename><surname>Aurum</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Wohlin</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin, Germany</addrLine></address></meeting>
		<imprint>
			<publisher>Forthcoming</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Optimizing Value and Cost in Requirements Analysis</title>
		<author>
			<persName><forename type="first">H.-W</forename><surname>Jung</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="page" from="74" to="78" />
			<date type="published" when="1998-07">1998. July/August 1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A Linguistic Engineering Approach to Large-Scale Requirements Management</title>
		<author>
			<persName><forename type="first">J</forename><surname>Natt Och Dag</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Gervasi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Brinkkemper</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Regnell</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software, Special Issue on Requirements Engineering</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="32" to="39" />
			<date type="published" when="2005-01">2005. January/February 2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Speeding up Requirements Management in a Product Software Company: Linking Customer Wishes to Product Requirements through Linguistic Engineering</title>
		<author>
			<persName><forename type="first">J</forename><surname>Natt Och Dag</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Gervasi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Brinkkemper</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Regnell</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 12th International Requirements Engineering Conference</title>
				<editor>
			<persName><forename type="first">N</forename><forename type="middle">A M</forename><surname>Maiden</surname></persName>
		</editor>
		<meeting>the 12th International Requirements Engineering Conference</meeting>
		<imprint>
			<publisher>IEEE Computer Science Press</publisher>
			<date type="published" when="2004-09">2004. September 2004</date>
			<biblScope unit="page" from="283" to="294" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Trade-off Analysis for Requirements Selection</title>
		<author>
			<persName><forename type="first">G</forename><surname>Ruhe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Eberlein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pfahl</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal of Software Engineering and Knowledge Engineering</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="345" to="366" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">A</forename><surname>Wolsey</surname></persName>
		</author>
		<title level="m">Integer programming Wiley-Interscience Series In Discrete Mathematics and Optimization</title>
				<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
