Human Resource Management - Software Development - Software Engineering: A Methodical Approach (2014)

Software Engineering: A Methodical Approach (2014)

PART D. Software Development

Chapter 15. Human Resource Management

Human Resource Management (HRM) is arguably, the most important aspect of management in general. This argument can be easily supported, since the most important resource in any organization is the human resource.

In most medium sized and large organizations, there is a human resource director, with responsibilities for the human resource needs of the organization. As indicated in chapter 1, in progressive organizations human resource management is given the same level of priority as information technology.

At every level, managers have as one of their responsibilities, HRM. Software engineers who operate as project managers are by no means excluded. People work on projects, it requires people to administer software systems; people are needed to administer backup procedures, and conduct preventive maintenance, etc. These people will need direction, and in many cases this direction will come from the lead software engineer.

HRM cannot be fully discussed in one chapter (in fact it is treated as a course in many undergraduate and graduate programs). This chapter should therefore not be construed as a substitute for training and education in this area, but rather an overview of the essential aspects of HRM from a software engineering perspective. The chapter will proceed under the following captions:

· Management Responsibilities

· Management Styles

· Developing the Job Description

· Hiring

· Maintaining the Desired Environment

· Preserving Accountability

· Grooming and Succession Planning

· Summary and Concluding Remarks

15.1 Management Responsibilities

The job a manager may be summarized in the following broad activities:

· To motivate people to be the best they can be.

· To seek out the best interest of his or her employees.

· To create the environment that will that will ensure the achievement of all organizational objectives to which his/her job applies (directly or indirectly).

· To be an example of accountability, professionalism and excellence.

In the pursuit of these objectives, the manager uses various strategies and assumes certain responsibilities (some of which would be indicated on a job description). These strategies and responsibilities will vary according to the organization, the nature of the job, and the individual. Nonetheless, some general functions of management have been identified:

image

In contemporary literature on management, the trend is to replace the functions of coordinating and commanding with a single function — leading. The rationale is that leading is a more friendly term than commanding and coordinating. Discussion of these basic functions is left to the reader. Suffice it to say that the software engineer should be cognizant of these responsibilities and functions because as mentioned in chapter 2, the job of a software engineer is a management position that often requires supervision of a software engineering team.

15.2 Management Styles

Many theories on management styles have been forwarded by social scientists. A brief survey of the more popular ones follows:

15.2.1 Autocratic Management

In autocratic management, the manager dictates to and/or commands his/her team members, and requires them to follow his/her instructions.

Two obvious advantages of this approach are:

· The manager gets things done his/her way.

· The manager has the sense of total control.

Two obvious disadvantages can also be identified:

· The manager’s way may not always be the most prudent. The approach presumes that team members are not smart enough to be trusted with major responsibilities. This, we know to be fallacious.

· People do not like to be dictated to; experience has shown that treating people like this appeals to their latent propensity to rebellion, and brings it to the surface. The manager’s sense of control may therefore be false.

15.2.2 Egalitarian (Democratic) Management

In democratic management the managers solicits ideas and inputs from his/her team members. The best suggestions are taken and incorporated into planning and operation exercises.

Advantages of this approach are as follows:

· Team members are encouraged to participate in important decision-making. This gives them a sense of belonging and commitment.

· The sense of belonging and commitment motivates team members to share in the corporate mission and consider going the extra mile in pursuit of it.

· Healthy work relationships can be built between managers and team members.

The main disadvantage of this approach is that does not always yield positive results; experience has shown that there are scenarios that do not warrant it.

15.2.3 Laissez Faire Management

In the laissez faire approach, the manager assumes little or no control. He/she allows team members to do whatever they please.

Although there are situations that warrant this management style (for example: a Christmas party), in most cases it results in chaos, and lack of achievement of significant objectives.

15.2.4 Path-Goal Leadership

In path-goal leadership, the leader influences performance, satisfaction and motivation of his/her team members by

· setting clear achievable goals for team members;

· offering rewards for achieving these goals;

· clarifying paths towards these goals;

· removing obstacles to performance and eventual achievement of goals.

The leader does this by adopting a certain leadership style based on the situation:

· Directive Leadership: This can be done by specifying and assigning objectives (goals), strategies and tasks in pursuit of the established objectives, providing advice and direction to team members.

