December 31st, 2007
Where is the wisdom we have lost in knowledge? Where is the knowledge we have lost in information? T.S. Eliot 26.1 Using Measurement Developers tend to be leery of how measurement data will be used. Both managers and developers think that managers manipulate measurement data at least one-third of the time (Hall and Fenton 1994), When developers can’t see what’s being done with the data, they lose confidence in the measurement program. A poorly implemented metrics program can actually damage developer morale. When an organization does provide feedback on measurement data, developers are enthusiastic about the measurement program. With feedback, they say that the measurement program is “quite useful” or “very useful” about 90 percent of the time. When an organization doesn’t provide feedback, they say the measurement program is “quite useful” or “very useful” only about 60 percent of the time (Hall and Fenton 1994). Another way to increase developer enthusiasm is to ask developers to participate in the design of the data-collection forms. If you do, the data you collect will be better, and your invitation “will improve the likelihood of their buy-in (Basili and McGarry 1995). Baseline report One specialized kind of feedback that measurement organizations provide is an annual software-baseline report. The baseline report is similar to an annual financial report, but it describes the state of the organization’s software- development capability. It includes summaries of the projects conducted that year; strengths and weaknesses in the areas of people, process, product, and technology; staffing levels; schedules; productivity levels; and quality levels. It describes non-software personnel’s perceptions of the software- development organization and the development organization’s perceptions of itself. It also includes a description of the organization’s existing softwareinventory. The baseline is built on the basis of historical data, surveys, roundtable discussions, and interviews. It isn’t evaluative; it doesn’t tell you whether your software-development capability is good or bad. It’s purely descriptive. As such, it provides a critical foundation for comparing your status year-to-year and for future improvements. Limitations Measurement is useful, but it is not a panacea. Keep these limitations in mind. Overreliance on statistics. One of the mistakes that NASA’s Software Engineering Laboratory (SEL) made initially was that it assumed it would gain the most insight through statistical analysis of the data it collected. As SEL’s measurement program matured, SEL discovered that it did get some insight from statistics but that it got more from talking about the statistics with the people involved (Basili and McGarry 1995).
Searching for affordable and reliable webhost to host and run your web applications? Go to our java web server services and you will be pleased.
December 30th, 2007
Chapter 26: Measurement ful, metrics need to be defined and standardized so that you can compare them across projects. NASA’s Software Engineering Laboratory (SEL) has had an active measurement program for almost 20 years. One of the lessons SEL has learned is to spend more effort on analysis and less on data collection. In the early years of the program, SEL spent about twice as much on data collection as on analysis. Since then, data collection effort has dropped by half, and SEL now spends about three times as much on analysis and packaging as on collection (NASA 1994). After the data is analyzed, SEL has found that packaging the lessons learned is key to making the data collection and analysis useful. You might package data and analysis in any of the following forms: Equations, such as the amount of effort or computing resources typically needed to develop a program of a particular size Pie charts, such as distributions of errors by severity Graphs defining ranges of normal, such as growth in lines of code checked into version control over time Tables, such as expected time-to-ship for various numbers of open defects Defined processes, such as code-inspection or code-reading process Rules of thumb, such as, “Code-reading finds more interface defects than execution testing” Software tools that embody any or all of the above If you’re just beginning a measurement program, use a simple set of measurements, such as number of defects, effort, dollars, and lines of code. (The time-accounting data described in Table 26-2 would make up a single “effort” measurement.) Standardize the measurements across your projects, and then refine them and add to them as you gain experience (Pietrasanta 1990, Rifkin and Cox 1991). Organizations that are just starting to collect software data tend on average to collect about a dozen different measurements. Even organizations that have a great deal of experience with measurement programs still tend to collect only about two-dozen measurements (Brodman and Johnson 1995). Feedback Once you set up a measurement program, it’s important to update developers and managers on the results of the measurements. Providing feedback to developers can be an organizational blind spot; organizations tend to feed the data back to managers but overlook developers. In one survey, 37 percent of managers thought that feedback was given on measurement data, but only 11 percent of developers thought so (Hall and Fenton 1994).
In case you need affordable webhost to host your website, our recommendation is ecommerce web host services.
December 29th, 2007
26.1 Using Measurement Table 26-2. Example ofTime-AccountingActivities, continued Category Activity Component acquisition, continued Integration System testing Product release Metrics Test acquired components Maintain acquired components Report defects in acquired components Create and maintain build Test build Distribute build Plan system testing Create manual for system testing Create automated system test Run manual system test Run automated system test Report defects detected during system test Prepare and support intermediate release Prepare and support alpha release Prepare and support beta release Prepare and support final release Collect measurement data Analyze measurement data CROSS-REFERENCE For details on how average projects spend their time, see Section 6,5, “Where the Time Goes.” Using the Data You Collect Collecting the data doesn’t do much good if you don’t use it. The following sections explain what to do with the data you collect. Pareto analysis If you’re concerned about development speed, one of the most powerful things you can do with the data you collect is to perform a Pareto analysis look for the 20 percent of activities that consume 80 percent of the time. Optimizing a software project for speed is similar to optimizing a software program for speed. Measure where you spend your time, and then look for ways to make the most time-consuming areas more efficient. Analysis vs. measurement On the opposite end of the scale from organizations that collect data that’s too coarse are organizations that are so excited about software measurement that they collect data about everything. Collecting too much data is actually not much better than collecting too little. It’s easy to bury yourself in data that’s so unreliable you can’t know what any of it means. To be meanihg- CLASSIC MISTAKE
From our experience, we are can tell you that you can find a reliable and cheap webhost service at Java Web Hosting services.
December 29th, 2007
Chapter 26: Measurement FURTHER READING For a different list of activities that you can use as a basis for time accounting, see Table 1.1 in Applied Software Measurement (Jones 1991). Table 26-2 lists a set of categories and activities for time accounting that will provide as much granularity, as most projects need to start with. Table 26-2. Example of Time-Accounting Activities Category Management Administration Process development Requirements specification Prototyping Architecture Design Implementation Component acquisition Activity Plan Manage customer or end-user relations Manage developers Manage quality assurance Manage change Downtime Development lab setup Create development process Review or inspect development process Rework/fix development process Educate customer or team members about development process Create specification Review or inspect specification Rework/fix specification Report defects detected during specification Create prototype Review or inspect prototype Rework/fix prototype Report defects detected during prototyping Create architecture Review or inspect architecture Rework/fix architecture Report defects detected during architecture Create design Review or inspect design Rework/fix design Report defects detected during design Create implementation Review or inspect implementation Rework/fix implementation Report defects detected during implementation Investigate or acquire components, either commercial or in-house Manage component acquisition
You want to have a cheap webhost for your apache application, then check apache web hosting services.
December 28th, 2007
26.1 Using Measurement CLASSIC MISTAKE Table 26-1. Examples of Kinds of Measurement Data, continued- Product data, continued Kind of project (business, shrink-wrap, systems, etc.) Functions or objects included in project Size in lines of code and function points Size of documents produced Programming language Once you’ve started collecting even a few data elements, you can gain insight from the raw data, and you can also combine data elements to gain other insights. Here are some examples of combined data elements you can create: Number of open defects vs. total defects reported (to help predict project release dates) Number of defects found by inspection vs. by execution testing (to help plan quality-assurance activities) History of estimated vs.. actual days remaining in a project, as a per- centage (to help track and improve estimation accuracy) Average lines of code per staff month, broken down by programming language (to help estimate and plan programming activity) Average function points per staff month, broken down by program- ming language (to help estimate and plan programming activity) Percentage of total defects removed before product release (to help assess product quality) Average time to fix a defect, by severity, by subsystem, and by time of defect insertion (to help plan defect-correction activity) Average hours per page of documentation (to help plan documen- tation activity on a project) Most projects don’t collect the raw data that would allow them to create this information, but as you can see, this information requires the collection of only a few measurements. Granularity One of the problems with the data that most organizations collect is that it’s collected at too large a granularity to be useful. For example, an organiza tion might accumulate data “on the total number of hours spent on project FooBar but not distinguish between how much time was spent on specifi cation, prototyping, architecture, design, implementation, and so on. Such large-grain data might be useful to accountants, but it’s not useful to some one who wants to analyze planning and estimation data or data that will be . used to improve the software-development process. 471
Looking for affordable and reliable webhost to host and run your business application? Then look no more and go to servlet web hosting services.
December 27th, 2007
Chapter 26: Measurement Pros and cons of specific software metrics Accounting principles This is the skill-set that experienced measurement groups at AT&T, DuPont, Hewlett-Packard, IBM, and ITT have. You don’t necessarily need to have an organization-level, full-time measurement group to measure aspects of specific projects. A team leader or an individual team member can introduce specific measures at the project level to take advantage of Measurement’s short-term motivational benefits. What to Measure Each organization needs to decide what to measure based on its own priorities its own goals and questions. But, at a minimum, most organizations will want to keep historical data on project sizes, schedules^ resource requirements, and quality characteristics. Table 26-1 lists some of the data elements that different organizations collect. Table 26-1. Examples of Kinds of Measurement Data Cost and resource data Effort by activity, phase, and type of personnel (see also Table 26-2) Computer resources Calendar time Change and defect data Defects by classification (severity, subsystem, time of insertion, source of error, resolution) Problem-report status Defect detection method (review, inspection, test, etc.) Effort to detect and correct each defect Process data Process definition (design method, programming language, review method, etc.) Process conformance (is code reviewed when it’s supposed to be, etc.) Estimated time to complete Milestone progress Code growth over time Code changes over: time Requirements changes over time Product data Development dates Total effort
From our experience, we can recommend PHP5 Web Hosting services, if you need affordable webhost to host and run your web application.
December 27th, 2007
26.1 UsingMeasurement 26.1 Using Measurement There are several keys to using Measurement effectively. Goals, Questions, Metrics Some organizations waste both time and money by measuring more things than they need to. A good way to avoid that problem is to be sure that you’re collecting data for a reason. The Goals, Questions, Metrics practice can help (Basil! and Weiss 1984): Set goals. Determine how you want to improve your projects and products. Your goal, for example, might be to reduce the number of defects put into the software in the first place so that you don’t spend so much time debugging and correcting the software downstream. Ask questions. Determine what questions you need to ask in order to meet your goals. A question might be, “What kinds of defects are costing us the most to fix?” Establish metrics. Set up metrics (measurements) that will answer your questions. You might start collecting data on defect types, creation times, detection times, cost to detect, and cost to correct. A review of data collection at NASA’s Software Engineering Laboratory concluded that the most important lesson learned in 15 years was that you need to define measurement goals before you measure (Valett and McGarry 1989). Measurement Group Some organizations set tip a separate measurement group, and that is usually a good idea because effective measurement requires a specialized set of skills. The group can consist of typical developers, but the ideal measurement group would have knowledge of the following areas (Jones 1991): Statistics and multivariate analysis Literature of software engineering Literature of software project management Software planning and estimating methods Software planning and estimating tools Design of data-collection forms Survey design Quality-control methods, including reviews Walk-throughs, inspections, and all standard forms of testing
From our experience, we can recommend PHP5 Web Hosting services, if you need affordable webhost to host and run your web application.
December 26th, 2007
Chapter 26: Measurement CROSS-REFERENCE For more on the importance of objectives, see “Goal Setting” in Section 11.2. CROSS-REFERENCE For more on setting expectations, see Section 10.3, “Managing Customer Expectations.” Software products and projects can be measured in dozens of ways: size in lines of code or function points; defects per thousand lines of code or function point; hours spent designing, coding, and debugging; developer satisfaction these are just the tip of the iceberg. Measurement programs support rapid development in several ways. Measurementprovidesstatusvisibility. Theonlythingworsethan being late is not knowing that you’re late. Measuring your progress can help you know exactly what your status is. Measurement focuses people’s activities. As I’ve mentioned elsewhere, people respond to the objectives you set for them. When you measure a characteristic of your development process and feed it back to the people involved, you’re implicitly telling them that they should work to improve their performance against that characteristic. If you measure the program’s bug count and feed that back, they’ll reduce the bug count. If you measure the percentage of modules marked as done, they’ll increase the percentage of modules marked as done. What gets measured gets optimized. If you measure developmerit-speed related characteristics of the project, those will get optimized. Measurement improves morale. Properly implemented, a measurement program can improve developer morale by bringing attention to chronic problems such as excessive schedule pressure, inadequate office space, and inadequate computing resources. Measurement can help to set realistic expectations. You’ll be in a much stronger position to make and defend schedule estimates if you have mea-’ surements to support you. When your customer asks you to work to an impossible deadline, you can say something like this: “I will work hard to deliver the system by the time you want it, but historically, based on the figures I have just described to you, it will take longer than your imposed deadline. We might set a new record on this project, but I recommend that you modify your plans in light of our history” (Rifkin and Cox 1991). Measurement lays the groundwork for long-term process improvement. The most significant benefit of Measurement can’t be realized in the short-term on a single project, but it will pay off over two or three years. By measuring your projects on a consistent basis, you lay a groundwork for comparing projects and analyzing which practices work and which don’t. A measurement program helps you avoid wasting time on practices that aren’t paying off. It helps you identify silver-bullet technologies that aren’t living up to their claims. It helps you to accumulate a base of experience that will support more accurate project estimation and more meaningful planning. Measurement is the cornerstone of any long-term process-improvement program.
If you are looking for cheap and quality webhost to host and run your website check Jboss Web Hosting services.
December 25th, 2007
Measurement Measurement is a practice that has both short-term motivational benefits and long- term cost, quality, and schedule benefits. Measurement provides an antidote to the common problems of poor estimates, poor scheduling, and poor pVogress visibility. Companies that have active measurement programs tend to dominate their industries. Virtually any organization or project can benefit from applying Measurement at some level. For greatest effect, Measurement should have high-level management commitment and be enacted through a permanent measurement group. Measurement can also be implemented to a lesser degree on individual projects by the project team or individual team members. Efficacy Potential reduction from nominal schedule: Very Good Improvement in progress visibility: Good Effect on schedule risk: Decreased Risk Chance of first-time success: Good Chance of long-term success: Excellent Major Risks Overoptimization of single-factor measurements Misuse of measurements for employee evaluations Misleading information from lines-of-code measurements Major Interactions and Trade-Off s Provides the foundation for improvements in estimation, scheduling, productivity-tool evaluation, and programming-practice evaluation 467
We highly recommend you visit web and email hosting services if you need stable and cheap web hosting platform for your web applications.
December 24th, 2007
A software lifecycle is a model that describes all the activities that go into creating a software product. Product development styles vary tremendously among different kinds of projects, requiring different kinds of tasks and different task orderings. Choice of the wrong lifecycle model can result in missing tasks and inappropriate task ordering, which undercuts project planning and efficiency. Choice of an appropriate lifecycle model has the opposite effect ensuring that all effort is used efficiently. Every project uses a lifecycle of one kind or another explicitly or implicitly and this practice ensures that the choice is made explicitly and to maximum advantage. Efficacy Potential reduction from nominal schedule: Improvement in progress visibility: Effect on schedule risk: Chance of first-time success: Chance of long-term success: Fair Fair Decreased Risk Very Good Excellent Major Risks The practice of selecting a lifecycle does not in itself contain any risks. Specific lifecycle models may contain additional risks. Major Interactions and Trade-Off s None The summary entries in the table describe only the effect of explicitly choosing a lifecycle model. In addition to those effects, the specific lifecycle model chosen, will also have greater or lesser ability to reduce schedule, improve progress visibility, and affect risk level. For. more on lifecycle model selection, see Chapter 7,”LifecyclePlanning.”
Looking for affordable and reliable webhost to host and run your business application? Then look no more and go to servlet web hosting services.