SlideShare a Scribd company logo
1 of 25
Download to read offline
Page 1 of 25                 Copyright © 2010-2013 Pragmatic Cohesion Consulting




               Balancing Software Project Drivers - A Rational
                          Quantitative Approach
Page 2 of 25                                  Copyright © 2010-2013 Pragmatic Cohesion Consulting



                                                           Introduction

The increasing role of mission critical software products and a highly competitive software market leaves little room for poorly
managed software projects with unclear development processes [Yourdon, 1997].

Decision Support Systems (DSS) are valuable tools that can help software project managers model their decision problems. A DSS can
also provide great value in assessing the potential impact of alternative course of actions [Sage, 1991].

From a global perspective on software projects, Grady Booch [1998] defines several “Artifacts” as being byproducts of development
processes or aids to development processes. These artifacts are classified according to their principle users or according to the clients
that they serve: the development team itself, end users, and software management teams.

The development team artifacts are:
   The software’s architecture
   Design specifications
   Code

The end users’ artifacts are:
   The software requirements
   Data i.e. raw information that may be used within or across applications inside the end users’ organization
   Human interfaces i.e. general look and feel of a family of programs

The software project management team artifacts are:
   Estimates (costs, development time, quality level)
   Project plans (staffing and scheduling )
   Documentation

The Decision Support System (DSS) presented in this document is a tool that facilitates the definition and production of project estimates
and project plans focused on the design and implementation phases of the software development life cycle.

Booch also suggests that every well-define process has four roles:
   Provide guidance as to the order of a team’s activities
Page 3 of 25                                  Copyright © 2010-2013 Pragmatic Cohesion Consulting



   Specify what artifacts should be developed
   Direct the tasks of individual developers and the team as a whole
   Offer criteria for monitoring and measuring the project’s products and activities
He then respectively relates these four roles to the purpose, products, activities, and measures of goodness of each phase of a software
development life cycle.

The DSS presented in this document is a tool that improves the effectiveness of the decision making process that results in estimating,
planning, and adapting:
    the products (software architecture, design specifications and code ),
    the activities (designing architecture, defining design specifications, and producing code)
    and the measures of goodness (number of known requirements met, degree of resilience to new requirements, and degree of
        reusability)
of the design and implementation phases of a software development life cycle.


1-System Scope

The general architecture of the DSS is presented in figure 1. It contains the following subsystems:
   User Interface that permits the dialog between the DSS and its users.
   Database that provides persistent storage of the data manipulated by the DSS.
   ModelBase that is the representation of the mathematical models used by the DSS.
   Database Management System.
   Modelbase Management System.
   Management Software that integrates the communications among the User Interface, the Database Management System, and the
       ModelBase Management System.
Page 4 of 25                                 Copyright © 2010-2013 Pragmatic Cohesion Consulting



2-Project Scope

To the best of my knowledge, the DSS described in this project does not refer to an existing system utilized by a commercial or
government software development organization. Furthermore, this DSS is not tailored to any specific software development
organization. The project findings and results although substantial are kept generic enough to be utilized by an existing organization or
become part of the foundation of a new business.




                                                Figure 1: DSS High Level Architecture
Page 5 of 25                                 Copyright © 2010-2013 Pragmatic Cohesion Consulting



                                                 MODELBASE ANALYSIS

1-Overview

1.1-Single software project management policies

Software management teams continuously strive to achieve balance in fulfilling stakeholders’ expectations. Attaining such a balance
frequently involves conducting a continuous trade off of the software feature set, cost, schedule, and degree of reusability [Rico 2004].
Taken individually, each one of the figures being traded off has associated with it a specific optimal achievement direction that defines
its management policy. They are summarized in the following table:


              Objective or Management Policy                                                         Object
   Deliver software that has as many requirements met as                                       Software features set
                           possible
                Do not exceed budgeted costs                                            Software development effort cost
                Deliver software on schedule                                               Software delivery schedule
 Produce software with as many reusable features as possible                             Software degree of reusability.

We have related the individual objectives mentioned previously to quantitative expressions that capture their essence.

Several software management objectives compete to be totally fulfilled. Software development managers are faced with the challenge
of finding the optimal balance of these objectives. A useful approach is to prioritize these objectives according to what the Decision
Maker judges as the most important objectives to achieve.
Once the objectives have been ranked, the optimal balance of fulfilled objectives can be derived by several techniques. Goal
Programming techniques fit well the problem at hand. The achievement function of the goal programming problem expresses the
optimal balance in achieving the various stated goals.
Page 6 of 25                                 Copyright © 2010-2013 Pragmatic Cohesion Consulting



1.2-Multiple related software projects management

Beyond managing a single software project, software development management teams have to address management decisions that
involve several related successive or concurrent software projects. Here the focus is mainly on the design and implementation phases
of successive software products that share to varying degrees commonalties in terms of architecture, detail design specifications, and
types of implemented functionalities.

The set of related software projects has the following characteristic: each software project covers activities that are initiated by the
definition of a specific set of software requirements; they include the production of design artifacts and the implementation and testing
of software code prior to being packaged as releasable software product.

Two planning approaches that respond to two kinds of planning strategies are presented. Both approaches try to match future project
characteristics to development effort capability:
   The first strategy is to find the kind of software projects that match the current profile of the organization software development
       capability.
   The second strategy is to define the organization software development capability that will match a given set of future software
       projects.
1.3-Model elements

A software product development effort conducted by an organization generates two major artifacts:
   Design Specifications (Software Architecture and Detail Design Specifications)
   Software Code.

We define three types of software development efforts for the production of design specifications and the implementation of software
Code:
   Efforts that require “no real effort” (indexed O),
   Efforts that produced partially or totally reusable features (indexed N),
   Efforts that produced non-reusable features (indexed W).

Software Architects and software abstractionists are most often in charge of producing the software architecture and design
specifications while Application Engineers are responsible for implementing the software Code [Grady Booch, 1998].
Page 7 of 25                                  Copyright © 2010-2013 Pragmatic Cohesion Consulting




Compared to the production of non-reusable features, the production of reusable features requires more experience and more advanced
skills from the team assigned to it. Therefore, there is a high probability that team members assigned to the production of reusable
features will sell their experience and skills at a higher price than those assigned to the production of non-reusable features.

Our discussion introduces the design of the software architecture as a major driver for the remaining detail design and code
implementation activities [Rosenberg, Stephens, Collins-Cope; 2005].
Reusable features of the software as well as features of the software that were produced with little or no efforts are also introduced as
having a strategic value in terms of custom development time saving. The use and production of these types of features relate to
Walker Royce’s [1998] component-based development that defines a component as “a cohesive set of preexisting lines of code, either
in source or executable format, with a defined interface and behavior”.

Our model uses ratios that define the mean rate at which design specifications are produced and the mean rate at which software code
is implemented. The values of these rates depend on various factors such as:
    Skill level of the development team,
    Size of the development team,
    Development tools,
    Development methodology or paradigm,
These factors strongly vary from one organization to the next.

Our model also includes development cost figures that relate to the 3 types of development efforts previously defined [Bohem and
Papaccio, 1988]. Cost figures are related to the production rates previously discussed, the mean time required for producing design
specifications, and the mean time required for implementing software code. These cost figures also strongly depend on the:
   Skill level of the development team,
   Size of the development team,
   Development tools,
   Development methodology or paradigm,
Once again, these factors will likely vary from one organization to the next.

The degree to which software features can be reused to develop multiple software products depends mainly on:
   The similarity between the initial software and the other ones in terms of problem domain, requirements set, programming
       language, notations, machine architecture, development tool, and standards.
Page 8 of 25                                  Copyright © 2010-2013 Pragmatic Cohesion Consulting



   The actual occurrence of identical software components across several projects.
Reusable software components could be source code libraries or software design frameworks with multiple classes, interfaces, or
functions.


2-Model Details

2.1-Single software project management policies

Software Feature Set
The software feature set needs to be complete in order to meet the software requirements. But it is a moving target since several
requirements are at first unknown and are discovered only during the development phase.

Software development effort cost
The software cost needs to be minimized and needs to be lower than a given budgeted cost. As often noticed, several software projects
are above expected cost therefore the actual incurred cost needs to be as close as possible to the budgeted cost if it exceeds it.

Software delivery schedule
Any planned deadline of a software release needs ideally to be exactly met. Software projects are known to be delivered late therefore
the actual incurred development time needs to be as close as possible to the planned time if it exceeds it.

Software degree of reusability
With respect to the two sets of development efforts (specifying Architecture/Design and Implementing Code) software development
teams need to yield the best balance of skills and size that allows the completion of the software within the planned schedule and at the
budgeted cost while taking advantage of as many reusable software components as possible.

2.2-Multiple related software projects management policies

Related projects could be about different software products or they could be about several releases or versions of a same software
product. The analysis approach that is presented in this section tries to offer a generic enough framework that applies to both types of
software products.
Page 9 of 25                                   Copyright © 2010-2013 Pragmatic Cohesion Consulting




In the case of successive releases of the same software product, the most recent set of software requirements may vary due to the
following reasons:
    in response to feedback from users who expect more or different software features.
    in response to the discovery by the development team of major overseen software requirements.
In the case of different successive software products, a new set of software requirements is usually determine in response to the
identification of new markets to conquer.

2.3-Further definition of development efforts