· Supportive Leadership: This is done by building good relationships with team members.

· Participative Leadership: Decision-making is based on consultation with team members.

· Achievement-oriented Leadership: The leader sets challenging goals and high performance expectations. Much confidence is expressed in the group’s ability. This inspires the members to give their best.

Advantages of the approach are

· It builds confidence of team members and inspires them to contribute their best.

· It can build a healthy working environment.

Disadvantages are

· The environment could become overly competitive, thus creating animosity among team members.

· If team members are not adequately prepared for this, the efforts could be counterproductive.

15.2.5 Transformational Leadership

In transformational leadership, the leader presents himself/herself as an agent of change (presumably for the better). A strong relationship is built between leader and followers. Transformational leadership often involves a vision to forge an organization in a new direction and elicit change. It is characterized by strong ideas, inspiration, innovation, and individual concerns.

The main advantage of this leadership style is that followers are “fired up” to effect the required changes as enunciated by the leader. There is a strong sense of commitment to set goals.

The disadvantages are

· If change does not come in a timely manner frustration could overtake some of the team members.

· The approach begs the question, what happens after the desired changes are achieved?

15.2.6 The Super Leader Approach

In the super leader approach, the leader sets himself/herself up as an icon to be emulated by team members. By example, he/she sets high standards, and challenges team members to emulate them. The approach also addresses the matter of succession planning (to be discussed later) by grooming selected team members to be super leaders at various levels.

The advantages of this approach are the following:

· The approach promotes the idea of leadership by example, a principle that resonates well with people, and traces back to biblical history (characters such as Jesus Christ, Moses, and Joshua are described in Judeo-Christian literature as super leaders), and forward to current times (you can do doubt identify super leaders in your workplace, social/professional affiliation, or country).

· Like path-goal leadership, the super leader approach motivates people to be the best they can be.

The main challenge of this approach is that the super leader must be well prepared and versed in the activities that he/she desires the team members to engage in.

15.2.7 Task-Oriented Leadership

In task-oriented leadership, the leader’s primary focus is the conducting of activities, in pursuit of established goals. These activities must be done at whatever cost.

The main advantage of the approach is that it is achievement-oriented, and is therefore likely to produce a high level of productivity.

The main disadvantages of the approach are as follows:

· The leader could become insensitive to the human needs of team members, while being absorbed with pursuing his/her objectives.

· This problem could result in a demoralized, de-motivated team, thus inhibiting the leader’s ability to achieve the very goals being pursued.

15.2.8 Relation-Oriented Leadership

A relation-oriented leader seeks, as a primary focus, to build good relationships with team members. The thinking behind this is that if team members have a good relationship with their leader it will inspire them to perform.

The main advantage of this approach is that when it works, the results are very convincing. One possible reason for this is that team members feel a strong sense of belonging, and ownership of the project.

The main disadvantages of the approach are as follows:

· The approach does not always work. In fact it is possible for team members to enjoy good relationships with their leader, and still not perform well.

· The worst-case scenario of this approach is that the team becomes a social club where there is much fellowship, but little work.

15.2.9 Contingency Leadership

Contingency leadership theory is an argument for pragmatism: Since the individual approaches all have their advantages and disadvantages, the manager should reserve the right to employ different approaches, depending on the scenarios that present themselves.

The main advantage of contingency leadership is that the weaknesses of any approach are avoided while capitalizing on the strengths of the respective approaches.

The main disadvantage of the approach is that inexperienced managers could make bad judgments about which strategy to employ. However, with experience, contingency managers usually make excellent decisions on the average.

15.3 Developing Job Descriptions

As a computer science professional with management responsibilities, you may be called upon develop job descriptions for junior positions in your division or department, from time to time. Different organizations will have different standards regarding how their job description should be written.

Figure 15-1 provides a checklist of the essential components of a job description. For an example, please review Figure 2-1 of Chapter 2.

image

Figure 15-1. Basic Components of a Job Description

Image Caution In many cases you will find that job descriptions you are looking for are either in need of improvement, or are nonexistent. In either case, your task must be to leave the situation in a better state than you found it.

15.4 Hiring

