Thursday, March 11, 2010

What is the Vision – Agile or Agility?


Induction into Agile

My introduction to the Agile world goes back about 3 years. Charged with the new buzz of Agile, a team at Digité attended an Agile workshop conducted by a local Agile/ Scrum trainer.

The first part of the workshop was really very exciting where the coach educated us on the Agile Manifesto. In the second half, we learned of various Scrum characteristics. At the end, the coach made a remark – 'You will be an Agile Organization only if you follow ALL of the Scrum methods described in the workshop'.

This didn't go down too well with the attendees. We started to discuss how we would adopt Agile in Digité. The change was going to be significant. We operate from three different locations – so getting people together in a room was not possible. Further, 'Paired Programming' was not feasible mainly due to cost constraints. At that time, our regression test cycle was a manual (and hence huge) activity before delivering each release to customers. Not to mention all the typical 'change management' challenges for overhauling existing systems and processes.

When co-workers asked about it back in office, most of us termed Agile as 'Star Trek'– all great, but fiction - not designed for software company like ours!

Reality bites – are we Agile?

Over the next several months, egged on by Management, we adopted some elements of the Agile methodology successively. The Product Management team was the first to move. Instead of working with perceived value of features, we started to rank order the Product Backlog. The Engineering team started to plan releases in multiple monthly sprints as well, ensuring a phased delivery and the ability to accommodate changes through the release lifecycle. The QE team was next in the queue, with Test cases automated and a nightly build available for testing.

At the same time, we retained many elements of traditional planning. We were committed to scope and timelines of each major release and there was no moving back from it. All the major software design and architecture decisions were taken during initial Release planning itself. We continued with formal 'Review' processes for code review to ensure code quality. Time tracking was also a key requirement and continued as is.

When posed with the question, "Was Digité Agile?", I was never a 100% sure. Many customers I have spoken to clearly indicated that their methods are a combination of Traditional and Agile. While they abstracted from the "good parts" of Agile, they did not give up on what worked well for them all these years using traditional methods.

Agile or Agility?

Recently, I attended another Agile conference where David Hussman presented a session on 'Doing What Works Over Doing What You are Told'. David, an Agile coach for a range of companies, presented diverse and real-life views on Agile.

His thrust was – most of the organizations have mastered the art of software delivery after a number of iterations. If organizations have developed a certain way of working over the years, they don't have to necessarily scrap it all to adopt Agile. Agile manifesto is not prescriptive; it's a set of simple principles that teams should aim for. There may be various methods to become Agile, but being Agile didn't mean we'd to follow them all!

This certainly resonated with what our customers were telling us.  Agile has great positives; however it also has challenges – for certain type of projects and organizations. For project sponsors, Agile projects lack visibility of final scope. There is no up-front planning of who will work on what. Large/ distributed teams have been slow to adopt Agile. This is where Agile ALM tools such as Digité, which enable both Agile and traditional methods, are helping significantly.

Overall, the message is loud and clear – our customers want Agility, where their customer requirements are being met better, faster and cheaper!

Rahul Vedak
Sr. Product Manager, Digité, Inc.

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.

Tuesday, January 19, 2010

Digité Goes On the Cloud!

At Digité, we have been a web-based application right from the start. Before Cloud, before SaaS, there was ASP – and our initial product launch was as an ASP – Application Service Provider. As luck would have it, a majority of our customers preferred to host the application 'on-premise' and simply wanted to buy the license from us. This worked very well for us – because it gave us invaluable experience in a variety of areas, from the challenges of implementing an enterprise software across the organization, to testing the software for the scalability and robustness needed for a deployment such as Infosys, our largest customer, with a 100,000 users on a single Windows/ SQL Server based installation of Digité Enterprise.

Over the last 8 years, we have implemented Digité at Corporate IT, IT Consulting and Services as well as ISV organizations. And, amongst the many lessons we learned, we picked on two – the challenges an organization is trying to overcome by implementing a solution such as Digité – and the challenges an organization goes through trying to implement an enterprise solution like Digité.

Structured Chaos, Unstructured Innovation

Our customers are in the business of developing or maintaining or implementing software – in-house or third party, custom or off-the-shelf. This is hard work that usually involves defining requirements and building or assembling software solutions that meet those requirements. This is by itself a tough job; introduce geographic, cultural, logistical and technology barriers of today's global economy, and the job becomes tougher by several magnitudes. Our customers have seen the value that Digité provides by giving them a flexible, easy to use, lightweight and cost effective mechanism to quickly get organized in their development processes so that they can get on with the far tougher job of building great software! Over the last 8 years, we have been amazed over and over again at how our customers' teams have innovated to build great software to delight their own customers, internal or external. And we have learned from those experiences. Key amongst them – that people don't want to reinvent the wheel. If someone has already done it, reuse and build on top of it! And two, keep things simple, yet comprehensive enough. "Just enough process" is a recurring theme.

The Small Matter of Organizational Change Management

Implementing ANY enterprise software is not easy; implementing Digité Enterprise – which pretty much touches everybody in a software/ IT organization, can be even tougher. When you are coming off a culture of using email, spreadsheet and some basic project management software, the job of moving everyone to a somewhat standardized way of doing things – managing projects, building software, measuring progress – can be daunting. More than technical learning challenges, more than software challenges – quality, integration, migration, performance, etc. – people simply have a hard time doing something they have been used to doing one way to a new, even if better, way. Yet, in spite of conventional wisdom, an overwhelming majority of our customers have succeeded in meeting this challenge through a combination of process, scope control, phased implementation planning, management buy-in, user buy-in, and more. More often than not, two of the key ingredients to success have been to keep things simple – and to aim for speedy, short cycle-time implementation milestones. The resulting success and the perceived (and real) progress of the implementation itself provides a positive reinforcement which further propels further implementation!

Digité SaaS - Solutions as a Service

Agile ALM or Application Lifecycle Management has become a force to reckon with, especially in the Global Delivery Model. Most technology companies – small or large – are trying to leverage distributed resources and teams to deliver their products and services. With the events of late 2008 and 2009, interest in SaaS applications has made it a viable business model once again. We believe that we MUST share with our customers, especially the Small and Medium Business enterprises, the lessons we have learned over the last 8 years in Digité with respect to overcoming the 2 challenges discussed above. Digité's Agile ALM on SaaS is our new service that aims to do precisely that.

Please come check us out at www.digite.com/saas. If you like what you see, please contact us at sales@digite.com!

Mahesh Singh

Vice President - Product