Archive for Industrial Engineering

Human Resources Development


Training and Development

Training Needs and Objectives
Training Program Evaluation

Fitting the Employee to the Job
People Capability Maturity Model(P-CMM)
Selected Bibliography


The three major areas of human resources management (personnel management) are selection, development and evaluation of the personnel. The personnel selection includes the tasks like determining the characteristics and skills of people who are likely to succeed at a given job in the organization, identifying the candidates, obtaining relevant information from each candidate, selecting the candidates who are best suited for the organization and so on. The development of the employees means induction of the new employees into the organization, making them familiar with the organizational procedures and practices, rules and regulations, helping them to adapt to the organizational culture, training them in the tools and techniques that are necessary to carry out their duties, helping them to maintain old skills and master new ones. The objective of the development program should be make the employees have a skill inventory that make them capable of adapting to new jobs quickly and effortlessly (smooth job transition). This might require training the employees in more than one skill (multi-skilling), job rotation, retraining and refresher courses and so on. Evaluation or performance appraisal of the employees is the responsibility of the HRD function even though their superiors or bosses evaluate the employees. It is the duty of the HRD mangers to see to it that the performance appraisals are done at regular intervals, the employee and the management are given the feedback and also to ensure that the employees are rewarded and are satisfied with the whole process. In this chapter we will be concentrating on the training and development function. We leave the selection and evaluation aspects as they are very thoroughly discussed in many books on HRD and personnel management.

The software development process is very different from other production or manufacturing processes. According to Jones [1] software products are intangible, as there is no need for physical mechanisms, structures, or processes. The software engineers do not use most of the concepts familiar to traditional engineering and their work is mostly independent of natural science. Also software products are much more complex and sophisticated thus requiring special care in conceptualizing, managing, organizing, and testing them. Software products are manufactured by a simple copying process, so almost all of the production effort is dedicated to design and development. So the software professionals need to be treated differently as their HRD requirements are different from the other professionals. These are the people who work on the cutting edge of technologies and they need to be continuously learning in order to keep themselves abreast of the latest developments in their areas of specialization. The HRD function of the organization should be aware of this difference and should develop a program and an environment that is conducive for the knowledge workers to update their skills.

In early days, when the software projects were simple and small, the design and all the details of a project was handled by a single individual. Even after the projects became larger and more complex the dependency on the individual still exist. For example, in many projects, if you remove a few key people, the projects will come to a standstill, basically because the other members of the team do not have the whole picture of the project. There is no way they can have the whole picture as no documentation exists and even if it exists, it could be understood only by the people who have written them. In many cases these documents will not be updated and will not be in sync with the system that is being developed. This kind of dependency on people is very dangerous. What will happen if a key person leaves the company or is not able to work anymore? In such cases, the entire process of design and development has to start all over again, as nobody knows what to do with the current system. It is because of this reason that the Software Engineering pioneers have always said that the software development has to be process dependent than people dependent. Boehm [2] has said that talented people are the most important element in any software organization and it is crucial to get the best people available. According to him the better and more experienced they are the better is the chance of producing first class results. But the problem with these geniuses is that their capability to work as a team, in most cases, will not be in the same class as their talent.

Software development has become too complex and software systems so huge that it is not possible to complete a project by an individual however talented he/she is. To develop software systems successfully, even the best and most talented professionals need a structured and disciplined environment, which is conducive for teamwork and cooperative development. According to Humphrey [3] “software organizations that do not establish these disciplines condemn their people to endless hours of repetitively solving technically trivial problems. There may be challenging work to do, but their time is consumed by mountains of uncontrolled detail. Unless these details are rigorously managed, the best people cannot be productive. First-class people are essential, but they need the support of an orderly process to do first-class work.”


It is traditional to distinguish between training and development, presumably on the basis that development is a more ethereal and idiosyncratic activity than training. But both words refer to the process of purposefully changing the behavior of the trainees and there is little to be gained from positing two such processes. People change whether or not they want to change. Unplanned change, however, is unlikely to constitute progress towards the goals of the individual or of the organization. Therefore, it is important for the organizations in concert with its employees, to organize for planned change in skills, knowledge, work habits, social interactions, and attitudes towards work.