We are postulating that a software product development effort conducted by an organization generates 2 major artifacts: a set of design
specifications and a set of implemented software code.
Any design specification or implemented software code can be decomposed into 3 distinct subsets:
   The first subset is characterized by the fact that its production requires little or no consumption of development efforts in order to
        become part of the software product; it is either directly taken from a previous software development effort within the same
        organization or it is bought from a third party vendor.
   The second subset is characterized by the fact that its production is the result of a new development effort conducted within the
        organization and it has the properties of being totally or partially reusable for other software development efforts.
   The third subset is characterized by the fact that it is also the result of a new development effort but it is very unlikely to be reused
        for another software development effort.

Let introduce the following convention:
    The software is represented as a first set of D design specifications and a second set of C implemented software code.
    O Index represents the first subset of the software that does not require new development efforts.
    N Index represents the second subset of the software that requires new development efforts and is partially or totally reusable.
    W Index represents the third subset of the software that requires new development efforts and is not reusable.

The following variables are introduced:
   PDO and PCO: are respectively the mean proportions of total software Design Specifications and Software Code that do not
       require new development efforts.
Page 10 of 25                                 Copyright © 2010-2013 Pragmatic Cohesion Consulting



    PDN and PCN: are respectively the mean proportions of total Software Design Specifications and Software Code that require new
       development efforts and that are partially or totally reusable.
    PDW and PCW: are respectively the mean proportions of total Software Design Specifications and Software Code that require
       new development efforts and that are not reusable.
    With the following relation holding:
       PDO+PDN+PDW = 1 [E1]
       PCO+PCN+PCW = 1 [E2]

Let D represent the total amount of Design Specifications. D’s unit could be for example the number of classes and interfaces or any
other metric that is be suitable to size the set of Design Specifications. It is possible to derive the following variables from (E1):
    DO = PDO x D : the mean amount of design specifications of the software that do not require new development efforts.
    DN = PDN x D : the mean amount of design specifications of the software that require new development efforts and that are
       totally or partially reusable.
    DW = PDW x D : the mean amount of design specifications of the software that require new development efforts and that are not
       reusable.

Let C represent a measure of the total size of implemented Software Code. C’s unit could be for example in Software Lines of Code or
any other metric that is appropriate to size the set of implemented Software Code. By analogy, the following variables can be identified
for the software code:
    CO = PCO x C : the mean amount of Software Code that do not require new development efforts.
    CN = PCN x C : the mean amount of Software Code that requires new development efforts and that is totally or partially
        reusable.
    CW = PCW x C : the mean amount of Software Code that requires new development efforts and that is not reusable.

The magnitudes of DO and CO are especially useful to the development effort since they require no development time. DN and CN
represent a substantial development efforts “investment” for the current software project but they have the potential to fully or partially
become the “DO” and “CO” of other software development efforts. DW and CW are “one time use” development efforts with no or
very little chance of ever being reuse in another software development projects.

In summary, three types of software development efforts have been defined for the production of design specifications and the
implementation of software code:
    those that require “no real effort” (indexed O),
Page 11 of 25                                 Copyright © 2010-2013 Pragmatic Cohesion Consulting



    those that produced partially or totally reusable features (indexed N),
    those that produced non-reusable features (indexed W).
2.4-Allocation of resources to development efforts

Software development efforts can be viewed as the production of design specifications and the implementation of software code. From
the previous paragraph, we have defined three groups of such efforts among which only two really require new consumption of staff
resources in order to take place: the production of reusable features and the production of non-reusable features.
Software architects and software abstractionists are most often in charge of producing the software architecture and design
specifications. Application engineers are responsible for the implementation of software code [Grady Booch, 1998]. According to our
definition of software effort types, both the production of design specifications and the implementation of software code need to cover
two activities: the first one resulting in the production of reusable features and the second one resulting in the production of non-
reusable features. Compared to the production of non-reusable features, the production of reusable features requires more experience
and more advanced skills from the team assigned to it. Therefore, there is a high probability that team members assigned to the
production of reusable features sell their experience and skills at a higher price than those assigned to the production of non-reusable
features. In addition, software architects and software abstractionists cost more than application engineers but they are in much lesser
number than the application engineers in most software development projects.

2.5- Relationship with 2 major principles of modern software development management.

In 1998 Walker Royce presents 10 principles of modern software management. The first one and the third one are quoted next.
First -Base the process on an architecture-first approach.
Third -Transition design methods to emphasize component-based development.

Our discussion has introduced the design of the software architecture as a major driver of both the remaining design and
implementation activities.
Reusable features of the software as well as features of the software that were produced with little or no efforts were also presented as
having a strategic value in terms of custom development time saving. The use and production of these types of features relate to
Royce’s component-based development that defines a component as “a cohesive set of preexisting lines of code, either in source or
executable format, with a defined interface and behavior”.
Page 12 of 25                                Copyright © 2010-2013 Pragmatic Cohesion Consulting



2.6- Rates of production

In this section, we are interested in establishing a relationship between time and the variables expressing the mean amount of design
specifications and the mean amount of implemented software code. We introduce the following variables:
    TDN: mean time required to produce DN amount of design specifications
    TDW: mean time required to produce DW amount of design specifications
    TDO: mean time required to produce DO amount of design specifications. TDO by definition is equal to 0 units of time
    TCN: mean time required to implement CN amount of software code
    TCW: mean time required to implement CW amount of software code
    TCO: mean time required to implement CO amount of software code. TCO by definition is equal to 0 units of time.

The following ratios define the mean rate at which design specifications are produced and the mean rate at which software code is
implemented.

CDN = DN/TDN : mean production rate of DN amount of design specifications.
CDW = DW/TDW : mean production rate of DW amount of design specifications.
CCN = CN/TCN : mean implementation rate of CN amount of software code.
CCW = CW/TCW : mean implementation rate of CW amount of software code.

The following relations can be derived:
   DN = CDN x TDN [E10]: the mean amount of design specifications that require new development efforts and that are totally or
       partially reusable.
   DW = CDW x TDW [E11]: the mean amount of design specifications that require new development efforts and that are not
       reusable.
   CN = CCN x TCN [E12]: the mean amount of Software Code that requires new development efforts and that is totally or
       partially reusable.
   CW = CCW x TCW [E13]: the mean amount of Software Code that requires new development efforts and that is not reusable.

The values of the above variables depend on various factors such as:
   the skill level of the development team,
   the size of the development team,
Page 13 of 25                                Copyright © 2010-2013 Pragmatic Cohesion Consulting



   the development tools,
   the development methodology or paradigm,
These factors strongly vary from one organization or project to the next.

2.7- Development efforts cost figures

An important aspect of project management responsibilities is planning and measuring cost expenditures throughout the project life
cycle. Such an activity is performed differently from one organization to the next therefore it may take many forms. In this project,
development efforts have been classified in three generic groups that remain valid regardless of organization specific practices and
policies. More specifically cost figures are related to both the production rates previously introduced and the mean time required to
produce design specifications and the mean time required to implement software code.

The following variables are introduced:
   MDN: mean cost of producing one unit of design specifications.
   MDW: mean cost of producing one unit of design specifications.
   MCN: mean cost of implementing one unit of software code.
   MCW: mean cost of implementing one unit of software code.

The cost of producing DN amount of design specifications is:
   MDN x DN = MDN x CDN x TDN [E14]
The cost of producing DW amount of design specifications is:
   MDW x DW = MDW x CDW x TDW [E15]
The cost of implementing CN amount of software code is:
   MCN x CN = MCN x CCN x TCN [E16]
The cost of implementing CW amount of software code is:
   MCW x CW = MCW x CCW x TCW [E17]

The values of the above variables depend on various factors such as:
   the skill level of the development team,
   the size of the development team,
   the development tools,
Page 14 of 25                                Copyright © 2010-2013 Pragmatic Cohesion Consulting



   the development methodology or paradigm,
These factors strongly vary from one organization or project to the next.

2.8- Development effort reuse

As mentioned before, among the three types of development efforts, one does not really require any development effort. It is expressed
by the variables DO and CO. The DO design specifications and CO implemented software code are either directly taken from a
previous software development effort within the same organization or are bought from a third party vendor. In this section we focus on
the process by which DO and CO are taken from a previous software development effort conducted by the same organization.

Using the three types of development efforts mentioned in this project, the reusable portion of any software can be expressed as
follow:
    KDO x DO for reuse of the “non-effort consuming” part of design specifications.
    KCO x CO for reuse of the “non-effort consuming” part of implemented software code.
    KDN x DN for reuse of the “design for reuse” part of design specifications.
    KCN x CN for reuse of the “implemented for reuse” part of implemented software code.

Where KDO, KCO, KDN and KCN are adjustment factors that express what fraction of the software project under consideration is
transferred to another given software project. KDO, KCO, KDN and KCN are by definition between 0 % and 100%.

The magnitudes of KDO, KCO, KDN and KCN depend mainly on:
   The similarity between the initial software and the new one to develop in terms of problem domain, requirements set,
      programming language, notations, machine architecture, development tool, and standards.
   The effective reuse of software components in terms of occurrences of identical components across several projects.

Reusable software components could be source code libraries or software design frameworks with multiple classes, interfaces, or
functions. The important fact is that whatever the sources of reuse, the reused components become for the current project its set of
“Non-effort consuming” design specifications and implemented software code. The more “non-effort consuming” design
specifications and implemented software code used, the less “effort-consuming” design specifications and implemented software code
needed to complete the project. The ultimate outcome yields a substantial reduction of the software custom development time and
effort.
Page 15 of 25                              Copyright © 2010-2013 Pragmatic Cohesion Consulting



3- Using software development effort models in managerial decisions

