Optimization of Human Resource Allocation in Software Development essay

Software development industry is one of the core industries in the modern world. New software products are used for automating processes in virtually all spheres of human life. This fact contributes to the diversity of domains for software projects. Rapid evolution of software frameworks, technologies and approaches creates a constant need for change. Hence, companies operating in software development industry have to deal with short-term projects, projects with very specific knowledge requirements, projects requiring special expertise, etc. This diversity creates a situation when software developments and other IT professionals are involved in the projects from time to time, often combine working on several projects and deal with various technologies simultaneously. Due to high flexibility of workforce in software projects and very specific requirements to project members, there emerge situations when the resources are allocated inefficiently.

Problem Statement

The problem considered in this report is the following. The company provides the services of software development to a large number of clients. Due to the varied nature of projects, short-term project life cycle and specific skill sets needed in software projects there emerges the problem of inefficient resource allocation.

According to Fairley (2011), companies providing the services of custom software development and companies offering consulting services in software development allocate 85% or more of their operating costs to development costs. In other words, business costs of such companies are formed by the salaries paid to software developers and other IT professionals (Fairley, 2011). However, the company has numerous inefficiencies in the process of workforce allocation to projects. This means that the company spends excess money on development and reduces the chances of successful project completion. Such state of affairs reduces the company’s competitiveness and viability. Therefore, it is important to address and resolve this workplace issue.

There are several sources of inefficiency in the current process of resource allocation. The company deals with different projects, the duration of which varies from 2 weeks to 6 months on average. These projects are broken into stages; commonly, these stages include setting requirements and planning, software design, implementation, verification and sometimes maintenance (Martin, 2009). At each stage, the number of IT professionals required is different, and the skill sets needed during different phases also change. However, project team is usually assigned at the first stage, and there are additional resource allocations during implementation and verification phases.

Sometimes project members lack the necessary skills for implementation and verification. They have to deal with technologies where they have little experience or perform supplementary tasks. It also happens that team members have no business expertise in the required domain, and there are no professionals with the required technical skills and business knowledge available. In such cases, team members have to master the new domain, which increases their value for future projects but reduces the effectiveness of solutions in the existing project. Finally, the work load is not uniform: there are times when team members have to work overtime and times when team members have to wait until other developers complete their parts of work. Such situation leads to professional burnout after overtimes (which are followed by escalating project costs) and to low performance during the idle time.

This report is devoted to analyzing the problem of inefficient resource allocation in a software development company, considering several workplace programs and procedures aimed at resolving this problem and selecting one of the alternatives according to five criteria of software project effectiveness relevant to the situation. Therefore, this report contributes to improving workplace effectiveness in companies providing the services of custom software development.

Overview of Alternatives

  • Alternative A

The first alternative that is commonly used in software development industry relies on the services of outsourcers or freelancers. Analysis of the key factors causing inefficiencies in resource allocation shows that there are three major causes: inflexible or premature allocation of resources, absence of prospective team members with the required characteristics (combined with the inefficiency of hiring developers with these characteristics due to short-time nature of the tasks) and fluctuating workload.

The industry-wide practice is to invite freelancers or using the services of outstaffing companies to resolve such issues (Futrell, Shafer & Shafer, 2002). Possible implementation of such approach include (Futrell, Shafer & Shafer, 2002): placing ads for the required freelance services, contacting potential team members in person or using the services of an outsourcing company. It would be most efficient to use the latter option and sign a contract with several outstaffing companies. These companies would help to add “external” team members when necessary.

  • Alternative B

Another alternative is using more efficient resource leveling practices and detailed assessment of employee skills and abilities. The proposed program is the following: project managers should divide the stages of the project into smaller sub-stages, assign project roles and responsibilities in accordance with these sub-stages (Schiel, 2009). It is essential that project managers adjust project roles after every sub-stage of the project and align the changes with the schedule containing  activities of potential team members (including previous projects and future projects) (Schiel, 2009). HRM professionals should improve skills assessment process and introduce sub-skills in development and different business domains. These skills should be weighed against current project role requirements so that project managers could assign team members who can add maximal value to the project.

Criteria

Criterion 1. Compliance with customer requirements

This criterion determines to which degree the company’s ability to adhere to customer requirements will be changed after implementing the new program.

Criterion 2. Adherence to initial budget estimates.

This criterion determines the extent to which project teams will be able to match initial budgets after implementing the new program.

Criterion 3. Compliance with project timing

This criterion describes the degree of complying with schedule that teams will demonstrate after implementing the new program.

Criterion 4. Business risk exposure

This criterion assesses the change in the degree of exposure to business risks achieved due to implementing the new program.

Criterion 5. Project risk exposure

This criterion assesses the change in the degree of exposure to project risks achieved due to implementing the new program.

Research Methods

The methods used to research the information needed to determine the best recommended alternative included reviewing literature, analyzing research evidence pertaining to the impact of the use of outstaffing and advanced resource leveling on project resource allocation. In addition, the sources related to the influence of outstaffing and/or resource leveling on software quality, project time and budget, project risks and corporate risks were considered. The information was collected from software project management books, human resource management books and journals, computer science journals and case studies evaluating the effect of project management solutions.

Do you like this essay?

Our writers can write a paper like this for you!

Order your paper here.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...