Hiring is a very important management function. No manager can function without people (human resource). The software engineer may be called upon to participate in the process of hiring suitably qualified individuals to be part of the project team.

Below are some important considerations for the hiring process:

1. Clearly define the position to be filled. If it is a new one, then approval from a senior level of management may be required. In any case a clearly defined job description should be in place.

2. Advertise for applicants to fill the position.

3. Convene an interview panel.

4. Arrange for interviews of the applicants. Depending on the organization, the interview schedule may vary. Typically, job interviews are done in three stages: Firstly, a technical interview scrutinizes the technical and professional preparedness of the applicant. Next, a human resource interview looks at the overall individual and tries to determine whether they would be suitable for the job. A final interview is usually done to make an offer to the selected person. Please note that in some instances, the stages may be merged. For instance, technical and human resource interview may be merged as one.

· A technical interview scrutinizes the technical and professional preparedness of the applicant.

· A human resource interview looks at the overall individual and tries to determine whether they would be suitable for the job.

· A final interview is usually done to make an offer to the selected person.

· In some instances, the stages may be merged. For instance, technical and human resource interview may be merged as one.

5. Select the most suitable individual.

Before conducting an interview, the software engineer must make the required preparation:

1. Prepare a set of criteria to be met by the incumbent.

2. Review the applicant’s curriculum vitae.

3. Prepare questions that are consistent with the defined criteria.

It is standard practice to have in each organization, an interview evaluation form. This may vary with different departments, as well as with the positions being considered. Obviously, for SE/IT jobs, the interview evaluation forms must be prepared by the SE/IT executive in charge, and given to members of the interview panel. After each interview, the panel members complete their respective evaluations of the applicant. Figure 15-2 illustrates a sample interview evaluation form.

image

Figure 15-2. Sample Interview Evaluation Form

In conducting the interview, below is a checklist of some of the things you should probe for each candidate:

· Required Qualification: This may require asking questions about the institutions attended by the candidate, and the courses pursued.

· Professional Preparation: This may require asking questions relating to prior working experiences of the candidate.

· Familiarity with Technology: This may require asking technical questions relating to the technologies and methodologies relating to the job.

· Human Relations Skills: This may require asking questions relating to the candidate’s handling of human relations challenges in the past, as well as simply observing how the candidate handles pressure.

· Motivation and Drive: Here you try to assess the candidate’s enthusiasm for the job.

· Problem-Solving Skills: Is the candidate adept at solving various problems on short notice? Here, problem scenarios are posed to the interviewee, and he/she is asked to describe how they would address the various problems.

15.5 Maintaining the Desired Environment

Having a team in place is good. But how do you create and maintain the working environment that you desire? And how do you get the team to cooperate and support you? This is one of the challenges of management. There are no straight answers to these questions, but there are guidelines. If, as the team leader, you are coming into this position due to a promotion, your challenge may be different from the situation where you are coming in as a new addition to a team. The spectrum of possible human reactions ranges from jealousy and vindictiveness on one extreme, to complete commendation and adulation on the other.

Whether you got a promotion, or were hired into the position, you are likely to face initial challenges. Following are some uncomfortable situations that you may face:

· There may be animosity in the camp as to whether you were most deserving of the position. This possibility is increased if members of the team were considered for the position and then bypassed.

· There may be some resistance to changes that you want to put in place, in your new capacity.

· Individuals may try to challenge your mettle during the early period of your administration.

As the leading software engineer, you want to create an environment where negative factors that could potentially undermine the success of your team are discouraged, and positive factors are encouraged and reinforced. With this focus in mind, it is a good idea to schedule an initiation meeting, shortly after assuming your responsibilities. At this meeting the following activities should occur:

1. Meet the team members (if the team is very large, then meet the key players, for instance people who report to you, along with the supervisors).

2. Clearly outline what your expectations are, and perhaps the mode of operation that you will pursue.

3. Find out what the team members expect from you, and determine whether you can deliver on those expectations.

4. If you are new to the organization, try to get an appreciation of each (major) team member’s job (prior to the meeting, you should familiarize yourself with the company norms and policies).

In order to achieve and maintain the desired environment, the following strategies will be also useful:

· Be a good motivator.

· Develop good conflict resolution skills.

· Be an effective communicator.

· Be generous on rewarding outstanding achievement, and consistent in treating errant actions.