Software development management teams would like to find ways to answer the following questions regarding given software
projects:
    What amount of software features will likely be produced?
    What amount of reusable features will likely be produced?
    What amount of non-reusable features will likely be produced?
    How long will it take to complete the production of the software features?
    How much time needs to be dedicated the production of reusable features?
    How much time needs to be dedicated to the production of non-reusable features?
    How much will the development effort cost?
    What will be the cost of the reusable features produced?
    What will be the cost of the non-reusable features produced?

While knowing the following development capability parameters:
  Mean cost of producing 1 unit of reusable design specification
  Mean cost of producing 1 unit of non-reusable design specification
  Mean cost of implementing 1 unit of reusable software code
  Mean cost of implementing 1 unit of non-reusable software code
  Mean production rate of 1 unit of reusable design specification
  Mean production rate of 1 unit of non-reusable design specification
  Mean implementation rate of 1 unit of reusable software code
  Mean implementation rate of 1 unit of non-reusable software code

And knowing the following project constraints:
   The expected amount of design specifications
   The expected amount of implemented software code
   The expected development effort budgeted cost
   The planned time for producing design specifications
   The planned time for implementing software code
Page 16 of 25                                 Copyright © 2010-2013 Pragmatic Cohesion Consulting



3.1 Optimal single software project management policies.

In this section we will relate the individual software policies mentioned previously under section 2.1 to quantitative expressions that
capture their essence.

Software Feature Set

The software feature set consists of D amount of design specifications and C amount of implemented software code.
Using the three types of development efforts, the following relations are presented:

D = DO + DN + DW[E20]
C = CO + CN + CW[E21]

By substituting [E10] to [E13] in [E20] and [E21]:

D = DO + (CDN x TDN) + (CDW x TDW) [E30.1]
C = CO + (CCN x TCN) + (CCW x TCW) [E30.2]

Software development effort cost

Development effort costs are incurred as design specifications are produced and software code is implemented. The development cost
budgeted figures are MD for design specifications production and MC for software code implementation. The following relations
translate the policy that relates budgeted costs to incurred costs:

MD > (MDN x DN) + (MDW x DW)
Which is the same as:
MD > (MDN x CDN x TDN) + (MDW x CDW x TDW) [E31.1]

MC > (MCN x CN) + (MCW x CW)
Which is the same as:
MC > (MCN x CCN x TCN) + (MCW x CCW x TCW) [E31.2]
Page 17 of 25                                Copyright © 2010-2013 Pragmatic Cohesion Consulting



Software delivery schedule

Let TD and TC be respectively the planned time for producing design specifications and the planned time for implementing software
code.
The actual time spent for the production of design specifications and the actual time spent for the implementation of software code
must be equal to the planned development times. The following equations capture these relations:

TD = TDN + TDW[E32.1]
TC = TCN + TCW[E32.2]

Software degree of reusability

From a global perspective, the development team is composed of software architects and software abstractionists who are in charge of
producing the software architecture and detail design specifications. Application engineers are responsible for implementing software
code. Within each one of these groups two skills level are defined. The first one is capable of producing reusable features and the
second one is mainly capable of producing non-reusable features. The strategic interest of reusable features has been presented several
times in this presentation. It is then desirable that as many as possible software features exhibit this property. This fact can be
translated by the following equations:

TDN > 0 [E33.1] and CDN > 0[E34.1]
TCN > 0 [E33.2] and CCN > 0[E34.2]

3.2 Optimal set of single software project management policies.

From the previous discussion, it appears that several software management objectives compete to be totally fulfilled. Software
development managers are faced with the challenge of finding the optimal balance of these objectives. A useful approach is to
prioritize these objectives according to what the Decision Maker judges as the most important objectives to achieve. These objectives
are listed below with no implications about their relative importance.
Page 18 of 25                               Copyright © 2010-2013 Pragmatic Cohesion Consulting



              Objective or Management Policy                                                        Object
   Deliver software that has as many requirements met as                                      Software features set
                           possible
                Do not exceed budgeted costs                                           Software development effort cost
                Deliver software on schedule                                              Software delivery schedule
 Produce software with as many reusable features as possible                            Software degree of reusability.


Once the objectives have been ranked, the optimal balance of fulfilled objectives can be derived by several techniques. Next we
present how Goal Programming fits well the problem at hand.

Two similar goal programming problems can be formulated: the first one is about design specifications while the other one is about
implemented software code. The formulation that follows addresses implemented software code.

Optimize: the achievement of ranked project development objectives
Given: the following aspiration levels:
    C – CO : Amount of software code to implement
    MC : Software code implementation budgeted cost
    TC : Software code implementation planned time
And given:the following production parameters:
    CCN : Mean production rate of reusable software code
    CCW : Mean production rate of non-reusable software code
    MCN : Mean cost of producing one unit of reusable software code
    MCW : Mean cost of producing one unit of non-reusable software code

The following relations constitute the Goal Programming constraints:
   (CCN x TCN) + (CCW x TCW) = C - CO [E30.2]
   (MCN x CCN x TCN) + (MCW x CCW x TCW) < MC [E31.2]
   TCN + TCW = TC [E32.2]
   TCN > 0 [E33.2]
Page 19 of 25                               Copyright © 2010-2013 Pragmatic Cohesion Consulting



The decision variables in the above relations are TCN and TCW. Each relation has an aspiration level and a direction of preference
that are summarized below with additional goal programming deviation variables.


                Right Hand Side                       Deviation Variables           Aspiration       Achievement function Goal
                                                                                      Level
      (CCN x TCN) + (CCW x TCW)                             dC-, dC+                 C - CO        minimize deviation: (dC- + dC+)
(MCN x CCN x TCN) + (MCW x CCW x TCW)                       dM-, dM+                   MC         minimize over achievement :(dM+)
              TCN + TCW                                      dT-, dT+                  TC          minimize deviation : (dT- + dT+)
                 TCN                                        dN-, dN+                    0         minimize under achievement: (dN-)

The achievement function of the goal programming problem expresses the optimal balance in achieving the various stated goals. It can
be expressed as any of the following:
    Minimize the weighted sum of the goal deviations where weights are representative of priorities among the objectives.
    Minimize some function of the goal deviations.
    Minimize the worst deviation of the goal deviations.
    Lexicographic minimization of an ordered set of goal deviations.

3.3 Post optimal analysis of a set of single software project management

The solution to the goal programming problem described previously provides the following information with respect to the priorities
defined by the decision maker:
    How long it takes to complete the production of the software features
    How much time is dedicated the production of reusable software features
    How much time is dedicated to the production of non-reusable software features
    What amount of software features have been produced
    What amount of reusable software features has been produced
    What amount of non-reusable software features has been produced
    How much it costs to produce the software features
    What is the total cost of the reusable software features
    What is the total cost of the non-reusable software features
Page 20 of 25                                Copyright © 2010-2013 Pragmatic Cohesion Consulting




Post optimality analysis is useful to respond to the following questions:
   How do modifications in the stated priorities influence the optimal solution proposed? This question addresses concerns such as:
       if cost becomes the biggest priority instead of feature set, is the solution still valid?
   Within what range can the aspiration levels on desired feature set, cost, and schedule vary without making proposed solution non-
       feasible?

3.4 Multiple related software projects management.

Next, is presented an analysis procedure that allows planning a series of successive software projects. The three types of development
efforts (non-effort consuming, effort consuming with reusable property, effort consuming with non-reusable property) and the 2 types
development activities (producing design specifications, implementing software code) previously presented are taken into account.

For each project under consideration, the following software development effort parameters are defined:

    D: the amount of design specifications
    C: the amount of software code to implement

    TD: the planned time for producing design specifications
    TC: the planned time for implementing software code
    TDN: the mean time needed to produce DN amount of reusable design specifications
    TDW: the mean time needed to produce DW amount of non reusable design specifications
    TCN: the mean time needed to implement CN amount of reusable software code
    TCW: the mean time needed to implement CW amount of non-reusable software code

    M: the development effort budgeted cost
    MD : budgeted cost to produce D amount of design specifications
    MC : budgeted cost to implement C amount of software code
    MDN : mean cost of producing 1 unit of reusable design specification
    MDW : mean cost of producing 1 unit non-reusable design specification
    MCN : mean cost of implementing 1 unit of reusable software code
Page 21 of 25                                Copyright © 2010-2013 Pragmatic Cohesion Consulting



    MCW: mean cost of implementing 1 unit of non-reusable software code

    CDN: the mean production rate of 1 unit of reusable design specification
    CDW: the mean production rate of 1 unit of non-reusable design specification
    CCN: the mean implementation rate of 1unit of reusable software code
    CCW: the mean implementation rate of 1unit of non-reusable software code

    KDN: the reusability degree of DN amount of reusable design specifications
    KCN: the reusability degree of CN amount of reusable software code

The strategies presented address a set of N successive related software projects. The organization objective is to develop the Nth
project with the following forecasted characteristics:
    Dn amount of design specifications
    Cn amount of software code
    TDn planned time for producing design specifications
    TCn planned time for implementing software code
    Mn budgeted development cost
    PD0n proportion of non-effort consuming design specifications
    PC0n proportion of non-effort consuming implemented software code

The strategic variables are PD0n and PC0n since they reflect the portion of the software project that does not need to consume
development efforts therefore they are strong indicators of development effort cost savings. A natural procedure is to gradually
increase PD0 and PF0 from one project to the next by making sure that each software produces features that possess an effective
degree of reusability for subsequent projects.

Next we present two planning approaches that respond to two kinds of planning strategies. Both approaches try to match future project
characteristics to development effort capability.


3.4.1 First approach –marketing strategy
Page 22 of 25                                 Copyright © 2010-2013 Pragmatic Cohesion Consulting



