Boost Fertility New Invention Ups Success Rates.pdf
Five Ways To Measure Your Programmers Performance
1.
2.
3.
4. Productivity and efficiency are the most critical factors of any company’s success. However, there is no standard
recipe for making employees more efficient.
Executives who manage small departments are sure that the performance of each of their subordinates is visible.
Normally, we measure someone’s work results in accordance with what we see or what we hear from others. For
instance, teammates and QA testers are the people who can say a lot about a programmer.
When a company grows and begins to have dozens or hundreds of employees, or when face-to-face communication
among team members is limited, the method of personal feedback as a means of employee evaluation becomes
unreliable. As a result, the achievements of employees may go unnoticed, which could prevent them from being able
to work their way up the career ladder. People with a similar level of expertise and knowledge may also have
different earnings. Such issues may cause conflicts, which can result in declining morale, and can even lead to
employees—including valued specialists—leaving the company.
These issues made our management team at Altoros Systems think about devising an effective, consistent method
of employee assessment and motivation. Studying the literature and browsing the Internet did not provide us with a
system that could be just plugged in to our organization. We had to develop a system from scratch. After spending
hours studying best practices, conducting meetings, and fostering discussions—as well as some trial and error—we
have created a system, which, in addition to the aforementioned primary purposes, serves as a motivating tool in the
self-development of people. Feedback, including from our valued clients, has been extremely positive. We expect
that this white paper may appeal to a broad range of specialists and managers working in the area of software
development.
Information technology (IT) is widely known as an innovative sphere. For people, who do not work there, it is often
associated with the latest models of computers, new types of chips, processors with a number of cores, cutting-edge
mobile technologies, and ultra-modern buildings and offices. However, these things are just the tip of the IT iceberg.
Insiders know that the work of a modern programmer resembles the activities of medieval artisans.
Today, the manual work of potters, carpenters, and tailors has been automated: machinery works at a rate of
thousands of operations per minute. The accuracy and quality of the automated work is much higher than that done
manually. Unfortunately, eight-cored processors are still incapable of automating the mental activities of today’s
programmers. The tools, which provide version control, building, designing, and automated testing just decrease the
number of mistakes and defects, but they do not create software “themselves.” And, there is no tool that can
increase the speed of programmer’s code-writing two- or three-fold.
We must admit that the industry, which develops automation systems for all the others, cannot come up with a
solution that can automate it. There is just one way to significantly increase software development speed—hiring,
retaining, and motivating high performers.
5. Armstrong and Baron(1998) define performance management as a strategic and integrated method of achieving the
success of an organization by increasing the quality of employees’ work, as well as the capabilities of both working
groups and separate employees. Performance management is:
1. Strategic, because it is connected to a broad range of business issues, such as efficient functioning
in a business environment, and direction, which should be maintained in order to achieve long-term
goals.
2. Integrated, because all the elements of an organization, such as departments, teams, and
employees should be managed logically, in order to achieve a common goal.
3. Tightly connected with development, which is probably the most important function of performance
management. It is impossible to achieve an increase in productivity in an organization without
constant improvement of the process.
Alternatively, performance management is a concept of molding a single vision of organization goals and tasks so
that each employee understands his/her personal role in achieving the common results. It also makes it possible to
manage and improve the performance of both separate employees and whole organizations.
There are a number of factors that influence work efficiency:
1. Personal factors—the knowledge, competency, motivation, and morale of a person.
2. Leadership factors—the ability of a group leader to inspire, manage, and support his or her team.
3. Team factors—the ability of colleagues to provide support to each other.
4. System factors—the system of work and inventory provided by an organization.
5. Situational factors—internal and external pressure and changes.
There are two well-known expressions that characterize performance measurement:
1. Those tasks are executed, which are measured. You cannot manage the process if you do not
measure it.
In order to improve overall performance, one must first begin my establishing the current level of efficiency. Those
whose performance is measured must clearly understand the criteria by which they are being assessed, as well as
why the measurement process is important.
Oakland (1993) suggests that the appropriate performance measurement does the following:
1. Provides customer satisfaction
2. Provides a basis for comparison
6. 3. Provides a “scale” to employees, which allows them to monitor their efficiency
4. Highlights quality problems and suggests areas that require immediate attention
5. Gives a notion of the costs of low-quality work
6. Approves resources usage
7. Provides information necessary for further actions that should be taken to increase performance
The results of a survey (Armstrong & Baron, 1998) help to understand the outcomes of a performance management
system. Managers of 437 widely known US-based companies were interviewed. 205 companies used performance
measurement systems; 232 did not. It was pointed out that the 205 companies that used the systems differed from
the others in the following ways:
1. They had larger margins, a better cash flow, higher stock exchange ratings, and a higher
capitalization.
2. They provided a considerable gain in financial activity and performance during the previous three
years.
3. They had a lower specific increase in the number of employees.
Armstrong and Baron (1998) point out that the performance measurement must:
1. Be connected with the strategic goals of a company or a team.
2. Be attributed to the tasks and responsibilities of employees. Measurement is efficient under the
condition that personal responsibility is attached to it.
3. Be concentrated on measurable results and achievements.
4. Be manageable. It must provide information that expectations were justified to a certain extent.
5. Correspond to the goals of measurements and data availability as much as possible.
6. Provide reliable feedback for further actions.
7. Involve all key aspects of work efficiency.
There are various types of measures, which can be selected in accordance with the criteria described in the previous
paragraph. However, the most important characteristics of the units are appropriateness, significance, and precision.
Economists suggest that key measures can be targeted at quality, quantity, and profitability.
Metrics can be divided into the following groups:
7. 1. Financial (income, added value, profitability, expenses)
2. Results (products sold or services provided, productivity, the number of new clients)
3. Influential (project completion, service level, innovations)
4. Reactions (opinions of teammates and clients)
5. Time-Related(response time, expenditures of labor, delivery time)
The measurement results can be expressed in four ways:
1. Calculation—quantity of units
2. Ratio—quantity of the units related to the maximum possible number of them
3. Percentage—proportion of real achievements versus possible ones
4. Financial Results—gains or losses
The data can be obtained from the process automation systems. They also allow for comparison between the
achieved and expected results, as well as for assessment of alternative ways of acting.
Competency levels can be measured by analyzing real and reference behavior. If the factors, which distinguish best
performance from average or poor performance, are defined, the competency level can be determined relatively
easily. Alternatively, rating scales can be used.
“Benchmarking” means the efficiency measurement of an organization, a group, or an individual, as compared to the
best samples in an industry, a company, or a team.
8. On the whole, “evolution” is the development of individuals’ personal abilities to work more efficiently. In most cases,
organizations evolve through the personal growth of their employees. Service organizations have no other choice
apart from this one. Individual learning does not guarantee obtaining knowledge for the organization; however, the
organization will obtain no knowledge without individual education. In order to evolve, a company must stimulate its
employees to learn; and efficiency management serves as a powerful tool for motivation.
Measurement action may serve as an educational incentive. Before the action, employees may be asked about the
knowledge and experience they would like to obtain. They may also be requested to give their opinions about the
necessity of this knowledge and experience to the organization.
The action usually consists of, or is accompanied by, an interview. The interview may serve as the groundwork for
assessing the results achieved within a definite period, discovering gaps in knowledge or experience, or formulating
a plan for the next period.
Efficiency measurement is extremely useful for creating personal development plans for employees. The plans must
include the actions that should be undertaken to achieve better performance and raise competency levels.
Various researchers have shown that differentiated compensation still remains an important component of many
efficiency management schemes. The compensation for efficiency and competencies is desirable because:
1. It motivates people to work harder and develop their skills and competencies.
2. It spreads a sense of the importance of efficient work.
3. It compensates people differently and depends on their work efficiency, their competency, and input.
Armstrong and Murlis (1994) formulated “eight golden rules” of compensation paid to groups and individuals for their
efficiency:
1. Both teams and individuals must clearly understand their goals and assessment standards.
2. They must be able to track their movement toward the goals throughout the period during which they
will be assessed.
3. They must be able to affect their work efficiency.
4. They must understand what compensation they will get for achieving the results. There should be a
direct correlation between the efforts and the rewards.
5. The reward must follow the achievement immediately.
6. The reward should be noticeable.
7. The results necessary for the reward receipt must be achievable, but not too easy.
9. 8. The rewarding basis must be positively described and easily understood.
A compensation system based on the performance results has the following advantages:
1. It motivates people to achieve better performance.
2. It gives correct goals orientation.
3. It fairly rewards employees for their performance.
4. It provides efficient methods of rewarding and achievements recognition.
However, it also has a number of contingent shortcomings:
1. The motivation factor is not guaranteed. It is often difficult-to-impossible to correspond to the
rewarding criteria.
2. Compensation must be based on a definite form of efficiency metrics. The most usual form is rating.
However, creating realistic metrics may appear to be complicated. As a result, the metrics may
appear unfair, subjective, and inconsistent.
3. Such a compensatory system may make salaries grow faster than the benefits of the work
improvement results.
4. The system may depress teamwork due to its individualistic nature.
5. Despite having good metrics, the work may appear to be inefficient and of poor quality.
6. The system may make short-term goals more appealing to employees than the long-term ones.
Many researchers have proven that the best results come from those compensation systems that use a competency
level for the definition of a base salary and a short-term performance for the bonus calculation. It is even better if a
system takes into account not only individual results, but team performance as well.
Management of inefficient work is divided into three stages:
1. Identify the problem.
2. Understand the reasons for its origin.
3. Make an effort to “cure” it.
Generally there are two sides that are responsible for work efficiency— organizations and individuals.
Organizations may create the environment and processes that will solve the problems related to performance. In
order to achieve it, they can do the following:
10. 1. Create a culture that motivates success. The approach should minimize failures that are the result of
passivity. When failures occure, it is important that the organization takes measures that ensure
individuals understand what caused the problem, and determine a course of action that can avoid
the problem in the future.Elaborate on the performance management processes that set up definite
standards for results comparison and shortcomings correction.
2. Train managers to handle inefficiency and discipline problems.
3. Constantly conduct monitoring of work efficiency and analyze the reasons for failures.
4. Stimulate education in the organization.
Employees should be responsible for the efficiency of their work themselves. They must also pay considerable
attention to self-education. The managers must assist them by providing coaching and consulting, and by preparing
personal development plans. The main challenge that managers and the whole organization will face after the
introduction of an efficiency measurement system is how to appropriately respond to the low performers, once they
have been identified by the system. Luthans and Kreitener (1975) defined five steps of behavior modification:
1. Define critical behavior—what individual processes should be modified?
2. Measure the frequency of the problem—get clear evidence of the existence of the problem.
3. Conduct functional analysis—define what stimuli caused the behavior and/or what kind of reward or
punishment influenced the behavior.
4. Develop and integrate a correction strategy—it may include positive or negative consequences on
the performer.
5. Assess the results of a correction—what improvements happened (or did not happen)? What should
be done if the correction does not bring results?
Personal performance correction is tightly connected with psychology. Many managers do not like, or are not skilled
enough, to criticize their subordinates constructively.
Fletcher and Williams (1992) conclude that the main idea supervisors should convey to employees is one that helps
them to modify good performance into better performance, rather than turning bad performance into good
performance. They also suggest the following methods of critical discussion:
1. Communicate to the assessed person that his sincere admission of his shortcoming is welcomed.
2. Let the assessed person suggest a solution for actions correction.
3. Provide support to assessed persons. Bring to their attention aspects that you think are acceptable
despite being negatively perceived by themselves.
4. Be persistent, if an assessed person does not admit the evidence of a problem. Provide details and
examples.
5. Address your comments to the weaknesses that can be corrected. Do not attack the personality of
an assessed person.
6. Do not discuss more than two weaknesses during one meeting. People can only bear a limited
amount of criticism.
11. The stages of performance management system development can be generally defined as: diagnosis; procedures;
design; pilot implementation; and introduction.
1. The first stage of developing a successful performance management system (Diagnosis), must
include the following considerations: General data about...
...the culture, traditions, and style of management in the organization.
...the structure (meaning the extent of delegation and company hierarchy).
...processes and systems.
...strategic plans.
...decision-makers and stake-holders.
2. Weak and strong agreements about...
...the management, measurement, and assessment of work quality.
...work compensation.
...improvement of work efficiency; development of skills and competencies.
...integration of personal and team tasks.
3. Analysis...
...of tasks that should be done.
...of reasons why they should be done.
...of the methods for how they should be done.
4. Assessment of...
...expenses.
...returns.
The method that is considered to be the best by many researchers of personal performance is to assign a working
team, which would consist of managers and employees’ representatives. This method allows for various opinions
and feedback, and fosters a feeling of belonging.
12. During the design of the performance assessment system, the following aspects should be taken into account:
1. Process model—agreement about work efficiency
2. Usage of tasks and competencies
3. The ways in which tasks will be assigned, and which groups and individuals will be able to
participate in the formulation of procedures
4. Connection with the performance reward system
5. Ratings
6. Methods of measurement
7. Ways in which competencies will be assessed
8. The list of necessary documentation and the managers responsible for its handling
9. How flexible the efficiency management system will be
The following points should be defined as a part of the development and implementation program:
1. Who will participate in the program and what the responsibilities of each participant will be
2. Timelines of development and implementation
3. Employees’ notifications about plan details and a structure of the compensation system. It is crucial
that these are done thoroughly and in a timely manner.
4. Plan for education
5. Pilot schemes
6. Success criteria
7. Monitoring and assessment of the implementation
In order to assess the performance management system, attention to the following issues should be paid:
1. Processes correspond to the management culture.
2. Top management participates in the process and supports it.
3. Linear managers and employees understand the processes, in general, equally well.
4. Performance management processes help unite organizational, group, and personal tasks.
13. 5. It is obvious that performance management is helpful in getting both short-term results and long-term
development.
6. Performance management processes are integrated with the other HR processes.
7. Performance management processes are flexible and are efficient under special circumstances.
8. All stakeholders of the organization participate in designing, developing, and implementing the
system. Project team members include top managers, linear managers, team leaders, and
individuals.
9. Processes are transparent. They function fairly and without bias.
10. Managers and team leaders undertake measures that help team members to understand the
strategy, goals, and values of the organization.
11. Performance management processes place each employee’s individual needs and company goals
in line.
12. Employees are able to express their opinions about whether the results expected from them are
achievable.
13. The primary emphasis is put on employees’ development. Financial reward is the second aspect to
be considered.
14. There are competency models that are developed by all the stakeholders.
15. The goals, gains, and efficiency of the system are communicated to employees in detail.
16. Managers, team leaders, and employees are trained to work efficiently.
Development Industry
If your software development company is going to introduce a performance measurement system, be prepared to
hear a long list of arguments from developers and even managers—a long list of arguments, which are used to
justify the impossibility of measuring their performance. Following are some examples:
1. “Software developers differ from sales people or factory workers. Their performance cannot be
measured by sales volume or by the number of details produced.” Some will go further and declare
that, “creative work cannot be measured at all.” However, each work product creates results, and the
results can be measured. There are a number of metrics suggested in paragraph 16, which can be
used for assessing the performance of programmers.
2. “The more the emphasis is put on measuring major metrics, the more likely it is that the small
unmeasured elements will be sacrificed.” However, it is impossible to achieve great performance in
everything. The system of metrics defines a common set of values for all: clients, company, and
individual developers.
14. 3. “The quality of work suffers as employees become focused on achieving a grade rather than
satisfying clients.” However, customer satisfaction may be used as one of the metrics.
4. “Measurement cannot be performed because it cannot take into account the factors that are beyond
control.” However, measurement just points out the changes in work efficiency, it does not explain
them.
5. “Measurement is possible only in a case where the result is measurable.” However, whenever
people are expected to perform some work, the extent of the work completion can be assessed.
As we may see, nowadays many software development companies invest heavily in processes re-engineering and
various automation systems. The same goals as in paragraph four apply. Companies tend to:
1. Improve customer satisfaction.
2. Decrease the specific number of employees.
3. Get larger margins.
However, polishing processes cannot take the place of having skilled employees and taking care of programmers’
evolutions. Process management tools cannot automate the creative work of software developers. Nevertheless,
automation systems are extremely important and can be helpful in the performance measurement process by
providing the necessary numeric data.
The expertise of a person, which he or she presents at an interview and on his/her resume, includes those factors
that determine whether he/she will get a position in a particular company. These factors will also influence the initial
compensation of the person. Unfortunately, when making hiring decisions, we often have to rely on the subjective
opinion of an interviewer, which can never be an exact measure of a person’s actual ability to fulfill the requirements
of a position. Just as it is impossible for an interviewer to fully evaluate a potential employee, it is also impossible to
use a subjective opinion to compare developers, especially if they work in different departments. How can the
manager fairly determine the distribution of roles and responsibilities on the project? How can he or she know for
certain who is knowledgeable enough to develop a flexible and scalable architecture, or who reads books after work
in order to improve his or her knowledge?
15. A third-party theoretical exam can serve as a fair validation of the theoretical knowledge of a software developer.
Certificates from Sun and Microsoft, and online exams at brainbench.com or whizlabs.com, will give you information
about the capabilities of developers.
Experience also matters. It is not enough just to read a book and answer the examination questions correctly. There
is a lot of information that can be obtained only from practice. Altoros uses a competency scale, which converts
years of experience into points used for assessment.
We sometimes face a situation in which a person who is extremely knowledgeable is not productive on projects.
There are a lot of possible reasons for a lack of performance, such as fatigability, indiscipline, instability, etc. The
next group of metrics displays how a programmer applies the knowledge he or she has.
The most obvious criterion that directly influences the efficiency of a developer is his or her productivity. But, it is not
easy to answer such simple questions as, “How quick is he? How much work did he do?” As it was outlined above,
it is incorrect to assess the productivity of a developer by the number of code strings or by bytes of source code
written within a time unit. However, it is quite possible to make estimations based on the tasks that are assigned to a
developer, and then to calculate how often the actual time spent corresponds to the time planned. In order to make
this metric work, both a manager and a developer must agree that the task can be completed within the estimated
time period. Statistical data can give answers to the questions below:
1. How often does the developer miss deadlines?
2. What is the average accuracy of the developer’s original estimations vs. the actual time it took to
perform a task or complete a project?
3. What is the monthly difference between the estimated time and the time actually spent on carrying
out tasks?
Every company is interested in having high-quality products. Thousands of software development firms have failed
trying to promote buggy applications. The users who installed such products spread their negative feedback
throughout the Internet, destroying the reputation of the software vendor.
It is possible to discover the bugs with the help of thorough testing, and then to fix them. However, there is another
characteristic of bugs—they cost investors money (Newman, 2002). The higher the severity, the higher the cost.
So, productive developers are those who work without major defects. “It is impossible,” one can say, and we agree
with this statement. There are no programmers who work without mistakes. We also could amend it with another
saying, “Those people do not make mistakes who do nothing.” However, it is quite possible to compare the bug rates
of various developers and understand who is more productive.
16. We, at Altoros Systems, after analyzing statistical data, use a metric, which is measurable and can be applied as an
indicator of a programmer’s quality. The metric is the percentage of bugs of a definite severity or priority in the overall
number of bugs produced by the developer.
Figure 16.1 Distribution of Bugs by Severity
In Figure 16.1 Distribution of Bugs by Severity, the most severe bugs are shown in blue. You can see that every
developer has a different number of bugs and a different percentage of bugs by severity. James and Nic have a
minimal number of bugs. The quantity of defects produced by Shawn is the highest within the group. The difference
in the absolute number of defects can be explained by the disparity of periods during which each developer
participated in the project, as well as by the nature of work that is performed by a programmer. The absolute number
of bugs cannot be compared and used as an assessment criterion. However, we can juxtapose the percentage of
the highest severity bugs.
17. Table 16.1 Percentage of Critical Bugs
Bugs by severity
Employee Critical High Medium Low Exception Total % of criticaln
Nic 8 17 11 7 43 19
Roderic 15 18 12 7 1 53 28
Shawn 13 26 9 11 1 60 22
James 23 19 7 1 50 46
Total 59 80 39 26 2 206 29
The table above suggests that Nic and Shawn are the most efficient team members because they have the lowest
percentage of critical bugs. Also, when evaluating a developer’s performance, it is essential to consider the stage of
project development. At an early stage, when the basics of a project structure are being formed, low-priority defects
are unlikely to be reported. At a later stage, when the project is quite stable, programmers pay more attention to the
user interface. It causes a rise in the quantity of low-priority defects. So, while assessing programmers in accordance
with the relevant percentage of bugs’ priority (severity), the stage of the project should be taken into account.
Imagine a situation in which a team is going to release a product. There are just a few bugs left. Most of them are not
critical. The manager is quite optimistic about meeting the deadline. The new build is released; QA team members
report that all of the previously known bugs have been fixed. However, there are some new bugs, their number has
grown up in comparison with the previous build, and to make matters worse, the number of critical bugs has
increased dramatically. The release of the next build brings similar results. It becomes a nightmare for the manager,
and the deadline is not met. Have you ever had a similar experience? Unfortunately, there is a class of developers
who always seem to produce two critical bugs while fixing a slight glitch. A manager must know about the abilities of
his team members to fix defects carefully.
The approach described in the previous paragraph can only be used for regressive bugs. They are especially costly
because more time is required to fix them. The increased effort to resolve the regressive bug is caused by the need
to analyze the code written some time ago. The higher cost of the regressive bugs deserves the special attention of
the programmers. The ability to produce fewer such defects definitely makes a significant contribution to the
efficiency of a software product’s development.
18. The analysis of the statistical data suggested one more interesting metrics to us. It appears that experienced
developers spend less time on build compilation. It often happens that after a check-in, a build fails to be compiled
on a server while everything was okay on a developer’s workstation. The developer spends some time in order to
find the reason for this issue, and often distracts other team members with requests for assistance. The common
cause of such a problem is an old version of source code, which a developer has on his workstation. In order to
avoid such cases, the developer should check-out the recent version of the source code before merging his changes
with it. The metric shows how disciplined the developer is and allows to save troubleshooting time.
Figure 16.2: Builds result after check-in
Everybody knows how important it is to name procedures and variables correctly; how beneficial object-oriented
programming is; how difficult it is to understand the code of a workmate, if it does not contain any comments (Source
Code Comments). However, programmers often “forget” about the obvious rules of coding, in order to reach short-
term goals. The automated system of code check allows not only blocking the attempt to commit the code, which
does not comply with a standard, but also records such events and then provides the data for assessing the
programmers.
19. Commenting on the code afterwards has proved to be more time-consuming compared with commenting on it
immediately upon completion.
Figure 16.3: Number of builds in compliance with the coding standard
Despite being objective and obvious, the metrics described above still do not cover all the aspects of personal
performance. This means that the assessment system can be “deceived.” A developer can pay attention just to the
aspects of work, which are measured and not care about anything else. However, there are two groups of people
who can hardly be deceived—clients and teammates.
When we designed the assessment system, we never forgot the primary purpose of any service organization—
customer satisfaction. And getting the numeric value of this metric is quite simple. Just a few simple questions have
to be asked. Setting up a compensation premium proportionate to the level of the satisfaction gives very efficient
feedback to the project team about the performance and makes everyone think about his or her ability to improve the
team results. If quantitative metrics look good and the client is not satisfied, then only the programmers themselves
may reveal the hidden problems.
The assessment of team members in accordance with the method of 360 degrees (Edwards & Ewen, 1996), when
every person who did some work on the project assesses the others, gives fair information about the real
20. performance of every project participant. We have selected ten personal qualities that we think affect the overall
performance most of all:
1. Discipline
2. Time management
3. Ability to understand and convey ideas
4. Desire to acquire new knowledge
5. Speed of work
6. Assistance to other team members
7. Leadership
8. Quality of work
9. Positive thinking
10. Independence in work
Like many innovations, setting up a performance management system is often a lengthy and expensive initiative.
And a decision whether to invest in it or not, should not be made blindly. The benefits of the systems were described
in detail in paragraph 4. Their financial impact will be different for various organizations. Below, is an approximate
list of tools, processes, and activities, which should be considered as “expenses”.
1. Automation tools, which would allow measuring the quantity of bugs, check-ins, policy violations, etc.
2. Time of employees who participate in performance system design, development, and
implementation
3. Time for competency scales creation
4. Time for interviewing the employees. (The time of both the interviewer and the interviewee should
be taken into account.)
5. Time for creation of personal development plans
6. Trainings and seminars
7. System evaluation and correction
8. Examination fees
9. Time for examination
21. Armstrong and Baron (1998) are cited in the conclusion. They consider the following factors to be the keys to
successful implementation and application of performance management systems:
1. Clear understanding of “Performance Management.”
2. Understanding of the company’s values and its desire to establish a “performance management
culture.”
3. Laser focus on the individual benefits to employees and their role in the process.
22. Armstrong, M., & Baron, A. (1998). Performance Management: The new realities. London: Institute of Personnel and
Development.
Armstrong, M., & Murlis, H. (1994). Reward Management: A handbook of remuneration strategy and practice. 3rd
edn. London: Kogan Page.
Edwards, M., & Ewen, A. (1996). 360-Degree Feedback. New York: American Management Association.
Fletcher, C., & Williams, R. (1992). Organisational Experience. London: Institute of Personnel Management.
Luthans, F., & Kreitner, R. (1975). Organizational Behaviour Modification. Genview: Scott-Foresman.
Newman, M. (2002, 06 28). Software Errors Cost U.S. Economy $59.5 Billion Annually. Retrieved 12 10, 2007, from
NIST News: http://www.nist.gov/public_affairs/releases/n02-10.htm
Oakland, C. (1993). Total Quality Management: The route to improved performance. 2nd edn. Oxford: Butterworth-
Heinemann.
Source Code Comments. (n.d.). Retrieved 12 10, 2007, from Literate Programming:
http://www.literateprogramming.com/quotes_sc.html