Motivation was discussed in the previous chapter; we will address the other issues here.

15.5.1 Effective Communication

Successful managers are usually effective communicators, both orally and in written form. This is also true for software engineers. Having prepared the requirements specification and design specification for your software engineering project, it will be imperative that team members are sold on the project. If the team members were involved during the preparatory work, then this should not be difficult.

Below are a few experiential tips on effective communication:

· Have the mission statement of the organization and that of the division or department attractively framed and strategically positioned in each office.

· Consider putting beautifiers (e.g. potted plants) in various offices. Plants are known to provide therapeutic value and natural beauty to corporate offices.

· Consider strategically placing memory gems to remind employees of their responsibilities. Below are two examples:

image

· Avoid being perceived as antagonistic or confrontational.

· Involve team members in the determination of development strategies so that they can experience ownership of the plans.

15.5.2 Conflict Resolution

If you are successful at being an effective communicator, this will pave the way for minimizing conflicts and resolving them. Conflict, by definition, is not necessarily a bad thing, in fact, it can serve to provide different perspectives to a problem, and this leads to a more comprehensive solution. What you want to discourage is employees becoming too personal over their disagreements.

The following approaches (Figure 15-3) may be employed in resolution of conflicts. Although they offer no guarantees, you should often find them useful.

image

Figure 15-3. Conflict Resolution Strategies

In confronting a conflict, consideration should be given to the source of the conflict:

· If the conflict is about personal feelings of team members and yourself, be prepared to apply some empathy, or to be conciliatory.

· If the conflict is about work (e.g. how to approach a problem) be objective and impartial.

· If the solution sought does not seriously threaten the success of the project, be prepared to make or accept compromises.

15.5.3 Treating Outstanding Achievements and Errant Actions

It is a healthy practice to have in place a system that recognizes outstanding achievement, and discourages errant actions. This must be communicated to all the team members so that there are no surprises. Better yet, if the employees participated in determining the rules and consequences, they will not feel cheated of victimized when they are applied.

Reward for outstanding achievement may come in different forms, for example adding the employees name to a prestigious list of achievers, providing a special gift, etc. Discipline for errant actions is usually in the form of a letter of reprimand, suspension, or termination of employment.

15.6 Preserving Accountability

It is the responsibility of every manager to put in place a system of accountability which ensures that team members perform according to expectations. This will ultimately ensure that important deadlines are met and goals are accomplished. The software engineer is by no means excluded from this responsibility.

In preserving accountability, the software engineer may pursue a number of strategies:

· Design and assign the work schedules of team members.

· Have a system of evaluating performance against assigned work.

· Have a system of reward/recognition for outstanding performance (as discussed in the previous section).

15.6.1 Designing and Assigning Work

As software engineer in charge of a project, you must be able to define work, provide clarification and motivate team members to perform the desired activities. Management by objectives (MBO) is a term often used to describe the situation where employees are set clear objectives over an evaluation period, and are then evaluated on those objectives.

The work assigned must align with the corporate objectives as well as established strategies of your division or department. The following guidelines should be useful:

· Each employee must be assigned work that is commensurate with his/her job, level of expertise and professional capability.

· Deadlines must be clearly established.

· Deadlines must be realistic.

· The employee must agree to both the assigned work and the deadline, in a cordial discussion. If there are differences, they must be resolved.

· The employee must be made to clearly appreciate how their work fits into the big picture of the department, division and by extension, the organization.

· If required, there must be clearly established checkpoints to different activities on the employee’s work schedule.

Figure 15-4 illustrates a sample work schedule of a team member on a software engineering project.

Note that the assignment clearly identifies the project, the specific activities, and target date(s).

image

Figure 15-4. Sample Work Schedule

15.6.2 Evaluating Performance

Performance evaluation is typically done at the end of the determined evaluation period. Typically, companies have monthly, quarterly, and annual evaluations.

If the organization is on an MBO program, then the annual evaluation is usually significant, since it might mean a large or small bonus, depending on how favorable of the evaluation is. Here are a few important points about performance evaluation:

· The evaluation must be based on the established objectives and assigned activities that were agreed upon with the employee at the start of the evaluation period.

· The evaluation must be objective, and with supportive evidence.