Training Needs and Objectives

Most training programs are designed on the basis of the HRD manager’s intuitive notion of what is needed. Intuition is sometimes right, but not always. So it is better to institute formal and systematic procedures for assessing the training needs. Careful planning by experienced people can go a long way towards producing an effective training program. To identify the training needs the first step is to identify the set of knowledge, skills and attitudes required by the job. The skill set of each individual should be identified to find out which are the areas in which the individual needs training. There is no point in giving an employee training in an area in which he is an expert. Here the best policy is that the HRD managers and the project management sit together and work out a list of all the skills that are needed for the software professionals in the organization. This will include the basic skills like touch-typing, speed-reading, communication skills (written and oral), presentation skills, and so on. This will also include the training on the programming languages, CASE tools and other tools used by the organization. The training list should also have the company policies, procedures and practices and so on. For example, if the company is having some certification (like ISO, CMM, etc.) then certain procedures and practices need to be followed. It is imperative that all employees know about these procedures and practices. Here when designing the training programs the objective is to make the employees as interchangeable as possible. We have seen the importance of having employees who can join a project and start working at their full potential in a very short time. To achieve this goal, it is very important that all the employees are familiar with the technical and cultural environment of the organization and the training program should be geared for that.

It is also important that the employees are trained in the social interactions. Attitudinal training programs are developed with the intention of modifying attitudes. Most such programs of this kind are called T-groups, encounter groups, or sensitivity training. A group of people meets over a period of several hours or days, with the guidance of a facilitator. They carry out exercises aimed at clarifying their attitudes and feelings. They discuss their feelings about themselves and each other, not necessarily in the context of work relationships. They are encouraged to develop an open trusting style. Many of such programs have an impact on the attitudes and behavior of the participants. However, there are at least two problems with such kind of training programs. Since feelings are expressed openly, the emotional atmosphere in a group may become highly charged and some people may find the tension so threatening and withdraw into a shell. Here the role of the facilitator is very important. The facilitator should watch out for such individuals and should be capable of offering professional counseling to those people. Another problem is that if all the members of a group are not participating in a group session, then the attempts of the participants to open up when they are back on job might not be reciprocated by the others who have not participated in such a program. So it is better to organize the sensitivity groups for all the employees of a project or modules or division.

Training Program Evaluation

An important but often ignored element of the training and development process is finding out the success of the training programs. This includes how well the trainees are learning or have learned the intended skills. The measure can be a typical classroom type test or a test in a simulated job environment. The performance of the trainees in the actual job environment can also be a measured. If the test results indicate that the effectiveness of a training program has not reached the expected levels, the causes should be identified and the program should be redesigned.


The organization can give the employees all kinds of training. As we have seen the employee training and development programs should be designed to ensure maximum interchangeability. This is essential in today’s highly competitive business environment. An organization that has a high percentage of interchangeable employees will definitely have an edge over its competitors. The interchangeability can be increased by job rotation (giving the employees different tasks to perform), multi-skilling (training the employees in multiple skills) and so on. All software professionals are expected to be multi-skilled. They should have the basic skills like touch-typing, speed reading, communication and presentation skills, knowledge of the software engineering procedures like testing, debugging, code-walkthroughs, quality audits and so on. They should also be familiar with the organizations analysis, design, coding, testing and documentation, standards. They should be conversant with the certification requirements and procedures if the organization has some certification like ISO, CMM, etc. The software professionals should also be aware of the latest developments and technological advancements in their areas of specialization. The organization should have an environment that is conducive for all these; as the software professional is an information worker and without information and knowledge the value of the employees will be less.

After stressing the importance of interchangeability, job rotation and multi-skilling, it should be pointed out that not all employees are capable of changing their tasks frequently. Or in other words, the degree of interchangeability varies from employee to employee. Another factor is that some employees might not like certain tasks, as they do not have the aptitude for it. For example, not all employees might be interested in image processing or documentation even though they have the necessary knowledge. Assigning an employee to a task for which he does not have aptitude will reduce his productivity and he will soon become dissatisfied and frustrated. This should be avoided if possible. But in extreme cases this might be the only alternative (as there might not be anyone else to spare). In such cases, the employee should be told that it is only a temporary arrangement and will be remedied at the first available opportunity. For assigning each employee to his preferred task, the management should know the employee’s preferences. This can be captured as part of the employee skill inventory database. So the project team formation, task allotment and job assignment should be done based on the skill inventory database. Assigning the right person to the job will improve the productivity, increase the job satisfaction and is a sure recipe for success.