The first strategy is a marketing one and it consists of finding the kind of software projects that match the current profile of the
organization software development capability.
This approach can be modeled as follow using the software development effort parameters previously introduced:

Given the following characteristics of the Nth project:
   Dn amount of design specifications
   Cn amount of implemented software code
   TDn planned time for producing Dn amount of design specifications
   TCn planned time for implementing Cn amount of software code
   Mn budgeted development cost
   PD0n proportion of non-effort consuming design specifications
   PC0n proportion of non-effort consuming implemented software code

And given the forecasted values for each one of the (N-1) projects:
   MDN : mean cost of producing 1unit of reusable design specification
   MDW : mean cost of producing 1 unit of non-reusable design specification
   MCN : mean cost of implementing 1unit of reusable software code
   MCW: mean cost of implementing 1unit of non-reusable software code
   CDN: the mean production rate of 1 unit of reusable design specification
   CDW: the mean production rate of 1 unit if non-reusable design specification
   CCN: the mean implementation rate of 1unit of reusable software code
   CCW: the mean implementation rate of 1 unit if non-reusable software code

Find the values of the following parameters for each one of the (N-1) projects:
-D: the amount of design specifications
-C: the amount of software code to implement
-M: the development effort budgeted cost
-TD: the planned time for producing design specifications
-TC: the planned time for implementing software code
-KDN: the reusability degree of DN amount of reusable design specifications
-KCN: the reusability degree of CCN amount of reusable implemented software code.
Page 23 of 25                                Copyright © 2010-2013 Pragmatic Cohesion Consulting




3.4.2 Second approach – workforce development strategy

The second strategy is a workforce development one that defines the organization software development capability that will match a
given set of future software projects.

Given the following characteristics of the Nth project:
   Dn amount of design specifications
   Cn amount of implemented software code
   TDn planned time for producing Dn amount of design specifications
   TCn planned time for implementing Cn amount of software code
   Mn budgeted development cost
   PD0n proportion of non-effort consuming design specifications
   PC0n proportion of non-effort consuming implemented software code

And the forested values for each one of the (N-1) projects:
   D: amount of design specifications
   C: amount of software code to implement
   M: the development effort budgeted cost
   TD: the planned time for producing design specifications
   TC: the planned time for implementing software code

Find the values of the following parameters for each one of the (N-1) projects:
-MDN: mean cost of producing 1unit of reusable design specification
-MDW: mean cost of producing 1unit of non-reusable design specification
-MCN: mean cost of implementing 1 unit of reusable software code
-MCW: mean cost of implementing 1 unit of non-reusable software code
-CDN: the mean production rate of 1unit of reusable design specification
-CDW: the mean production rate of 1unit of non-reusable design specification
-CCN: the mean implementation rate of 1unit if reusable software code
-CCW: the mean implementation rate of 1unit of non-reusable software code
Page 24 of 25                              Copyright © 2010-2013 Pragmatic Cohesion Consulting



-KDN: the reusability degree of DN amount of reusable design specifications
-KCN: the reusability degree of CN amount of reusable software code
Page 25 of 25                              Copyright © 2010-2013 Pragmatic Cohesion Consulting



References:
-Bohem B.W. and Papaccio P.N. 1988, Understanding and controlling software cost, IEEE Transactions on Software Engineering
14(10)

-Booch G. (1998), Object Solutions: Managing the Object-Oriented Project, Addison-Wesley, Menlo Park, CA

-Rico D.F (2004), ROI of software process improvement: Metrics for project managers and software engineers, J. Ross, Boca Raton,
FL.

-Rosenberg D., Stephens M., and Collins-Cope M. (2005), Agile Development with ICONIX Process-People, Process and
Pragmatism, Apress.

-Royce W. (1998), Software Project Management a Unified Framework, Reading, MA

-Sage A. P. (1991) Decision Support Systems Engineering. Wiley Series in Systems Engineering, New York.

-Yourdon E. (1997), Death march: The complete software developer’s guide to surviving “Mission Impossible” projects, Prentice Hall,
Upper Saddle River, NJ.

More Related Content

What's hot

Ch26 - software engineering 9
Ch26 - software engineering 9Ch26 - software engineering 9
Ch26 - software engineering 9Ian Sommerville
 
Assessment of cmm and its impact on software quality
Assessment of cmm and its impact on software qualityAssessment of cmm and its impact on software quality
Assessment of cmm and its impact on software qualityIAEME Publication
 
Afrekenen met functiepunten
Afrekenen met functiepuntenAfrekenen met functiepunten
Afrekenen met functiepuntenNesma
 
Return on Investment from Software Process Improvement
Return on Investment from Software Process ImprovementReturn on Investment from Software Process Improvement
Return on Investment from Software Process ImprovementTom McGibbon
 
Improving software economics
Improving software economicsImproving software economics
Improving software economicsdeep sharma
 
Gsd systematic task allocation evaluation in distributed software development
Gsd   systematic task allocation evaluation in distributed software developmentGsd   systematic task allocation evaluation in distributed software development
Gsd systematic task allocation evaluation in distributed software developmentShatakirti Er
 
30 8948 prakash paper64 (edit ndit)
30 8948 prakash paper64 (edit ndit)30 8948 prakash paper64 (edit ndit)
30 8948 prakash paper64 (edit ndit)IAESIJEECS
 
Software engineering
Software engineeringSoftware engineering
Software engineeringfaisalwajid
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsAmr E. Mohamed
 
Ch23-Software Engineering 9
Ch23-Software Engineering 9Ch23-Software Engineering 9
Ch23-Software Engineering 9Ian Sommerville
 
Selenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing ToolSelenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing Toolijtsrd
 
Modern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic GuideModern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic GuideCAST
 
Assessment of cmm and its impact on software quality
Assessment of cmm and its impact on software qualityAssessment of cmm and its impact on software quality
Assessment of cmm and its impact on software qualityiaemedu
 
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...IBM Rational
 

What's hot (19)

Ch26 - software engineering 9
Ch26 - software engineering 9Ch26 - software engineering 9
Ch26 - software engineering 9
 
Unit 2 spm
Unit 2 spmUnit 2 spm
Unit 2 spm
 
Assessment of cmm and its impact on software quality
Assessment of cmm and its impact on software qualityAssessment of cmm and its impact on software quality
Assessment of cmm and its impact on software quality
 
Afrekenen met functiepunten
Afrekenen met functiepuntenAfrekenen met functiepunten
Afrekenen met functiepunten
 
Return on Investment from Software Process Improvement
Return on Investment from Software Process ImprovementReturn on Investment from Software Process Improvement
Return on Investment from Software Process Improvement
 
Improving software economics
Improving software economicsImproving software economics
Improving software economics
 
Gsd systematic task allocation evaluation in distributed software development
Gsd   systematic task allocation evaluation in distributed software developmentGsd   systematic task allocation evaluation in distributed software development
Gsd systematic task allocation evaluation in distributed software development
 
Sda 6
Sda   6Sda   6
Sda 6
 
Unit1
Unit1Unit1
Unit1
 
30 8948 prakash paper64 (edit ndit)
30 8948 prakash paper64 (edit ndit)30 8948 prakash paper64 (edit ndit)
30 8948 prakash paper64 (edit ndit)
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
Spm unit 1
Spm unit 1Spm unit 1
Spm unit 1
 
Ch23-Software Engineering 9
Ch23-Software Engineering 9Ch23-Software Engineering 9
Ch23-Software Engineering 9
 
Selenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing ToolSelenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing Tool
 
Modern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic GuideModern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic Guide
 
Sdlc tutorial
Sdlc tutorialSdlc tutorial
Sdlc tutorial
 
Assessment of cmm and its impact on software quality
Assessment of cmm and its impact on software qualityAssessment of cmm and its impact on software quality
Assessment of cmm and its impact on software quality
 
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
 

Viewers also liked

The non intuitive impact of software defects on development efforts time esti...
The non intuitive impact of software defects on development efforts time esti...The non intuitive impact of software defects on development efforts time esti...
The non intuitive impact of software defects on development efforts time esti...Pragmatic Cohesion Consulting, LLC
 
Software Inspection And Defect Management
Software Inspection And Defect ManagementSoftware Inspection And Defect Management
Software Inspection And Defect ManagementAjay K
 
Software Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect States
Software Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect StatesSoftware Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect States
Software Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect StateseVideoTuition
 

Viewers also liked (6)

The non intuitive impact of software defects on development efforts time esti...
The non intuitive impact of software defects on development efforts time esti...The non intuitive impact of software defects on development efforts time esti...
The non intuitive impact of software defects on development efforts time esti...
 
Quality management
Quality managementQuality management
Quality management
 
Chapter 15
Chapter 15Chapter 15
Chapter 15
 
Software bugs
Software bugsSoftware bugs
Software bugs
 
Software Inspection And Defect Management
Software Inspection And Defect ManagementSoftware Inspection And Defect Management
Software Inspection And Defect Management
 
Software Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect States
Software Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect StatesSoftware Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect States
Software Testing - Defect/Bug Life Cycle - Complete Flow Chart of Defect States
 

Similar to Balancing software project drivers a rational quantitative approach

Top 5 software development methodologies_ Explained.docx.pdf
Top 5 software development methodologies_ Explained.docx.pdfTop 5 software development methodologies_ Explained.docx.pdf
Top 5 software development methodologies_ Explained.docx.pdfJPLoft Solutions
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 
Software engineering fundamentals
Software engineering fundamentalsSoftware engineering fundamentals
Software engineering fundamentalsJigyasaAgrawal7
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)MuhammadTalha436
 
Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfchristiemarie4
 
