Software Engineering Body of Knowledge (v3) (2014) (811503), страница 58
Текст из файла (страница 58)
Maybe Proposal Y can only becarried out if Proposal X is also carried out. Ormaybe Proposal P cannot be carried out if Proposal Q is carried out, nor could Q be carried outif P were. Choices are much easier to make whenthere are mutually exclusive paths—for example,either A or B or C or whatever is chosen. In preparing decisions, it is recommended to turn anygiven set of proposals, along with their variousinterrelationships, into a set of mutually exclusive alternatives. The choice can then be madeamong these alternatives.1.6. Valuation[1*, c5, c8]In an abstract sense, the decision-making process—be it financial decision making or other—is about maximizing value. The alternative thatmaximizes total value should always be chosen.A financial basis for value-based comparison iscomparing two or more cash flows.
Several basesof comparison are available, including• present worth• future worth• annual equivalent• internal rate of return• (discounted) payback period.Based on the time-value of money, two or morecash flows are equivalent only when they equalthe same amount of money at a common pointin time. Comparing cash flows only makes sensewhen they are expressed in the same time frame.Note that value can’t always be expressed interms of money.
For example, whether an itemis a brand name or not can significantly affectits perceived value. Relevant values that can’tbe expressed in terms of money still need to beexpressed in similar terms so that they can beevaluated objectively.12-6 SWEBOK® Guide V3.01.7. Inflation[1*, c13]Inflation describes long-term trends in prices.Inflation means that the same things cost morethan they did before. If the planning horizon ofa business decision is longer than a few years, orif the inflation rate is over a couple of percentagepoints annually, it can cause noticeable changesin the value of a proposal.
The present time valuetherefore needs to be adjusted for inflation ratesand also for exchange rate fluctuations.1.8. Depreciation[1*, c14]Depreciation involves spreading the cost of atangible asset across a number of time periods;it is used to determine how investments in capitalized assets are charged against income overseveral years. Depreciation is an important partof determining after-tax cash flow, which is critical for accurately addressing profit and taxes. Ifa software product is to be sold after the development costs are incurred, those costs should becapitalized and depreciated over subsequent timeperiods. The depreciation expense for each timeperiod is the capitalized cost of developing thesoftware divided across the number of periodsin which the software will be sold. A softwareproject proposal may be compared to other software and nonsoftware proposals or to alternativeinvestment options, so it is important to determine how those other proposals would be depreciated and how profits would be estimated.1.9. Taxation[1*, c16, c17]Governments charge taxes in order to financeexpenses that society needs but that no single organization would invest in.
Companies have to payincome taxes, which can take a substantial portionof a corporation’s gross profit. A decision analysisthat does not account for taxation can lead to thewrong choice. A proposal with a high pretax profitwon’t look nearly as profitable in posttax terms.Not accounting for taxation can also lead to unrealistically high expectations about how profitable aproposed product might be.1.10. Time-Value of Money[1*, c5, c11]One of the most fundamental concepts infinance—and therefore, in business decisions—is that money has time-value: its value changesover time. A specific amount of money right nowalmost always has a different value than the sameamount of money at some other time.
This concept has been around since the earliest recordedhuman history and is commonly known as timevalue. In order to compare proposals or portfolio elements, they should be normalized in cost,value, and risk to the net present value. Currencyexchange variations over time need to be takeninto account based on historical data. This is particularly important in cross-border developmentsof all kinds.1.11. Efficiency[2*, c1]Economic efficiency of a process, activity, ortask is the ratio of resources actually consumed toresources expected to be consumed or desired tobe consumed in accomplishing the process, activity, or task.
Efficiency means “doing things right.”An efficient behavior, like an effective behavior,delivers results—but keeps the necessary effort toa minimum. Factors that may affect efficiency insoftware engineering include product complexity, quality requirements, time pressure, processcapability, team distribution, interrupts, featurechurn, tools, and programming language.1.12. Effectiveness[2*, c1]Effectiveness is about having impact. It is therelationship between achieved objectives todefined objectives.
Effectiveness means “doingthe right things.” Effectiveness looks only atwhether defined objectives are reached—not athow they are reached.1.13. Productivity[2*, c23]Productivity is the ratio of output over input froman economic perspective. Output is the valueSoftware Engineering Economics 12-7delivered. Input covers all resources (e.g., effort)spent to generate the output. Productivity combines efficiency and effectiveness from a valueoriented perspective: maximizing productivityis about generating highest value with lowestresource consumption.from managing them individually.”2 Programsare often used to identify and manage differentdeliveries to a single customer or market over atime horizon of several years.2. Life Cycle EconomicsPortfolios are “projects, programs, subportfolios,and operations managed as a group to achievestrategic objectives.”3 Portfolios are used to groupand then manage simultaneously all assets withina business line or organization.
Looking to anentire portfolio makes sure that impacts of decisions are considered, such as resource allocationto a specific project—which means that the sameresources are not available for other projects.2.1. Product[2*, c22] [3*, c6]A product is an economic good (or output) that iscreated in a process that transforms product factors (or inputs) to an output. When sold, a product is a deliverable that creates both a value andan experience for its users. A product can be acombination of systems, solutions, materials,and services delivered internally (e.g., in-houseIT solution) or externally (e.g., software application), either as-is or as a component for anotherproduct (e.g., embedded software).2.2. Project[2*, c22] [3*, c1]A project is “a temporary endeavor undertakento create a unique product, service, or result”.1In software engineering, different project typesare distinguished (e.g., product development,outsourced services, software maintenance, service creation, and so on).
During its life cycle, asoftware product may require many projects. Forexample, during the product conception phase,a project might be conducted to determine thecustomer need and market requirements; duringmaintenance, a project might be conducted toproduce a next version of a product.2.3. ProgramA program is “a group of related projects, subprograms, and program activities managed in acoordinated way to obtain benefits not available1 Project Management Institute, Inc., PMI Lexiconof Project Management Terms, 2012, www.pmi.org/PMBOK-Guide-and-Standards/~/media/Registered/PMI_Lexicon_Final.ashx.2.4. Portfolio2.5. Product Life Cycle[2*, c2] [3*, c2]A software product life cycle (SPLC) includesall activities needed to define, build, operate,maintain, and retire a software product or serviceand its variants. The SPLC activities of “operate,” “maintain,” and “retire” typically occur ina much longer time frame than initial softwaredevelopment (the software development lifecycle—SDLC—see Software Life Cycle Models in the Software Engineering Process KA).Also the operate-maintain-retire activities of anSPLC typically consume more total effort andother resources than the SDLC activities (seeMajority of Maintenance Costs in the SoftwareMaintenance KA).
The value contributed by asoftware product or associated services can beobjectively determined during the “operate andmaintain” time frame. Software engineering economics should be concerned with all SPLC activities, including the activities after initial productrelease.2.6. Project Life Cycle[2*, c2] [3*, c2]Project life cycle activities typically involve fiveprocess groups—Initiating, Planning, Executing, Monitoring and Controlling, and Closing [4]2 3 Ibid.Ibid.12-8 SWEBOK® Guide V3.0(see the Software Engineering Management KA).The activities within a software project life cycleare often interleaved, overlapped, and iteratedin various ways [3*, c2] [5] (see the SoftwareEngineering Process KA).
For instance, agileproduct development within an SPLC involvesmultiple iterations that produce increments ofdeliverable software. An SPLC should includerisk management and synchronization with different suppliers (if any), while providing auditable decision-making information (e.g., complying with product liability needs or governanceregulations). The software project life cycle andthe software product life cycle are interrelated; anSPLC may include several SDLCs.2.7. Proposals[1*, c3]Making a business decision begins with thenotion of a proposal. Proposals relate to reachinga business objective—at the project, product, orportfolio level.