· The evaluation must be signed by both appraised (i.e. the employee) and appraiser.

· Where the employee might have missed established targets, or performed below expectations, measures must be put in place to help the individual to improve on the next appraisal.

Figure 15-5 illustrates an employee appraisal. Note that the appraisal clearly identifies the evaluation criteria, the assessment period, comments and signature by the appraiser as well as the appraised.

image

Figure 15-5. Sample Employee Appraisal

15.7 Grooming and Succession Planning

Succession planning is a very important function of any conscientious manager; it is particularly critical in the case of information management, since any failure of the organizations information systems could prove disastrous. A responsible software engineer will therefore have a small cadre of (one to three) individuals (depending on the size of the division or department) who are specially trained and prepared to assume overall responsibility, should he/she temporarily or permanently depart the organization. Although selfishness often inhibits this being done, prudence and professionalism demand it.

A few points to note:

· The super leader and path-goal leadership styles both facilitate the principles of succession planning, without any additional effort on the part of the manager.

· The individuals being groomed need not know that they are in fact being specially prepared for possible takeover; this knowledge sometimes creates tensions between (or among) the contenders.

· Implementing a succession plan is not usually easy. In many instances, there are fallouts that might result in some individual(s) leaving the organization. Case in point: When General Electric’s CEO and chairman stepped down (in 2000) and named his successor, the other two contenders immediately started to make arrangements to leave the company.

Despite possible negative repercussions from implementing a succession plan, it remains a good idea as the benefits far outweigh the possible drawbacks. Among the benefits to be gained are the following:

· Continuity on mission critical projects, even in the face of sudden unavailability of the project manager

· High level of motivation among team members

15.8 Summary and Concluding Remarks

It is now time to summarize what has been covered in this chapter:

· The functions of a manager may be summarized as planning, organizing, coordinating, leading and hiring. Software engineers with management responsibilities are often called upon to carry out these functions.

· Among the leadership styles available to the software engineering project manager are the following:

· autocratic style; democratic style; laissez-faire style; goal-path leadership style; transformational leadership style; super leadership style; task oriented leadership style; relations oriented leadership style; contingency leadership style.

· The software engineer should be comfortable updating or creating job descriptions for himself/herself or other members of the software engineering team.

· The software engineer may be called upon to engage in the process of hiring new members of the software engineering team. Knowing the standard approach for this function is therefore important.

· The software engineer should know how to create and maintain an environment that is conducive to the success of the software engineering projects. This includes effective communication, excellent conflict resolution, recognizing outstanding achievements and discouraging errant behavior.

· The software engineer should know how to preserve accountability in the workplace. This includes designing and assigning work, as well as evaluating performance of team members.

· A responsible and smart software engineer always has a grooming and succession plan.

Another issue that needs to be addressed during development and refined over the effective life of the software system is the matter of software economics. This will be discussed in the next chapter.

15.9 Review Questions

1. What are the main responsibilities and functions of a manager? Why are they relevant to software engineering?

2. What are the different management styles that are available to the software engineer? For each style, identify the advantages and disadvantages; also identify a scenario that would warrant the application of this approach?

3. Assume that you are a software engineer with the responsibility of managing a software engineering project. Develop a job description for a programmer on your team.

4. What criteria should guide your assessment of a prospective team member?

5. If you were a software engineer in charge of a software engineering project, what principles would guide your effort to create and maintain a productive and congenial working environment?

6. If you were a software engineer in charge of a software engineering project, what principles would guide your effort to create and maintain accountability in the workplace?

7. What are the pros and cons of implementing a succession plan?

15.10 References and/or Recommended Readings

[Lewis, 1993] Lewis, Phillip V. Managing Human Relations. Boston, MA: Kent Publishing, 1993.

[Sayless, 1989] Sayles, Leonard R. Leadership: Managing in Real Organizations 2nd ed. New York, NY: McGraw-Hill, 1989.

[Reece, 1987] Reece, Barry L. and Rhonda Brandt. Effective Human Relations in Organizations 3rd ed. Boston, MA: Houghton Mifflin Company, 1987.

[Sommerville, 2006] Sommerville, Ian. Software Engineering 8th ed. Boston, MA: Addison-Wesley, 2006. See Chapter 25.