Implementing SLAs in Software Project Management: Understanding the Basics

Page content

Types of Support Needed by Project Teams

Software development activity needs the support of other departments in the organization to be effective. One way of achieving this is on a case-by-case basis. That is, the department would indicate the turnaround time whenever the project team approaches the department for support. Another way is to define an SLA (Service Level Agreement) for each department and adhere to it. The third way is to define an SLA on a project-by-project basis.

Software development project teams need the following support:

  1. Allocation to the project of workers with desired skill sets from within the organization and from the Human Resources (HR) department.
  2. Recruitment of workers with desired skill sets to the project team from external sources.
  3. Procurement of hardware and software.
  4. Provision of necessary seating for the project team from the Administration or Facilities department.
  5. Troubleshooting support from the Network and System Administration department.
  6. Software Quality Audit support for phase end audits from the Software Quality Assurance division.
  7. Testing support.
  8. Organization of training programs.
  9. Other miscellaneous support such as expert guidance, and reviews of designs, architecture, and estimates.

SLA Definition Methodologies

Now that you understand the types of support a project development will require, consider the following methodologies for use with SLAs:

  1. Case-by-case method – In this method, the department would indicate the turnaround time against every request it receives based on the workload and urgency of the request. Merits are that the department members can plan their activities and provide the services without experiencing stress. The downfalls are that the project team has to adjust their plans based on the turnaround time only after the request is placed. This could cause unpredictability for the project execution.
  2. Department level SLA – Here, each support department would have a defined SLA. Project teams need to plan their activities around these SLAs. This definitely brings predictability for project execution. This is beneficial because the departments can build their capacities based on the defined SLAs and work without stress. However, the special needs of a project would not be factored in and project execution may sometimes suffer if the defined SLA is not adequate for the project.
  3. Project level SLA – In this method, service departments understand the specific needs of the project and commit project-specific SLAs for each project. Normally, this commitment of project-specific SLA would be carried out during the project kick-off meeting. This is when the project team would explain their SLA needs and negotiate the SLA from each support department. This allows the project team to have SLAs tailored to meet specific needs and project execution becomes predictable. Support departments may have to build in extra capacity to meet peak demands, and this may cause some of the capacity to be wasted during low-demand situations.

The Project Manager’s Choice

The issue here is whether to optimize a support department’s capacity or provide full support to the project teams. It boils down to cost control or delivery – that is the question. Case-by-case SLA and department level SLAs both aim to control costs. However, this weakens the project delivery. Project-level SLAs aim to strengthen delivery, but may increase support costs. Software development organizations have to balance these two objectives. Slowly but surely, software development organizations are moving toward project level SLAs.