Software Engineering Body of Knowledge (v3) (2014) (811503), страница 61
Текст из файла (страница 61)
The “good enough”principle relates marginal value to marginal costand provides guidance to determine criteria whena deliverable is “good enough” to be delivered.These criteria depend on business objectives andon prioritization of different alternatives, such asranking software requirements, measurable quality attributes, or relating schedule to product content and cost.The RACE principle (reduce accidents andcontrol essence) is a popular rule towards goodenough software. Accidents imply unnecessaryoverheads such as gold-plating and rework dueto late defect removal or too many requirementschanges. Essence is what customers pay for. Software engineering economics provides the mechanisms to define criteria that determine when adeliverable is “good enough” to be delivered.It also highlights that both words are relevant:“good” and “enough.” Insufficient quality orinsufficient quantity is not good enough.Agile methods are examples of “good enough”that try to optimize value by reducing the overhead of delayed rework and the gold plating thatSoftware Engineering Economics 12-15results from adding features that have low marginal value for the users (see Agile Methods inthe Software Engineering Models and MethodsKA and Software Life Cycle Models in the Software Engineering Process KA).
In agile methods, detailed planning and lengthy developmentphases are replaced by incremental planning andfrequent delivery of small increments of a deliverable product that is tested and evaluated by userrepresentatives.5.2. Friction-Free EconomyEconomic friction is everything that keeps markets from having perfect competition.
It involvesdistance, cost of delivery, restrictive regulations,and/or imperfect information. In high-frictionmarkets, customers don’t have many suppliersfrom which to choose. Having been in a businessfor a while or owning a store in a good locationdetermines the economic position. It’s hard fornew competitors to start business and compete.The marketplace moves slowly and predictably.Friction-free markets are just the reverse. Newcompetitors emerge and customers are quick torespond. The marketplace is anything but predictable.
Theoretically, software and IT are frictionfree. New companies can easily create productsand often do so at a much lower cost than established companies, since they need not considerany legacies. Marketing and sales can be donevia the Internet and social networks, and basically free distribution mechanisms can enable aramp up to a global business. Software engineering economics aims to provide foundations tojudge how a software business performs and howfriction-free a market actually is.
For instance,competition among software app developers isinhibited when apps must be sold through an appstore and comply with that store’s rules.5.3. EcosystemsAn ecosystem is an environment consisting of allthe mutually dependent stakeholders, businessunits, and companies working in a particular area.In a typical ecosystem, there are producers andconsumers, where the consumers add value tothe consumed resources. Note that a consumer isnot the end user but an organization that uses theproduct to enhance it. A software ecosystem is,for instance, a supplier of an application workingwith companies doing the installation and support in different regions.
Neither one could existwithout the other. Ecosystems can be permanentor temporary. Software engineering economicsprovides the mechanisms to evaluate alternativesin establishing or extending an ecosystem—forinstance, assessing whether to work with a specific distributor or have the distribution done by acompany doing service in an area.5.4. Offshoring and OutsourcingOffshoring means executing a business activitybeyond sales and marketing outside the homecountry of an enterprise.
Enterprises typicallyeither have their offshoring branches in lowcost countries or they ask specialized companiesabroad to execute the respective activity. Offshoring should therefore not be confused with outsourcing. Offshoring within a company is calledcaptive offshoring. Outsourcing is the result-oriented relationship with a supplier who executesbusiness activities for an enterprise when, traditionally, those activities were executed insidethe enterprise.
Outsourcing is site-independent.The supplier can reside in the neighborhood ofthe enterprise or offshore (outsourced offshoring). Software engineering economics providesthe basic criteria and business tools to evaluatedifferent sourcing mechanisms and control theirperformance. For instance, using an outsourcingsupplier for software development and maintenance might reduce the cost per hour of softwaredevelopment, but increase the number of hoursand capital expenses due to an increased need formonitoring and communication. (For more information on offshoring and outsourcing, see “Outsourcing” in Management Issues in the SoftwareMaintenance KA.)12-16 SWEBOK® Guide V3.01. Software Engineering EconomicsFundamentals1.1. Finance1.2. Accounting1.3. Controlling1.4. Cash Flow1.5. Decision-Making Process1.6. Valuation1.7. Inflation1.8. Depreciation1.9. Taxation1.10. Time-Value of Money1.11. Efficiency1.12. Effectiveness1.13. Productivity2. Life Cycle Economics2.1. Product2.2. Project2.3. Program2.4. Portfolio2.5. Product Life Cycle2.6. Project Life Cycle2.7. Proposals2.8. Investment Decisions2.9. Planning Horizon2.10. Price and Pricing2.11. Cost and Costing2.12. Performance Measurement2.13. Earned Value Management2.14. Termination Decisions2.15. Replacement and Retirement DecisionsFairley 2009[3*]Sommerville 2011[2*]Tockey 2005[1*]MATRIX OF TOPICS VS.
REFERENCE MATERIALc2c15c15c3c2, c4c5, c8c13c14c16, c17c5, c11c1c1c23c22c22c6c1c2c2c2c2c3c4c11c13c15c7, c8c8c11, c12c12c9c9Fairley 2009[3*]Sommerville 2011[2*]Tockey 2005[1*]Software Engineering Economics 12-173. Risk and Uncertainty3.1. Goals, Estimates, and Plans3.2. Estimation Techniques3.3. Addressing Uncertainty3.4. Prioritization3.5. Decisions under Risk3.6. Decisions under Uncertainty4. Economic Analysis Methods4.1. For-Profit Decision Analysis4.2. Minimum Acceptable Rate of Return4.3. Return on Investment4.4. Return on Capital Employed4.5. Cost-Benefit Analysis4.6. Cost-Effectiveness Analysis4.7. Break-Even Analysis4.8. Business Case4.9. Multiple Attribute Evaluation4.10. Optimization Analysis5. Practical Considerations5.1. The “Good Enough” Principle5.2. Friction-Free Economy5.3. Ecosystems5.4. Offshoring and Outsourcingc24c25c10c10c10c18c18c19c3c26c20c21c6c6c6c6c9c912-18 SWEBOK® Guide V3.0FURTHER READINGSREFERENCESA Guide to the Project Management Body ofKnowledge (PMBOK® Guide) [4].[1*] S.
Tockey, Return on Software: Maximizingthe Return on Your Software Investment,Addison-Wesley, 2004.The PMBOK® Guide provides guidelines formanaging individual projects and defines projectmanagement related concepts. It also describesthe project management life cycle and its relatedprocesses, as well as the project life cycle. It isa globally recognized guide for the project management profession.Software Extension to the Guide to the ProjectManagement Body of Knowledge (SWX) [5].SWX provides adaptations and extensions to thegeneric practices of project management documented in the PMBOK® Guide for managingsoftware projects.
The primary contribution ofthis extension to the PMBOK® Guide is description of processes that are applicable for managingadaptive life cycle software projects.[2*] J.H. Allen et al., Software SecurityEngineering: A Guide for ProjectManagers, Addison-Wesley, 2008.[3*] R.E. Fairley, Managing and LeadingSoftware Projects, Wiley-IEEE ComputerSociety Press, 2009.[4] Project Management Institute, A Guideto the Project Management Body ofKnowledge (PMBOK(R) Guide), 5th ed.,Project Management Institute, 2013.[5] Project Management Institute and IEEEComputer Society, Software Extensionto the PMBOK® Guide Fifth Edition, ed:Project Management Institute, 2013.B.W. Boehm, Software Engineering Economics[6].[6] B.W.
Boehm, Software EngineeringEconomics, Prentice-Hall, 1981.This book is the classic reading on softwareengineering economics. It provides an overviewof business thinking in software engineering.Although the examples and figures are dated, itstill is worth reading.[7] C. Ebert and R. Dumke, SoftwareMeasurement, Springer, 2007.C. Ebert and R.
Dumke, Software Measurement[7].This book provides an overview on quantitative methods in software engineering, startingwith measurement theory and proceeding toperformance management and business decisionmaking.D.J. Reifer, Making the Software Business Case:Improvement by the Numbers [8].This book is a classic reading on making a business case in the software and IT businesses.
Manyuseful examples illustrate how the business caseis formulated and quantified.[8] D.J. Reifer, Making the Software BusinessCase: Improvement by the Numbers,Addison Wesley, 2002.CHAPTER 13COMPUTING FOUNDATIONSACRONYMSAOPALUAPIATMB/SCERTCOTSCRUDC/SCSDBMSFPUI/OISAISOISPLANMUXNICOOPOSOSIPCPDAPPPRFIDRAMROMAspect-Oriented ProgrammingArithmetic and Logic UnitApplication ProgrammingInterfaceAsynchronous Transfer ModeBrowser-ServerComputer Emergency ResponseTeamCommercial Off-The-ShelfCreate, Read, Update, DeleteClient-ServerComputer ScienceDatabase Management SystemFloat Point UnitInput and OutputInstruction Set ArchitectureInternational Organization forStandardizationInternet Service ProviderLocal Area NetworkMultiplexerNetwork Interface CardObject-Oriented ProgrammingOperating SystemOpen Systems InterconnectionPersonal ComputerPersonal Digital AssistantPoint-to-Point ProtocolRadio Frequency IdentificationRandom Access MemoryRead Only MemorySCSISQLTCPUDPVPNWANSmall Computer System InterfaceStructured Query LanguageTransport Control ProtocolUser Datagram ProtocolVirtual Private NetworkWide Area NetworkINTRODUCTIONThe scope of the Computing Foundations knowledge area (KA) encompasses the developmentand operational environment in which softwareevolves and executes.