A New Model for Study of Quality Attributes to Components Based Development A...
A New Model for Study of Quality Attributes to Components Based Development A...A New Model for Study of Quality Attributes to Components Based Development A...
A New Model for Study of Quality Attributes to Components Based Development A...Kiogyf
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNANDINI SHARMA
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfVijayakumarKadumbadi
 
DESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkDESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkIJERA Editor
 
Chapter_01.ppt
Chapter_01.pptChapter_01.ppt
Chapter_01.pptMSahibKhan
 
Relational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality AssuresRelational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality AssuresIOSR Journals
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxYaseenNazir3
 
How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...christiemarie4
 

Similar to Balancing software project drivers a rational quantitative approach (20)

Top 5 software development methodologies_ Explained.docx.pdf
Top 5 software development methodologies_ Explained.docx.pdfTop 5 software development methodologies_ Explained.docx.pdf
Top 5 software development methodologies_ Explained.docx.pdf
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
Software engineering fundamentals
Software engineering fundamentalsSoftware engineering fundamentals
Software engineering fundamentals
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
M017548895
M017548895M017548895
M017548895
 
SE-Lecture-5.pptx
SE-Lecture-5.pptxSE-Lecture-5.pptx
SE-Lecture-5.pptx
 
Chapter1
Chapter1Chapter1
Chapter1
 
Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdf
 
A New Model for Study of Quality Attributes to Components Based Development A...
A New Model for Study of Quality Attributes to Components Based Development A...A New Model for Study of Quality Attributes to Components Based Development A...
A New Model for Study of Quality Attributes to Components Based Development A...
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project Management
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
 
DESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkDESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance Framework
 
Chapter_01.ppt
Chapter_01.pptChapter_01.ppt
Chapter_01.ppt
 
Software engineer
Software engineerSoftware engineer
Software engineer
 
Software developer
Software developerSoftware developer
Software developer
 
Relational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality AssuresRelational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality Assures
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptx
 
How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...
 

More from Pragmatic Cohesion Consulting, LLC

Applying the integrative propositional analysis (ipa) to the ebmm – triads
Applying the integrative propositional analysis (ipa) to the ebmm – triadsApplying the integrative propositional analysis (ipa) to the ebmm – triads
Applying the integrative propositional analysis (ipa) to the ebmm – triadsPragmatic Cohesion Consulting, LLC
 
Comparing four major organizational cultures and the challenges faced when tr...
Comparing four major organizational cultures and the challenges faced when tr...Comparing four major organizational cultures and the challenges faced when tr...
Comparing four major organizational cultures and the challenges faced when tr...Pragmatic Cohesion Consulting, LLC
 
Framework for assessing business analysts situational awareness
Framework for assessing business analysts situational awarenessFramework for assessing business analysts situational awareness
Framework for assessing business analysts situational awarenessPragmatic Cohesion Consulting, LLC
 
The dynamics of cohesive and inconsistent project requirements and how they i...
The dynamics of cohesive and inconsistent project requirements and how they i...The dynamics of cohesive and inconsistent project requirements and how they i...
The dynamics of cohesive and inconsistent project requirements and how they i...Pragmatic Cohesion Consulting, LLC
 
Creating queuing system simulations with enterprise architect sysml parametri...
Creating queuing system simulations with enterprise architect sysml parametri...Creating queuing system simulations with enterprise architect sysml parametri...
Creating queuing system simulations with enterprise architect sysml parametri...Pragmatic Cohesion Consulting, LLC
 
Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...
Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...
Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...Pragmatic Cohesion Consulting, LLC
 
The dynamic interaction of passed and failed requirements during software tes...
The dynamic interaction of passed and failed requirements during software tes...The dynamic interaction of passed and failed requirements during software tes...
The dynamic interaction of passed and failed requirements during software tes...Pragmatic Cohesion Consulting, LLC
 
Effective Listening - a cornerstone of effective business analysis
Effective Listening - a cornerstone of effective business analysisEffective Listening - a cornerstone of effective business analysis
Effective Listening - a cornerstone of effective business analysisPragmatic Cohesion Consulting, LLC
 
About the benefits and pitfalls of relying on analytical methods
About the benefits and pitfalls of relying on analytical methodsAbout the benefits and pitfalls of relying on analytical methods
About the benefits and pitfalls of relying on analytical methodsPragmatic Cohesion Consulting, LLC
 
Deductive, inductive, and abductive reasoning and their application in trans...
Deductive, inductive, and abductive reasoning and their application in  trans...Deductive, inductive, and abductive reasoning and their application in  trans...
Deductive, inductive, and abductive reasoning and their application in trans...Pragmatic Cohesion Consulting, LLC
 
34,000 delicious Food and Beverage combinations for your holidays!
34,000 delicious Food and Beverage combinations for your holidays!34,000 delicious Food and Beverage combinations for your holidays!
34,000 delicious Food and Beverage combinations for your holidays!Pragmatic Cohesion Consulting, LLC
 
Business analysis and business framework driven projects - Example of the Mic...
Business analysis and business framework driven projects - Example of the Mic...Business analysis and business framework driven projects - Example of the Mic...
Business analysis and business framework driven projects - Example of the Mic...Pragmatic Cohesion Consulting, LLC
 

More from Pragmatic Cohesion Consulting, LLC (20)

Applying the integrative propositional analysis (ipa) to the ebmm – triads
Applying the integrative propositional analysis (ipa) to the ebmm – triadsApplying the integrative propositional analysis (ipa) to the ebmm – triads
Applying the integrative propositional analysis (ipa) to the ebmm – triads
 
Viewers locations usa - 30000
Viewers locations usa - 30000Viewers locations usa - 30000
Viewers locations usa - 30000
 
Viewers locations outside USA - 30000
Viewers locations outside USA - 30000Viewers locations outside USA - 30000
Viewers locations outside USA - 30000
 
Comparing four major organizational cultures and the challenges faced when tr...
Comparing four major organizational cultures and the challenges faced when tr...Comparing four major organizational cultures and the challenges faced when tr...
Comparing four major organizational cultures and the challenges faced when tr...
 
Obstacles to effective knowledge elicitation
Obstacles to effective knowledge elicitationObstacles to effective knowledge elicitation
Obstacles to effective knowledge elicitation
 
Viewers locations in the USA
Viewers locations in the USAViewers locations in the USA
Viewers locations in the USA
 
Viewers locations outside the USA
Viewers locations outside the USAViewers locations outside the USA
Viewers locations outside the USA
 
Framework for assessing business analysts situational awareness
Framework for assessing business analysts situational awarenessFramework for assessing business analysts situational awareness
Framework for assessing business analysts situational awareness
 
The dynamics of cohesive and inconsistent project requirements and how they i...
The dynamics of cohesive and inconsistent project requirements and how they i...The dynamics of cohesive and inconsistent project requirements and how they i...
The dynamics of cohesive and inconsistent project requirements and how they i...
 
Creating queuing system simulations with enterprise architect sysml parametri...
Creating queuing system simulations with enterprise architect sysml parametri...Creating queuing system simulations with enterprise architect sysml parametri...
Creating queuing system simulations with enterprise architect sysml parametri...
 
Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...
Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...
Agile scope creep and the Golden Ratio – Balancing Project Flexibility and Co...
 
The dynamic interaction of passed and failed requirements during software tes...
The dynamic interaction of passed and failed requirements during software tes...The dynamic interaction of passed and failed requirements during software tes...
The dynamic interaction of passed and failed requirements during software tes...
 
M theory for business analysts - 11 dimensions of empowerment
M theory for business analysts - 11 dimensions of empowermentM theory for business analysts - 11 dimensions of empowerment
M theory for business analysts - 11 dimensions of empowerment
 
Effective Listening - a cornerstone of effective business analysis
Effective Listening - a cornerstone of effective business analysisEffective Listening - a cornerstone of effective business analysis
Effective Listening - a cornerstone of effective business analysis
 
About the benefits and pitfalls of relying on analytical methods
About the benefits and pitfalls of relying on analytical methodsAbout the benefits and pitfalls of relying on analytical methods
About the benefits and pitfalls of relying on analytical methods
 
Deductive, inductive, and abductive reasoning and their application in trans...
Deductive, inductive, and abductive reasoning and their application in  trans...Deductive, inductive, and abductive reasoning and their application in  trans...
Deductive, inductive, and abductive reasoning and their application in trans...
 
34,000 delicious Food and Beverage combinations for your holidays!
34,000 delicious Food and Beverage combinations for your holidays!34,000 delicious Food and Beverage combinations for your holidays!
34,000 delicious Food and Beverage combinations for your holidays!
 
Business analysis compass mapping to the iiba babok v2
Business analysis compass mapping to the iiba babok v2Business analysis compass mapping to the iiba babok v2
Business analysis compass mapping to the iiba babok v2
 
Business analysis and business framework driven projects - Example of the Mic...
Business analysis and business framework driven projects - Example of the Mic...Business analysis and business framework driven projects - Example of the Mic...
Business analysis and business framework driven projects - Example of the Mic...
 
Business requirements what versus how
Business requirements what versus howBusiness requirements what versus how
Business requirements what versus how
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

