October 12th, 2008 chris
There are many ways that a work product can be reviewed. Each kind of review is appropriate for different audiences or kinds of work product. The purpose of all reviews is to ensure that each reviewer is satisfied that the work product is correct, and that his or her perspective is represented.
The following are the Five Types of Reviews in Software Development:
1. Inspections
2. Deskchecks
3. Walkthroughs
4. Code Reviews
5. Pair Programming
Posted in Reviews
October 12th, 2008 chris
Of the three types of Measurement Models, Text models tend to be the least effective, but the most common. It is difficult to adequately describe complex situations and dynamics using just words.
Here is a text model for software development:
Effort: The time required to develop a product, expressed as increments of staff development time (e.g., staff months/hours). In general, effort is a function of size and results in cost.
Features: The requirements of the product to be developed.
Size: The magnitude of the product to be developed. In general, size is a function of features.
Defects: The incompleteness of the product. In general, defects are a function of size and schedule.
Schedule: The total development time; completion times for principal milestones. In general, schedule is a function of effort and resources.
Resources: The number of developers applied to the product development.
This text model has advantages and disadvantages. Each item is clearly defined and easy to understand, but the relationships between items may be difficult to visualize. But notice that this text model describes software development in such a way that we can discuss it, measure it, and predict it: if the size changes, the number of defects will change. This text model gives structure to the abstract concept of software development.
Posted in Estimation
October 12th, 2008 chris
The key to making the unmeasurable measurable is models. A model is an abstraction, which strips away unnecessary details and views an entity or concept from a particular perspective. Models allow us to focus on the important parts, ignore those that are irrelevant, and hypothesize and reason about an entity. Models make measurement possible.
We must have models of whatever we want to measure. For example, say we want to know how much of the total system development effort is testing. To determine that, we need a model of both the overall development process and the testing process, which specifies when testing starts and when it ends, what is included, and the number of people involved. If our model starts with unit test by the programmer, it is a different model and will give different results than one that includes only system test.
There are three types of models you can use: text, diagrammatic, and algorithmic that is, words, pictures, and numbers.
Posted in Estimation
October 12th, 2008 chris
Need a philosophical or theoretical framework on how to measure anything or concerned about how to create a model. The Pantometric Paradigm is a simple method to produce a purely visual and quantitative model of anything within the material world. You can use it to create an initial model that can evolve to meet your needs. The simple process is:
1. Reduce what you are trying to model to the minimum required by its definition. Strip away all extraneous information.
2. Visualize it on a piece of paper or in your head.
3. Divide it in fact or in your imagination into equal parts.
4. Then measure it (e.g., count the parts).
Now you have a quantitative representation (model) of your subject which matches your definition. You can now manipulate it, reason about it, experiment with it, and evolve it.
Posted in Estimation
October 12th, 2008 chris
In science, there are a lot of theories, and one of the most popular is Albert Einstein’s theory of gravitation called “General relativity”. According to general relativity, the observed gravitational attraction between masses results from the warping of space and time by those masses.
In software development, particularly on estimation, there are also theories that exist. One is a theory to define measurements and metrics, and it is called the “Measurement Theory”.
Measurement theory allows us to validly define measurements and metrics and to use statistical analysis on our metrics data.
Measurement theory is a branch of applied mathematics. The specific theory we use is called the Representational Theory of Measurement. It formalizes our intuition about the way the world actually works. In this theory, intuition is the starting point for all measurement. Any data manipulation of the measurements must preserve the relationships that we observe between the real-world entities that we are measuring.
Measurement theory allows us to validly analyze and manipulate our measurement data.
As an example, consider a customer satisfaction survey. Your users were asked what they thought of your customer support. The possible answers were:
1 Excellent
2 Good
3 Average
4 Inadequate
5 Poor
The result was that you ended up with a score of 3. So, you have average support, and it means you just need to improve a bit, right? Well, maybe. Or maybe not. When you looked at the data, you found out that your scores were 50% Excellent and 50% Poor. No one thought your customer support was average. Measurement theory dicates that taking the average of this kind of data is invalid and can give misleading results.
Measurement theory allows us to use statistics and probability to understand quantitatively the possible variances, ranges, and types of errors in the data.
Assume that you are responsible for estimating the effort and schedule for a new project. You use a prediction model for development effort, and it predicts that, on average, the effort will be 10 staff years with a duration of 1 year. What would you then tell your boss as your estimate? Maybe you would pad it by one staff year, just to be safe. What if you knew that the standard deviation is 2 staff years? A standard deviation of 2 means that 68% of the time, you expect the result to be between 8 and 12 staff years. This means that 16% of the time it will be over 12 staff years. Now what would you estimate? 12 staff years? 13? Or 10? What if, instead, you knew that the standard deviation was 4 months? Then what would you estimate? 10.5 staff years? (By the way, if we were the boss, we would prefer an answer that included the range with probabilities. We would want the additional information to better trade-off the risks and the rewards.)
Posted in Estimation