The People Capability Maturity Model (P-CMM) is a maturity framework that guides an organization in managing and developing its workforce. The P-CMM principles guide organizations to improve their ability to attract, develop, motivate, organize, and retain the talent needed to steadily improve their organizational capability. It describes an evolutionary improvement path from ad hoc, inconsistently performed workforce practices, to a mature, disciplined development of the knowledge, skills, and motivation of the workforce. We strongly recommend you read the following documents to get a good idea of P-CMM, as the techniques mentioned are excellent in improving the quality of your workforce:

  • Curtis, B., Hefley, W.E., and Miller, S., Overview of the People Capability Maturity Model (CMU/SEI-95-MM-01), Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1995.
  • Curtis, B., Hefley, W.E., and Miller, S., People Capability Maturity Model (CMU/SEI-95-MM-02). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1995.


This article deals with three major areas of Human Resources Development—Selecting, Developing and Evaluating Personnel. In organization of all kinds the management designs and defines the job for the employee. In practice, however, an explicit effort to design a job is seldom undertaken. But it is absolutely necessary to determine the precise nature of the job and tailor the job to the person and not vice versa. This article explains the techniques to do this matching so that the employee productivity is increased and job satisfaction is guaranteed. This article aslo discusses how to do an aptitude analysis of the employees and how to find the jobs that are best suited for him/her. The article deals with techniques like job rotation, and multi-skilling so that the employees are satisfied with the work environment and will perform at their best potential.


[1] Jones, G.W., Software Engineering, John Wiley & Sons, 1990.
[2] Boehm, B, Software Engineering Economics, Prentice-Hall, 1981.
[3] Humphrey, W. S., Managing the Software Process, Addison-Wesley Publishing Company, 1989.


  1. Berk, R. A. (Ed.), Performance Assessment: Methods and Applications, The John Hopkins University Press, 1986.
  2. Curtis, B., Hefley, W.E., and Miller, S., Overview of the People Capability Maturity Model (CMU/SEI-95-MM-01), Software Engineering Institute, Carnegie Mellon University, 1995.
  3. Curtis, B., Hefley, W.E., and Miller, S., People Capability Maturity Model (CMU/SEI-95-MM-02), Software Engineering Institute, Carnegie Mellon University, 1995.
  4. Eder, R. W. and Ferris, G. R. (Ed.), The Employment Interview: Theory, Research and Practice, Sage Publications, 1986.
  5. Gagne, R. M. (Ed.), Instructional Technology: Foundations, Erlbaum, 1987.
  6. Goldstein, I. L., and Associates, Training and Development in Organizations, Jossey-Bass, 1989.
  7. Humphrey, W.S, Managing the Software Process, Addison-Wesley, 1989.
  8. Humphrey, W.S., A Discipline for Software Engineering, Addison-Wesley Publishing Company, 1995.
  9. Humphrey, W.S., Introduction to Team Software Process, Addison-Wesley, 2000.
  10. Humphrey, W.S., Introduction to the Personal Software Process, Addison-Wesley, 1997.
  11. Humphrey, W.S., Managing Technical People: Innovation, Teamwork and the Software Process, Addison-Wesley, 1997.
  12. Muchinsky, P., Psychology Applied to Work: An Introduction to Industrial and Organizational Psychology (3rd Edition), Brooks/Cole, 1990.
  13. Paulk, M.C., et al., The Capability Maturity Model for Software: Guidelines for Improving the Software Process, Addison-Wesley, 1995.
  14. Smith, M. and Robertson, I. (Ed.), Advances in Selection and Assessment, John Wiley & Sons, 1989.
  15. Stevenson, C., Software Engineering Productivity: A Practical Guide, Chapman & Hall, 1995.

Comments off