Sunday, February 28, 2010

How ALM Tools Can Help Key Software Processes

In a recent exchange, I was asked what the typical ALM tools do to address three key challenges around process improvement and compliance in software/ IT organizations, and more specifically, what we at Digité do about them. I felt these would be of interest to others as well, so here is a summary of that exchange.

Effort Estimation

Most tools lack any (effort) estimation capability and most estimates falter. This is one area that remains a challenge for most organizations and application/ software projects are notorious for not meeting their original effort/ cost/ time estimates.

Our experience at Digité has shown that there is very little standardization in the use of estimation methods, except perhaps the bare minimum use of Function Point Analysis, so it is not easy to select any specific methodology and incorporate into the tool. However, the fundamental problem that I believe we (as also most PPM/ ALM vendors) help resolve is of helping our customers build historic data, one of the most common reasons for poor estimates. By using Digité across the organization, our customers capture process and project data and help successive projects do better in terms of estimation. We do have specific but basic functionality around capturing Phase level estimates and then automatically assigning to WBS tasks - which the PM can then tweak as needed.

Standardized Measurement Systems

We believe that ALM tools are at the front and center of solving this problem – that's where work happens! So ALM tools are the ideal candidate to be the measurement system in a software/ IT organization. Through Digité's integrated combination of Process Governance, Project Management and SDLC functionality, we provide all projects a consistent method of data capture across all phases of the project and across all types of projects - be it development, maintenance, implementation, etc. So, every activity in the project is codified, and reduced to a WBS task or a workflow step - and baseline, plan and actual effort against all project work - whether planned or unplanned - gets captured against these tasks/ workflow steps. These then get rolled up based on the WBS hierarchy or by the metrics/ reports that use that data to provide a variety of metrics from quality, defect, earned value, variance and so on.

Different organizations have differences in the way they may measure even a simple metric like Defect Density or Defect Leakage; large organizations may have that problem even across business units! However, using a system like Digité, they are able to standardize the measurement and reporting.

Compliance to Process

Compliance to a process is the biggest issue that our customers deal with - and I sincerely believe that is where we at Digité provide very unique functionality that no one else provides. Digité's integrated Process Governance module has what we call the Universal Process Framework (UPF). This is a flexible framework that allows you to define CMMi/ 6-Sigma, PM-BoK or other framework compliant process templates (PTs) easily and flexibly for different types of projects that you do.

Each PT is a combination of the project WBS, various functional processes (workflows) like requirements management, defect tracking, test management, etc. (depending on the process or project type), deliverables, phase gates, roles, process artifacts, etc. These create what we call 'actionable processes' – the critical component missing in most process improvement initiatives that automatically convert process definitions to project work-items. When the process template is used to create a project, all of these become available to the project team. As the team does its work, the process automatically gets followed! Very little 'extra' work needs to be done to follow the process and project managers/ teams love that!

If you have any insights to share, we'd love to hear from you.

Mahesh Singh

Sr. Vice President, Product

Tuesday, February 2, 2010

Challenges in Time Accounting in Software Projects

Time Management has always been a much talked about subject of management. Jim Rohn said “Time is more valuable than money. You can get more money, but you cannot get more time.” Yet, software engineering has always understated the importance of time. In most organizations, time sheets are filed casually. I don’t know of too many developers who can honestly say that they file time accurately.

As I tried to analyze the problem from my own experience, I have realized that there are two parts of this problem. Firstly, managements don’t appreciate the importance of time accounting. Beyond project costing or billing, few know what to do with it. The second reason problem is the TGIF syndrome! When it is Friday EOD, the last thing that you want to do is spend time at 6pm recalling what you did on Monday morning and then painstakingly file time for the right task/activity. Often, you realize that the task/activity that you worked on is not on your screen! So… what happens? You file your 40hrs (whether you worked 30hrs or 50hrs) wherever you can. Result: Garbage In, Garbage Out.

Digité Enterprise functionality lays significant emphasis of Time Accounting. Done right and done daily, it is a 5 minute task. Accurate time accounting has multiple benefits – it helps people understand how they spent their day (could be a problem for some). It helps Project Managers understand where their people are spending more time than what they should. The list can go on.... however, the biggest benefit is that when used on a daily basis and filled accurately, it does the job of progress reporting and status reporting automatically! How?

Assume a task is planned to take 10hrs. By filing time on the task for 8hrs and then saying that only 50% of task is complete OR that you need 8 more hours (either of which is possible in Digité Enterprise), you have told your manager that your task is now estimated to take 16hours and its % progress is 50%. When this happens across the entire team, I bet that it saves your Project Manager at least an hour every day (depending on team size). He/she does not need to talk to people to find out what an individual was doing, how much more time it will take, how much progress it will take, etc.

However, if this functionality is not well understood, it has the potential to make your life complex too. In Digité Enterprise, time can be filed on tasks as well as Project Items (Defect, Issues, Risks, etc.). Digité Enterprise architecture is based on principle that projects that are planned by work decomposition (WBS) will file time against the tasks/activities in the WBS. On the other hand, projects that are executed with Project Items primarily will file time on Project Items. For example, a Development Waterfall project will file time on tasks. However, a Production Support project will file time on Project Items. Mixing the two will inevitably lead to confusion, inaccurate metric generation, etc.

Take a simple scenario: In a simple Development project, one would have a Testing activity(ies). Testing activities lead to Defects being filed. So, if you now file time on the Defect, what are you filing your time on – time to execute the test case that found the defect OR time to log the defect OR time to fix the defect? If someone files on the Defect and on the Testing activity, how does the system avoid double counting of the same?

To avoid such confusion, Digité Enterprise built its solution with the understanding that the time used to test and identify/log the defect will be filed in a Testing activity. Similarly, the time taken to fix the defect will be filed in a Defect Fix/Rework activity. WBS projects will not file time on project items.

Now, consider a Production Support project where you are doing help desk tickets. In such projects, it becomes important to track how much time a specific ticket is taking and to be able to monitor the productivity of people who are working on these tickets in the different stages of the workflow. Obviously, there is no planned task for each ticket because you don’t know how many tickets you will get ahead of time. To handle such projects, Digité Enterprise allows you to file time on Project Items like Defects, Tickets.

Accurate time accounting is critical for all IT organizations - not just for EV and Quality metrics, but also for internal/ external financial accounting, costing and chargeback purposes as well; getting it done has been a challenge for long.  We believe that with Digité's Time Accounting capability, we have helped our customers take a big leap towards achieving that.