Return on investment ( ROI ) or return on costs ( ROC ) is the ratio between net income (over a period) and investment (costs resulting from an investment of some resources at a point in time). A high ROI means the investment's gains compare favourably to its cost. As a performance measure, ROI is used to evaluate the efficiency of an investment or to compare the efficiencies of several different investments. In economic terms, it is one way of relating profits to capital invested.
41-464: Google I/O , or simply I/O , is an annual developer conference held by Google in Mountain View, California . The name "I/O" is taken from the number googol , with the "I" representing the first digit "1" in a googol and the "O" representing the second digit "0" in the number. The format of the event is similar to Google Developer Day . Software development Software development
82-412: A deadline. Software analysis begins with a requirements analysis to capture the business needs of the software. Challenges for the identification of needs are that current or potential users may have different and incompatible needs, may not understand their own needs, and change their needs during the process of software development. Ultimately, the result of analysis is a detailed specification for
123-429: A portfolio. The investment with the largest ROI is usually prioritized, even though the spread of ROI over the time period of an investment should also be taken into account. Recently, the concept has also been applied to scientific funding agencies’ (e.g., National Science Foundation ) investments in research of open source hardware and subsequent returns for direct digital replication. ROI and related metrics provide
164-581: A snapshot of profitability , adjusted for the size of the investment assets tied up in the enterprise. ROI is often compared to expected (or required) rates of return on money invested. ROI is not time-adjusted (unlike e.g. net present value ): most textbooks describe it with a "Year 0" investment and two to three years' income. Marketing decisions have an obvious potential connection to the numerator of ROI (profits), but these same decisions often influence assets’ usage and capital requirements (for example, receivables and inventories). Marketers should understand
205-425: A variable escalating rate charged annually through the duration of the loan. Marketing not only influences net profits but also can affect investment levels too. New plants and equipment, inventories, and accounts receivable are three of the main categories of investments that can be affected by marketing decisions. RoA, RoNA, RoC, and RoIC, in particular, are similar measures with variations on how ' investment '
246-481: A year you received US$ 4 of dividends and sold the share 1 year after you bought it for US$ 200 paying a US$ 5 selling commission. Your ROI is the following: ROI = (200 + 4 - 100 - 5 - 5) / (100 + 5 + 5) x 100% = 85.45% As the duration of this investment is 1 year, this ROI is annual. For a single-period review, divide the return (net profit) by the resources that were committed (investment): or or or Complications in calculating ROI can arise when real property
287-511: Is a framework that provides the viewpoints on the system and its environment , to be used in the software development process . It is a graphical representation of the underlying semantics of a view. The purpose of viewpoints and views is to enable human engineers to comprehend very complex systems and to organize the elements of the problem around domains of expertise . In the engineering of physically intensive systems, viewpoints often correspond to capabilities and responsibilities within
328-408: Is a popular way of managing changes made to the software. Whenever a new version is checked in, the software saves a backup of all modified files. If multiple programmers are working on the software simultaneously, it manages the merging of their code changes. The software highlights cases where there is a conflict between two sets of changes and allows programmers to fix the conflict. A view model
369-414: Is a principles-based method for measuring extra-financial value (i.e., environmental and social value not currently reflected in conventional financial accounts) relative to resources invested. It can be used by any entity to evaluate the impact on stakeholders , identify ways to improve performance and enhance the performance of investments. As a decision tool, it is simple to understand. The simplicity of
410-449: Is correctly incorporated with the newer software. Design involves choices about the implementation of the software, such as which programming languages and database software to use, or how the hardware and network communications will be organized. Design may be iterative with users consulted about their needs in a process of trial and error . Design often involves people expert in aspect such as database design , screen architecture, and
451-672: Is defined. ROI is a popular metric for heads of marketing because of marketing budget allocation. Return on Investment helps identify marketing mix activities that should continue to be funded and which should be cut. To address the lack of integration of the short and long term importance, value and risks associated with natural and social capital into the traditional ROI calculation, companies are valuing their environmental, social and governance (ESG) performance through an integrated management approach to reporting that expands ROI to Return on Integration. This allows companies to value their investments not just for their financial return but also
SECTION 10
#1732780211248492-833: Is essential to success. This is more easily achieved if the team is small, used to working together, and located near each other. Communications also help identify problems at an earlier state of development and avoid duplicated effort. Many development projects avoid the risk of losing essential knowledge held by only one employee by ensuring that multiple workers are familiar with each component. Software development involves professionals from various fields, not just software programmers but also individuals specialized in testing, documentation writing, graphic design , user support, marketing , and fundraising. Although workers for proprietary software are paid, most contributors to open-source software are volunteers. Alternately, they may be paid by companies whose business model does not involve selling
533-399: Is helpful for new developers to understand the project when they begin working on it. In agile development, the documentation is often written at the same time as the code. User documentation is more frequently written by technical writers . Accurate estimation is crucial at the feasibility stage and in delivering the product on time and within budget. The process of generating estimations
574-422: Is inefficient, difficult to understand, or lacking documentation on its functionality. These standards are especially likely to break down in the presence of deadlines. As a result, testing, debugging, and revising the code becomes much more difficult. Code refactoring , for example adding more comments to the code, is a solution to improve the understandability of code. Testing is the process of ensuring that
615-440: Is often delegated by the project manager . Because the effort estimation is directly related to the size of the complete application, it is strongly influenced by addition of features in the requirements—the more requirements, the higher the development cost. Aspects not related to functionality, such as the experience of the software developers and code reusability, are also essential to consider in estimation. As of 2019 , most of
656-432: Is often used to break down the customer's requirements into pieces that can be implemented by software programmers. The underlying logic of the program may be represented in data-flow diagrams , data dictionaries , pseudocode , state transition diagrams , and/or entity relationship diagrams . If the project incorporates a piece of legacy software that has not been modeled, this software may be modeled to help ensure it
697-564: Is refinanced, or a second mortgage is taken out. Interest on a second, or refinanced, loan may increase, and loan fees may be charged, both of which can reduce the ROI, when the new numbers are used in the ROI equation. There may also be an increase in maintenance costs and property taxes, and an increase in utility rates if the owner of a residential rental or commercial property pays these expenses. Complex calculations may also be required for property bought with an adjustable rate mortgage (ARM) with
738-401: Is robust to heavy levels of input or usage), integration testing (to ensure that the software is adequately integrated with other software), and compatibility testing (measuring the software's performance across different operating systems or browsers). When tests are written before the code, this is called test-driven development . Production is the phase in which software is deployed to
779-850: Is the process of designing and implementing a software solution to satisfy a user . The process is more encompassing than programming , writing code , in that it includes conceiving the goal, evaluating feasibility, analyzing requirements , design , testing and release . The process is part of software engineering which also includes organizational management , project management , configuration management and other aspects. Software development involves many skills and job specializations including programming , testing , documentation , graphic design , user support , marketing , and fundraising . Software development involves many tools including: compiler , integrated development environment (IDE), version control , computer-aided software engineering , and word processor . The details of
820-503: The environmental, social, and governance performance of an organization. Without a metric for measuring the short- and long-term environmental, social and governance performance of a firm, decision makers are planning for the future without considering the extent of the impacts associated with their decisions. One or more separate measures, aligned with relevant compliance functions, are frequently provided for this purpose. Return on investment can be calculated in different ways depending on
861-471: The programming language ). Documentation comes in two forms that are usually kept separate—that intended for software developers, and that made available to the end user to help them use the software. Most developer documentation is in the form of code comments for each file, class , and method that cover the application programming interface (API)—how the piece of software can be accessed by another—and often implementation details. This documentation
SECTION 20
#1732780211248902-489: The available methodologies are best suited to specific kinds of projects, based on various technical, organizational, project, and team considerations. Another focus in many programming methodologies is the idea of trying to catch issues such as security vulnerabilities and bugs as early as possible ( shift-left testing ) to reduce the cost of tracking and fixing them. In 2009, it was estimated that 32 percent of software projects were delivered on time and budget, and with
943-423: The code executes correctly and without errors. Debugging is performed by each software developer on their own code to confirm that the code does what it is intended to. In particular, it is crucial that the software executes on all inputs, even if the result is incorrect. Code reviews by other developers are often used to scrutinize new code added to the project, and according to some estimates dramatically reduce
984-408: The end user. During production, the developer may create technical support resources for users or a process for fixing bugs and errors that were not caught earlier. There might also be a return to earlier development phases if user needs changed or were misunderstood. Software development is performed by software developers , usually working on a team. Efficient communications between team members
1025-430: The engineering organization. Fitness functions are automated and objective tests to ensure that the new developments don't deviate from the established constraints, checks and compliance controls. Intellectual property can be an issue when developers integrate open-source code or libraries into a proprietary product, because most open-source licenses used for software require that modifications be released under
1066-426: The formula allows users to freely choose variables, e.g., length of the calculation time, whether overhead cost is included, or which factors are used to calculate income or cost components. The use of ROI as an indicator for prioritizing investment projects alone can be misleading since usually the ROI figure is not accompanied by an explanation of its make-up. ROI should be accompanied by the underlying data that forms
1107-477: The full functionality. An additional 44 percent were delivered, but missing at least one of these features. The remaining 24 percent were cancelled prior to release. Software development life cycle refers to the systematic process of developing applications . The sources of ideas for software products are plentiful. These ideas can come from market research including the demographics of potential new customers, existing customers, sales prospects who rejected
1148-408: The goal and application. The most comprehensive formula is: Return on investment (%) = (current value of investment if not exited yet or sold price of investment if exited + income from investment − initial investment and other expenses) / initial investment and other expenses x 100%. Example with a share of stock: You bought 1 share of stock for US$ 100 and paid a buying commission of US$ 5. Then over
1189-484: The inputs, this is often in the format of a business case. For long-term investments, the need for a Net Present Value adjustment is great and without it the ROI is incorrect. Similar to discounted cash flow , a Discounted ROI should be used instead. One limitation associated with the traditional ROI calculation is that it does not fully "capture the short-term or long-term importance, value, or risks associated with natural and social capital", because it does not account for
1230-408: The long term environmental and social return of their investments. By highlighting environmental, social and governance performance in reporting, decision makers have the opportunity to identify new areas for value creation that are not revealed through traditional financial reporting. The social cost of carbon is one value that can be incorporated into Return on Integration calculations to encompass
1271-407: The number of bugs persisting after testing is complete. Once the code has been submitted, quality assurance —a separate department of non-programmers for most large companies—test the accuracy of the entire software product. Acceptance tests derived from the original software requirements are a popular tool for this. Quality testing also often includes stress and load checking (whether the software
Google I/O - Misplaced Pages Continue
1312-403: The performance of servers and other hardware. Designers often attempt to find patterns in the software's functionality to spin off distinct modules that can be reused with object-oriented programming . An example of this is the model–view–controller , an interface between a graphical user interface and the backend . The central feature of software development is creating and understanding
1353-472: The position of their company and the returns expected. For a marketing ROI percentage to be credible, the effects of the marketing program must be isolated from other influences when reported to executives. In a survey of nearly 200 senior marketing managers, 77 percent responded that they found the "return on investment" metric very useful. Return on investment may be extended to terms other than financial gain. For example, social return on investment (SROI)
1394-463: The process used for a development effort varies. The process may be confined to a formal, documented standard , or it can be customized and emergent for the development effort. The process may be sequential, in which each major phase (i.e. design, implement and test) is completed before the next begins, but an iterative approach – where small aspects are separately designed, implemented and tested – can reduce risk and cost and increase quality. Each of
1435-424: The product that developers can work from. Software analysts often decompose the project into smaller objects, components that can be reused for increased cost-effectiveness, efficiency, and reliability. Decomposing the project may enable a multi-threaded implementation that runs significantly faster on multiprocessor computers. During the analysis and design phases of software development, structured analysis
1476-466: The product, other internal software development staff, or a creative third party. Ideas for software products are usually first evaluated by marketing personnel for economic feasibility, fit with existing channels of distribution, possible effects on existing product lines, required features , and fit with the company's marketing objectives. In the marketing evaluation phase, the cost and time assumptions become evaluated. The feasibility analysis estimates
1517-503: The project's return on investment , its development cost and timeframe. Based on this analysis, the company can make a business decision to invest in further development. After deciding to develop the software, the company is focused on delivering the product at or below the estimated cost and time, and with a high standard of quality (i.e., lack of bugs) and the desired functionality. Nevertheless, most software projects run late and sometimes compromises are made in features or quality to meet
1558-436: The same license. As an alternative, developers may choose a proprietary alternative or write their own software module. Return on investment In business, the purpose of the return on investment (ROI) metric is to measure, per period, rates of return on money invested in an economic entity in order to decide whether or not to undertake an investment. It is also used as an indicator to compare different investments within
1599-427: The software that implements the desired functionality. There are various strategies for writing the code. Cohesive software has various components that are independent from each other. Coupling is the interrelation of different software components, which is viewed as undesirable because it increases the difficulty of maintenance . Often, software programmers do not follow industry best practices, resulting in code that
1640-403: The software, but something else—such as services and modifications to open source software. Computer-aided software engineering (CASE) is tools for the partial automation of software development. CASE enables designers to sketch out the logic of a program, whether one to be written, or an already existing one to help integrate it with new code or reverse engineer it (for example, to change
1681-520: The tools for estimating the amount of time and resources for software development were designed for conventional applications and are not applicable to web applications or mobile applications . An integrated development environment (IDE) supports software development with enhanced features compared to a simple text editor . IDEs often include automated compiling , syntax highlighting of errors, debugging assistance, integration with version control , and semi-automation of tests. Version control