Balancing software project drivers a rational quantitative approach

  • 1. Page 1 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting Balancing Software Project Drivers - A Rational Quantitative Approach
  • 2. Page 2 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting Introduction The increasing role of mission critical software products and a highly competitive software market leaves little room for poorly managed software projects with unclear development processes [Yourdon, 1997]. Decision Support Systems (DSS) are valuable tools that can help software project managers model their decision problems. A DSS can also provide great value in assessing the potential impact of alternative course of actions [Sage, 1991]. From a global perspective on software projects, Grady Booch [1998] defines several “Artifacts” as being byproducts of development processes or aids to development processes. These artifacts are classified according to their principle users or according to the clients that they serve: the development team itself, end users, and software management teams. The development team artifacts are: The software’s architecture Design specifications Code The end users’ artifacts are: The software requirements Data i.e. raw information that may be used within or across applications inside the end users’ organization Human interfaces i.e. general look and feel of a family of programs The software project management team artifacts are: Estimates (costs, development time, quality level) Project plans (staffing and scheduling ) Documentation The Decision Support System (DSS) presented in this document is a tool that facilitates the definition and production of project estimates and project plans focused on the design and implementation phases of the software development life cycle. Booch also suggests that every well-define process has four roles: Provide guidance as to the order of a team’s activities
  • 3. Page 3 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting Specify what artifacts should be developed Direct the tasks of individual developers and the team as a whole Offer criteria for monitoring and measuring the project’s products and activities He then respectively relates these four roles to the purpose, products, activities, and measures of goodness of each phase of a software development life cycle. The DSS presented in this document is a tool that improves the effectiveness of the decision making process that results in estimating, planning, and adapting: the products (software architecture, design specifications and code ), the activities (designing architecture, defining design specifications, and producing code) and the measures of goodness (number of known requirements met, degree of resilience to new requirements, and degree of reusability) of the design and implementation phases of a software development life cycle. 1-System Scope The general architecture of the DSS is presented in figure 1. It contains the following subsystems: User Interface that permits the dialog between the DSS and its users. Database that provides persistent storage of the data manipulated by the DSS. ModelBase that is the representation of the mathematical models used by the DSS. Database Management System. Modelbase Management System. Management Software that integrates the communications among the User Interface, the Database Management System, and the ModelBase Management System.
  • 4. Page 4 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting 2-Project Scope To the best of my knowledge, the DSS described in this project does not refer to an existing system utilized by a commercial or government software development organization. Furthermore, this DSS is not tailored to any specific software development organization. The project findings and results although substantial are kept generic enough to be utilized by an existing organization or become part of the foundation of a new business. Figure 1: DSS High Level Architecture
  • 5. Page 5 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting MODELBASE ANALYSIS 1-Overview 1.1-Single software project management policies Software management teams continuously strive to achieve balance in fulfilling stakeholders’ expectations. Attaining such a balance frequently involves conducting a continuous trade off of the software feature set, cost, schedule, and degree of reusability [Rico 2004]. Taken individually, each one of the figures being traded off has associated with it a specific optimal achievement direction that defines its management policy. They are summarized in the following table: Objective or Management Policy Object Deliver software that has as many requirements met as Software features set possible Do not exceed budgeted costs Software development effort cost Deliver software on schedule Software delivery schedule Produce software with as many reusable features as possible Software degree of reusability. We have related the individual objectives mentioned previously to quantitative expressions that capture their essence. Several software management objectives compete to be totally fulfilled. Software development managers are faced with the challenge of finding the optimal balance of these objectives. A useful approach is to prioritize these objectives according to what the Decision Maker judges as the most important objectives to achieve. Once the objectives have been ranked, the optimal balance of fulfilled objectives can be derived by several techniques. Goal Programming techniques fit well the problem at hand. The achievement function of the goal programming problem expresses the optimal balance in achieving the various stated goals.
  • 6. Page 6 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting 1.2-Multiple related software projects management Beyond managing a single software project, software development management teams have to address management decisions that involve several related successive or concurrent software projects. Here the focus is mainly on the design and implementation phases of successive software products that share to varying degrees commonalties in terms of architecture, detail design specifications, and types of implemented functionalities. The set of related software projects has the following characteristic: each software project covers activities that are initiated by the definition of a specific set of software requirements; they include the production of design artifacts and the implementation and testing of software code prior to being packaged as releasable software product. Two planning approaches that respond to two kinds of planning strategies are presented. Both approaches try to match future project characteristics to development effort capability: The first strategy is to find the kind of software projects that match the current profile of the organization software development capability. The second strategy is to define the organization software development capability that will match a given set of future software projects. 1.3-Model elements A software product development effort conducted by an organization generates two major artifacts: Design Specifications (Software Architecture and Detail Design Specifications) Software Code. We define three types of software development efforts for the production of design specifications and the implementation of software Code: Efforts that require “no real effort” (indexed O), Efforts that produced partially or totally reusable features (indexed N), Efforts that produced non-reusable features (indexed W). Software Architects and software abstractionists are most often in charge of producing the software architecture and design specifications while Application Engineers are responsible for implementing the software Code [Grady Booch, 1998].
  • 7. Page 7 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting Compared to the production of non-reusable features, the production of reusable features requires more experience and more advanced skills from the team assigned to it. Therefore, there is a high probability that team members assigned to the production of reusable features will sell their experience and skills at a higher price than those assigned to the production of non-reusable features. Our discussion introduces the design of the software architecture as a major driver for the remaining detail design and code implementation activities [Rosenberg, Stephens, Collins-Cope; 2005]. Reusable features of the software as well as features of the software that were produced with little or no efforts are also introduced as having a strategic value in terms of custom development time saving. The use and production of these types of features relate to Walker Royce’s [1998] component-based development that defines a component as “a cohesive set of preexisting lines of code, either in source or executable format, with a defined interface and behavior”. Our model uses ratios that define the mean rate at which design specifications are produced and the mean rate at which software code is implemented. The values of these rates depend on various factors such as: Skill level of the development team, Size of the development team, Development tools, Development methodology or paradigm, These factors strongly vary from one organization to the next. Our model also includes development cost figures that relate to the 3 types of development efforts previously defined [Bohem and Papaccio, 1988]. Cost figures are related to the production rates previously discussed, the mean time required for producing design specifications, and the mean time required for implementing software code. These cost figures also strongly depend on the: Skill level of the development team, Size of the development team, Development tools, Development methodology or paradigm, Once again, these factors will likely vary from one organization to the next. The degree to which software features can be reused to develop multiple software products depends mainly on: The similarity between the initial software and the other ones in terms of problem domain, requirements set, programming language, notations, machine architecture, development tool, and standards.
  • 8. Page 8 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting The actual occurrence of identical software components across several projects. Reusable software components could be source code libraries or software design frameworks with multiple classes, interfaces, or functions. 2-Model Details 2.1-Single software project management policies Software Feature Set The software feature set needs to be complete in order to meet the software requirements. But it is a moving target since several requirements are at first unknown and are discovered only during the development phase. Software development effort cost The software cost needs to be minimized and needs to be lower than a given budgeted cost. As often noticed, several software projects are above expected cost therefore the actual incurred cost needs to be as close as possible to the budgeted cost if it exceeds it. Software delivery schedule Any planned deadline of a software release needs ideally to be exactly met. Software projects are known to be delivered late therefore the actual incurred development time needs to be as close as possible to the planned time if it exceeds it. Software degree of reusability With respect to the two sets of development efforts (specifying Architecture/Design and Implementing Code) software development teams need to yield the best balance of skills and size that allows the completion of the software within the planned schedule and at the budgeted cost while taking advantage of as many reusable software components as possible. 2.2-Multiple related software projects management policies Related projects could be about different software products or they could be about several releases or versions of a same software product. The analysis approach that is presented in this section tries to offer a generic enough framework that applies to both types of software products.
  • 9. Page 9 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting In the case of successive releases of the same software product, the most recent set of software requirements may vary due to the following reasons: in response to feedback from users who expect more or different software features. in response to the discovery by the development team of major overseen software requirements. In the case of different successive software products, a new set of software requirements is usually determine in response to the identification of new markets to conquer. 2.3-Further definition of development efforts We are postulating that a software product development effort conducted by an organization generates 2 major artifacts: a set of design specifications and a set of implemented software code. Any design specification or implemented software code can be decomposed into 3 distinct subsets: The first subset is characterized by the fact that its production requires little or no consumption of development efforts in order to become part of the software product; it is either directly taken from a previous software development effort within the same organization or it is bought from a third party vendor. The second subset is characterized by the fact that its production is the result of a new development effort conducted within the organization and it has the properties of being totally or partially reusable for other software development efforts. The third subset is characterized by the fact that it is also the result of a new development effort but it is very unlikely to be reused for another software development effort. Let introduce the following convention: The software is represented as a first set of D design specifications and a second set of C implemented software code. O Index represents the first subset of the software that does not require new development efforts. N Index represents the second subset of the software that requires new development efforts and is partially or totally reusable. W Index represents the third subset of the software that requires new development efforts and is not reusable. The following variables are introduced: PDO and PCO: are respectively the mean proportions of total software Design Specifications and Software Code that do not require new development efforts.
  • 10. Page 10 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting PDN and PCN: are respectively the mean proportions of total Software Design Specifications and Software Code that require new development efforts and that are partially or totally reusable. PDW and PCW: are respectively the mean proportions of total Software Design Specifications and Software Code that require new development efforts and that are not reusable. With the following relation holding: PDO+PDN+PDW = 1 [E1] PCO+PCN+PCW = 1 [E2] Let D represent the total amount of Design Specifications. D’s unit could be for example the number of classes and interfaces or any other metric that is be suitable to size the set of Design Specifications. It is possible to derive the following variables from (E1): DO = PDO x D : the mean amount of design specifications of the software that do not require new development efforts. DN = PDN x D : the mean amount of design specifications of the software that require new development efforts and that are totally or partially reusable. DW = PDW x D : the mean amount of design specifications of the software that require new development efforts and that are not reusable. Let C represent a measure of the total size of implemented Software Code. C’s unit could be for example in Software Lines of Code or any other metric that is appropriate to size the set of implemented Software Code. By analogy, the following variables can be identified for the software code: CO = PCO x C : the mean amount of Software Code that do not require new development efforts. CN = PCN x C : the mean amount of Software Code that requires new development efforts and that is totally or partially reusable. CW = PCW x C : the mean amount of Software Code that requires new development efforts and that is not reusable. The magnitudes of DO and CO are especially useful to the development effort since they require no development time. DN and CN represent a substantial development efforts “investment” for the current software project but they have the potential to fully or partially become the “DO” and “CO” of other software development efforts. DW and CW are “one time use” development efforts with no or very little chance of ever being reuse in another software development projects. In summary, three types of software development efforts have been defined for the production of design specifications and the implementation of software code: those that require “no real effort” (indexed O),
  • 11. Page 11 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting those that produced partially or totally reusable features (indexed N), those that produced non-reusable features (indexed W). 2.4-Allocation of resources to development efforts Software development efforts can be viewed as the production of design specifications and the implementation of software code. From the previous paragraph, we have defined three groups of such efforts among which only two really require new consumption of staff resources in order to take place: the production of reusable features and the production of non-reusable features. Software architects and software abstractionists are most often in charge of producing the software architecture and design specifications. Application engineers are responsible for the implementation of software code [Grady Booch, 1998]. According to our definition of software effort types, both the production of design specifications and the implementation of software code need to cover two activities: the first one resulting in the production of reusable features and the second one resulting in the production of non- reusable features. Compared to the production of non-reusable features, the production of reusable features requires more experience and more advanced skills from the team assigned to it. Therefore, there is a high probability that team members assigned to the production of reusable features sell their experience and skills at a higher price than those assigned to the production of non-reusable features. In addition, software architects and software abstractionists cost more than application engineers but they are in much lesser number than the application engineers in most software development projects. 2.5- Relationship with 2 major principles of modern software development management. In 1998 Walker Royce presents 10 principles of modern software management. The first one and the third one are quoted next. First -Base the process on an architecture-first approach. Third -Transition design methods to emphasize component-based development. Our discussion has introduced the design of the software architecture as a major driver of both the remaining design and implementation activities. Reusable features of the software as well as features of the software that were produced with little or no efforts were also presented as having a strategic value in terms of custom development time saving. The use and production of these types of features relate to Royce’s component-based development that defines a component as “a cohesive set of preexisting lines of code, either in source or executable format, with a defined interface and behavior”.
  • 12. Page 12 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting 2.6- Rates of production In this section, we are interested in establishing a relationship between time and the variables expressing the mean amount of design specifications and the mean amount of implemented software code. We introduce the following variables: TDN: mean time required to produce DN amount of design specifications TDW: mean time required to produce DW amount of design specifications TDO: mean time required to produce DO amount of design specifications. TDO by definition is equal to 0 units of time TCN: mean time required to implement CN amount of software code TCW: mean time required to implement CW amount of software code TCO: mean time required to implement CO amount of software code. TCO by definition is equal to 0 units of time. The following ratios define the mean rate at which design specifications are produced and the mean rate at which software code is implemented. CDN = DN/TDN : mean production rate of DN amount of design specifications. CDW = DW/TDW : mean production rate of DW amount of design specifications. CCN = CN/TCN : mean implementation rate of CN amount of software code. CCW = CW/TCW : mean implementation rate of CW amount of software code. The following relations can be derived: DN = CDN x TDN [E10]: the mean amount of design specifications that require new development efforts and that are totally or partially reusable. DW = CDW x TDW [E11]: the mean amount of design specifications that require new development efforts and that are not reusable. CN = CCN x TCN [E12]: the mean amount of Software Code that requires new development efforts and that is totally or partially reusable. CW = CCW x TCW [E13]: the mean amount of Software Code that requires new development efforts and that is not reusable. The values of the above variables depend on various factors such as: the skill level of the development team, the size of the development team,
  • 13. Page 13 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting the development tools, the development methodology or paradigm, These factors strongly vary from one organization or project to the next. 2.7- Development efforts cost figures An important aspect of project management responsibilities is planning and measuring cost expenditures throughout the project life cycle. Such an activity is performed differently from one organization to the next therefore it may take many forms. In this project, development efforts have been classified in three generic groups that remain valid regardless of organization specific practices and policies. More specifically cost figures are related to both the production rates previously introduced and the mean time required to produce design specifications and the mean time required to implement software code. The following variables are introduced: MDN: mean cost of producing one unit of design specifications. MDW: mean cost of producing one unit of design specifications. MCN: mean cost of implementing one unit of software code. MCW: mean cost of implementing one unit of software code. The cost of producing DN amount of design specifications is: MDN x DN = MDN x CDN x TDN [E14] The cost of producing DW amount of design specifications is: MDW x DW = MDW x CDW x TDW [E15] The cost of implementing CN amount of software code is: MCN x CN = MCN x CCN x TCN [E16] The cost of implementing CW amount of software code is: MCW x CW = MCW x CCW x TCW [E17] The values of the above variables depend on various factors such as: the skill level of the development team, the size of the development team, the development tools,
  • 14. Page 14 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting the development methodology or paradigm, These factors strongly vary from one organization or project to the next. 2.8- Development effort reuse As mentioned before, among the three types of development efforts, one does not really require any development effort. It is expressed by the variables DO and CO. The DO design specifications and CO implemented software code are either directly taken from a previous software development effort within the same organization or are bought from a third party vendor. In this section we focus on the process by which DO and CO are taken from a previous software development effort conducted by the same organization. Using the three types of development efforts mentioned in this project, the reusable portion of any software can be expressed as follow: KDO x DO for reuse of the “non-effort consuming” part of design specifications. KCO x CO for reuse of the “non-effort consuming” part of implemented software code. KDN x DN for reuse of the “design for reuse” part of design specifications. KCN x CN for reuse of the “implemented for reuse” part of implemented software code. Where KDO, KCO, KDN and KCN are adjustment factors that express what fraction of the software project under consideration is transferred to another given software project. KDO, KCO, KDN and KCN are by definition between 0 % and 100%. The magnitudes of KDO, KCO, KDN and KCN depend mainly on: The similarity between the initial software and the new one to develop in terms of problem domain, requirements set, programming language, notations, machine architecture, development tool, and standards. The effective reuse of software components in terms of occurrences of identical components across several projects. Reusable software components could be source code libraries or software design frameworks with multiple classes, interfaces, or functions. The important fact is that whatever the sources of reuse, the reused components become for the current project its set of “Non-effort consuming” design specifications and implemented software code. The more “non-effort consuming” design specifications and implemented software code used, the less “effort-consuming” design specifications and implemented software code needed to complete the project. The ultimate outcome yields a substantial reduction of the software custom development time and effort.
  • 15. Page 15 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting 3- Using software development effort models in managerial decisions Software development management teams would like to find ways to answer the following questions regarding given software projects: What amount of software features will likely be produced? What amount of reusable features will likely be produced? What amount of non-reusable features will likely be produced? How long will it take to complete the production of the software features? How much time needs to be dedicated the production of reusable features? How much time needs to be dedicated to the production of non-reusable features? How much will the development effort cost? What will be the cost of the reusable features produced? What will be the cost of the non-reusable features produced? While knowing the following development capability parameters: Mean cost of producing 1 unit of reusable design specification Mean cost of producing 1 unit of non-reusable design specification Mean cost of implementing 1 unit of reusable software code Mean cost of implementing 1 unit of non-reusable software code Mean production rate of 1 unit of reusable design specification Mean production rate of 1 unit of non-reusable design specification Mean implementation rate of 1 unit of reusable software code Mean implementation rate of 1 unit of non-reusable software code And knowing the following project constraints: The expected amount of design specifications The expected amount of implemented software code The expected development effort budgeted cost The planned time for producing design specifications The planned time for implementing software code
  • 16. Page 16 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting 3.1 Optimal single software project management policies. In this section we will relate the individual software policies mentioned previously under section 2.1 to quantitative expressions that capture their essence. Software Feature Set The software feature set consists of D amount of design specifications and C amount of implemented software code. Using the three types of development efforts, the following relations are presented: D = DO + DN + DW[E20] C = CO + CN + CW[E21] By substituting [E10] to [E13] in [E20] and [E21]: D = DO + (CDN x TDN) + (CDW x TDW) [E30.1] C = CO + (CCN x TCN) + (CCW x TCW) [E30.2] Software development effort cost Development effort costs are incurred as design specifications are produced and software code is implemented. The development cost budgeted figures are MD for design specifications production and MC for software code implementation. The following relations translate the policy that relates budgeted costs to incurred costs: MD > (MDN x DN) + (MDW x DW) Which is the same as: MD > (MDN x CDN x TDN) + (MDW x CDW x TDW) [E31.1] MC > (MCN x CN) + (MCW x CW) Which is the same as: MC > (MCN x CCN x TCN) + (MCW x CCW x TCW) [E31.2]
  • 17. Page 17 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting Software delivery schedule Let TD and TC be respectively the planned time for producing design specifications and the planned time for implementing software code. The actual time spent for the production of design specifications and the actual time spent for the implementation of software code must be equal to the planned development times. The following equations capture these relations: TD = TDN + TDW[E32.1] TC = TCN + TCW[E32.2] Software degree of reusability From a global perspective, the development team is composed of software architects and software abstractionists who are in charge of producing the software architecture and detail design specifications. Application engineers are responsible for implementing software code. Within each one of these groups two skills level are defined. The first one is capable of producing reusable features and the second one is mainly capable of producing non-reusable features. The strategic interest of reusable features has been presented several times in this presentation. It is then desirable that as many as possible software features exhibit this property. This fact can be translated by the following equations: TDN > 0 [E33.1] and CDN > 0[E34.1] TCN > 0 [E33.2] and CCN > 0[E34.2] 3.2 Optimal set of single software project management policies. From the previous discussion, it appears that several software management objectives compete to be totally fulfilled. Software development managers are faced with the challenge of finding the optimal balance of these objectives. A useful approach is to prioritize these objectives according to what the Decision Maker judges as the most important objectives to achieve. These objectives are listed below with no implications about their relative importance.
  • 18. Page 18 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting Objective or Management Policy Object Deliver software that has as many requirements met as Software features set possible Do not exceed budgeted costs Software development effort cost Deliver software on schedule Software delivery schedule Produce software with as many reusable features as possible Software degree of reusability. Once the objectives have been ranked, the optimal balance of fulfilled objectives can be derived by several techniques. Next we present how Goal Programming fits well the problem at hand. Two similar goal programming problems can be formulated: the first one is about design specifications while the other one is about implemented software code. The formulation that follows addresses implemented software code. Optimize: the achievement of ranked project development objectives Given: the following aspiration levels:  C – CO : Amount of software code to implement  MC : Software code implementation budgeted cost  TC : Software code implementation planned time And given:the following production parameters:  CCN : Mean production rate of reusable software code  CCW : Mean production rate of non-reusable software code  MCN : Mean cost of producing one unit of reusable software code  MCW : Mean cost of producing one unit of non-reusable software code The following relations constitute the Goal Programming constraints: (CCN x TCN) + (CCW x TCW) = C - CO [E30.2] (MCN x CCN x TCN) + (MCW x CCW x TCW) < MC [E31.2] TCN + TCW = TC [E32.2] TCN > 0 [E33.2]
  • 19. Page 19 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting The decision variables in the above relations are TCN and TCW. Each relation has an aspiration level and a direction of preference that are summarized below with additional goal programming deviation variables. Right Hand Side Deviation Variables Aspiration Achievement function Goal Level (CCN x TCN) + (CCW x TCW) dC-, dC+ C - CO minimize deviation: (dC- + dC+) (MCN x CCN x TCN) + (MCW x CCW x TCW) dM-, dM+ MC minimize over achievement :(dM+) TCN + TCW dT-, dT+ TC minimize deviation : (dT- + dT+) TCN dN-, dN+ 0 minimize under achievement: (dN-) The achievement function of the goal programming problem expresses the optimal balance in achieving the various stated goals. It can be expressed as any of the following: Minimize the weighted sum of the goal deviations where weights are representative of priorities among the objectives. Minimize some function of the goal deviations. Minimize the worst deviation of the goal deviations. Lexicographic minimization of an ordered set of goal deviations. 3.3 Post optimal analysis of a set of single software project management The solution to the goal programming problem described previously provides the following information with respect to the priorities defined by the decision maker: How long it takes to complete the production of the software features How much time is dedicated the production of reusable software features How much time is dedicated to the production of non-reusable software features What amount of software features have been produced What amount of reusable software features has been produced What amount of non-reusable software features has been produced How much it costs to produce the software features What is the total cost of the reusable software features What is the total cost of the non-reusable software features
  • 20. Page 20 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting Post optimality analysis is useful to respond to the following questions: How do modifications in the stated priorities influence the optimal solution proposed? This question addresses concerns such as: if cost becomes the biggest priority instead of feature set, is the solution still valid? Within what range can the aspiration levels on desired feature set, cost, and schedule vary without making proposed solution non- feasible? 3.4 Multiple related software projects management. Next, is presented an analysis procedure that allows planning a series of successive software projects. The three types of development efforts (non-effort consuming, effort consuming with reusable property, effort consuming with non-reusable property) and the 2 types development activities (producing design specifications, implementing software code) previously presented are taken into account. For each project under consideration, the following software development effort parameters are defined: D: the amount of design specifications C: the amount of software code to implement TD: the planned time for producing design specifications TC: the planned time for implementing software code TDN: the mean time needed to produce DN amount of reusable design specifications TDW: the mean time needed to produce DW amount of non reusable design specifications TCN: the mean time needed to implement CN amount of reusable software code TCW: the mean time needed to implement CW amount of non-reusable software code M: the development effort budgeted cost MD : budgeted cost to produce D amount of design specifications MC : budgeted cost to implement C amount of software code MDN : mean cost of producing 1 unit of reusable design specification MDW : mean cost of producing 1 unit non-reusable design specification MCN : mean cost of implementing 1 unit of reusable software code
  • 21. Page 21 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting MCW: mean cost of implementing 1 unit of non-reusable software code CDN: the mean production rate of 1 unit of reusable design specification CDW: the mean production rate of 1 unit of non-reusable design specification CCN: the mean implementation rate of 1unit of reusable software code CCW: the mean implementation rate of 1unit of non-reusable software code KDN: the reusability degree of DN amount of reusable design specifications KCN: the reusability degree of CN amount of reusable software code The strategies presented address a set of N successive related software projects. The organization objective is to develop the Nth project with the following forecasted characteristics: Dn amount of design specifications Cn amount of software code TDn planned time for producing design specifications TCn planned time for implementing software code Mn budgeted development cost PD0n proportion of non-effort consuming design specifications PC0n proportion of non-effort consuming implemented software code The strategic variables are PD0n and PC0n since they reflect the portion of the software project that does not need to consume development efforts therefore they are strong indicators of development effort cost savings. A natural procedure is to gradually increase PD0 and PF0 from one project to the next by making sure that each software produces features that possess an effective degree of reusability for subsequent projects. Next we present two planning approaches that respond to two kinds of planning strategies. Both approaches try to match future project characteristics to development effort capability. 3.4.1 First approach –marketing strategy
  • 22. Page 22 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting The first strategy is a marketing one and it consists of finding the kind of software projects that match the current profile of the organization software development capability. This approach can be modeled as follow using the software development effort parameters previously introduced: Given the following characteristics of the Nth project: Dn amount of design specifications Cn amount of implemented software code TDn planned time for producing Dn amount of design specifications TCn planned time for implementing Cn amount of software code Mn budgeted development cost PD0n proportion of non-effort consuming design specifications PC0n proportion of non-effort consuming implemented software code And given the forecasted values for each one of the (N-1) projects: MDN : mean cost of producing 1unit of reusable design specification MDW : mean cost of producing 1 unit of non-reusable design specification MCN : mean cost of implementing 1unit of reusable software code MCW: mean cost of implementing 1unit of non-reusable software code CDN: the mean production rate of 1 unit of reusable design specification CDW: the mean production rate of 1 unit if non-reusable design specification CCN: the mean implementation rate of 1unit of reusable software code CCW: the mean implementation rate of 1 unit if non-reusable software code Find the values of the following parameters for each one of the (N-1) projects: -D: the amount of design specifications -C: the amount of software code to implement -M: the development effort budgeted cost -TD: the planned time for producing design specifications -TC: the planned time for implementing software code -KDN: the reusability degree of DN amount of reusable design specifications -KCN: the reusability degree of CCN amount of reusable implemented software code.
  • 23. Page 23 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting 3.4.2 Second approach – workforce development strategy The second strategy is a workforce development one that defines the organization software development capability that will match a given set of future software projects. Given the following characteristics of the Nth project: Dn amount of design specifications Cn amount of implemented software code TDn planned time for producing Dn amount of design specifications TCn planned time for implementing Cn amount of software code Mn budgeted development cost PD0n proportion of non-effort consuming design specifications PC0n proportion of non-effort consuming implemented software code And the forested values for each one of the (N-1) projects: D: amount of design specifications C: amount of software code to implement M: the development effort budgeted cost TD: the planned time for producing design specifications TC: the planned time for implementing software code Find the values of the following parameters for each one of the (N-1) projects: -MDN: mean cost of producing 1unit of reusable design specification -MDW: mean cost of producing 1unit of non-reusable design specification -MCN: mean cost of implementing 1 unit of reusable software code -MCW: mean cost of implementing 1 unit of non-reusable software code -CDN: the mean production rate of 1unit of reusable design specification -CDW: the mean production rate of 1unit of non-reusable design specification -CCN: the mean implementation rate of 1unit if reusable software code -CCW: the mean implementation rate of 1unit of non-reusable software code
  • 24. Page 24 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting -KDN: the reusability degree of DN amount of reusable design specifications -KCN: the reusability degree of CN amount of reusable software code
  • 25. Page 25 of 25 Copyright © 2010-2013 Pragmatic Cohesion Consulting References: -Bohem B.W. and Papaccio P.N. 1988, Understanding and controlling software cost, IEEE Transactions on Software Engineering 14(10) -Booch G. (1998), Object Solutions: Managing the Object-Oriented Project, Addison-Wesley, Menlo Park, CA -Rico D.F (2004), ROI of software process improvement: Metrics for project managers and software engineers, J. Ross, Boca Raton, FL. -Rosenberg D., Stephens M., and Collins-Cope M. (2005), Agile Development with ICONIX Process-People, Process and Pragmatism, Apress. -Royce W. (1998), Software Project Management a Unified Framework, Reading, MA -Sage A. P. (1991) Decision Support Systems Engineering. Wiley Series in Systems Engineering, New York. -Yourdon E. (1997), Death march: The complete software developer’s guide to surviving “Mission Impossible” projects, Prentice Hall, Upper Saddle River, NJ.