Archive for March, 2009

Retaining Customers During Down-turns

March 19, 2009

  

(Contd.)

  

Waste 2: Over-Engineering

  

In IT services there is a clamor for process models of all kinds. This is understandable because many activities related to software are mental in nature. Unless there is rigor of a model and a method, quality and repeatability are dicey. But one often sees a swing between two extremes: at one end there is an utter disdain for anything remotely resembling a process and at the other end processes of questionable value proliferate to severely impact production efficiencies. And very quickly disillusionment sets in, strongly reacting to the wisdom of processes.

 

As mentioned in other posts, right-sizing the processes with their underlying artifacts is crucial to balance the cost and benefit. A small sample of heavy processes: many simple projects can be tracked using a Excel sheet whereas for some reason, a pert/cpm kind of plan is prepared; an estimation model goes into excruciating level of details; defect classification codes confusingly overlap and run into multitude; activity codes on a timesheet are needlessly granular and overlapping; computing dozens of process metrics, not all of them relevant (see below); applying complex prediction models of questionable validity…

 

For some time, some projects in this organization were scrupulously computing and reporting a commonly-in-use metric of ‘Adherence to Schedule’. A little digging showed the projects were basically streams of defects to be fixed within a few hours to a couple of days at the outer. The status was jointly reviewed by the customer and the software team at the start of the following day and the plan for that day was agreed. If some defect did not get fixed on the previous day for whatever reason, it got done on the next day without generating any heat. The ‘planned completion date’ was being (re)negotiated daily. And a meaningless but feeling-good 100% ‘Adherence to Schedule’ was perpetually reported!

 

Mindless application of process models and heavy processes are more wide-spread in use than as exceptions. Pruning the processes and their artifacts to fit the purpose significantly cuts out waste.

 

To continue on other themes for reducing waste…

Retaining Customers During Down-turns

March 18, 2009

 

The business tsunami must have already hit the shores of IT service providers by now. In peace times it is always useful to understand how well is our customer doing in his market place, his points of success and vulnerabilities, and add high-impact value to our services. However, in war times such as this, the universal common-sense trend is to fold inwards on costs and productivity. Initiatives to help our customer along this direction would go a long way to forge a stronger relationship. It would not be a smart idea to do nothing maintaining status-quo or get our strategies mixed up.  

 

If we have been servicing our customer for sometime now, it shouldn’t be too difficult for us to see where these opportunities lie. It’s time to make those moves if it is not already too late.

 

Cutting down on waste is an effective strategy to reduce costs and boost efficiency. There is an excellent article by Bill Kastle in iSixSigma magazine (1) on how to cut waste in Financial Services. This post distills some experiences in IT services industry. Here we go:

 

Waste 1: Over-Communication

 

In a production model where the software development involves the long chain of end-users, user-specifier, analyst, designer, coder, tester, user-acceptor, there is communication at every step. A number of system models are in use to support this communication with clarity and efficiency, depending on what is communicated.

 

IT services are often rendered using a model of a mix of onsite and offshore resources.  In some cases, when there are no onsite resources deployed by the offshore service provider, the offshore team directly interacts with the customer’s project manager. In either case, effective communication between the two geography-separated teams is absolutely essential for the success of service delivery and holding regular telecons is a well established practice. A telecon is lot more efficient and time-crunching than exchanging multiple rounds of lengthy emails and much greater clarity is obtained on each other’s views.

 

On the negative, these telecons go on for long hours at inconvenient schedules (due to time differences) for the customer while soaking up a good amount of most productive morning time of the offshore team and is often not sharply focused. Also some more time is consumed in assembling before and returning to desk after the telecon.

 

Assuming there is a diktat that from tomorrow a telecon that lasted for one hour would be limited to 45 minutes by an automatic timer, how would I, as the host initiating the telecom, manage? Some simple steps, really:

 

- I would plan the structure of the telecon by listing the items of priority naming participants and collecting the background material. 

- Communicate the plan and the relevant material to all relevant participants.

- With this prior preparation, tightly orchestrate the call, keeping to the subject on hand and limiting the participation only to those who need to be at each step.

 

If a project of 5 team-members holds 3 hour-long telecons in a week with 3 participants per telecon, a reduction in its duration by 15 minutes yields 1%+ savings of productive hours, not to speak of the customer going to bed 15 minutes earlier and reduced telephone bills!

 

There are times one has to be innovative beyond achieving this basic efficiency in communication. On one occasion, a customer brought up his tale of woe: he had to have these daily telecons with the offshore team that kept him awake late into the nights and sapped his energies. He was building an application, with the help of an offshore team, for managing documents of legal cases and the associated workflow in a law firm. There was an enormous variety in those cases and also in the following workflow. And it took him a lot of time to describe these requirements to the analyst on this side who was trying hard to make sense out of the talk (nevertheless, a vast improvement over the earlier arrangement where he had to make the techies understand him). The customer candidly admitted that he usually missed out a few points in the welter of details discussed, which with great fidelity were missed out as well in the software delivered. And the QA marked them later as defects in the software.

 

Does the above tale of woe point to some ways of reducing the burden of communication and also incidentally reduce defects?

 

Yes, there is at least a couple that could improve matters.

 

Firstly, even in a telecon, clearly a more structured way of articulating the requirements could be deployed. For instance, if screens are used mainly to specify user activities, the requirements may be tightly sequenced as: a) for each field, description (syntax and semantics), default value, display control, filed-level validation b) screen-level (or inter-field) validation and computation and c) for each event (not covered under a) and b) its description, and processing. Templating the requirements thus cuts out free-style (and wasteful) communication and also safe-guards against omissions and lack of clarity very early in the SDLC. This holds regardless of development paradigm: waterfall, agile, etc.

 

This is in a way no different from the traditional method of systematically capturing the user needs in a comprehensive requirements document, instead of catching them on the run as is wont now.

 

As an aside, this is also a potential source for quality problems because the testing team, by not being part of these telecons, is never first-hand aware of the requirements or changes agreed with the customer during these telecons. This disconnect shows up as inadequate coverage in testing or, worse, wrong test cases. A mitigating practice is to at least capture crisply the highlights of the telecom in a follow-up shared communication.

 

Secondly, a familiarity if not knowledge of the application domain significantly helps in reducing the communication burden in regard to understanding requirements. While the luxury of a domain expert may not be available on most occasions, alternatively a short capsule of training program in the problem domain for the analyst greatly facilitates faster comprehension of the requirements. This compromise approach is vastly under-rated or untried. In practice, it has always significantly speeded up capturing of the requirements more completely and clearly.

 

Another aid to easier understanding of requirements: In many projects, short or long, developing a glossary of entities, rules, validation, exceptions, etc. capturing the semantics of the application supported by cross-references is a very useful aid for the same purpose of easy comprehension and also for conserving application knowledge gained over time, obviating the need for verbose documentation. Going beyond the requirements gathering phase, a good glossary is an effective communication tool in all phases of a project. And the nice thing about it is that it could evolve incrementally starting from scratch as more facts are uncovered. This, in practice, has not received the attention it should.  

 

Sometimes the telecon consciously moves away from tasking or problem solving or reviewing mode into a rambling mode merely to establish or strengthen the rapport between the teams on both sides. Or, junior members are called in to watch and learn how to interact with customers. These are planned departures from the course of efficiencies espoused herein.

 

We have looked at only one kind of communication – telecon, and how to bring efficiency and quality therein. The structure of the telecon would depend on its purpose and would evolve over a few sessions. Where the telecon is to explain user requirements, we also saw some approaches to prepare ourselves better in reducing the burden of communication and achieve enhanced quality too. The processes of communication in IT services are pervasive and substantial in a project with enough opportunities to cut out waste at every step and to boost quality.

 

Can we shorten the long service chain of end-users to user-specifier to many in the IT service provider organization and back to user-acceptor? Also can we pare the written-down documentation to a minimum?  These steps should in principle reduce the over-all load of communication. That’s a subject for another day, with implications much beyond communication load.

 

Enriching views and experiences from you, in concurrence or contrary, are most welcome.  

 

To continue on other themes for reducing waste…

 

Ref: (1) http://finance.isixsigma.com/library/content/c040324a.asp

Jest a Minute!

March 12, 2009

This morning I received this ‘forward’ from my professor! Had to share it with all!

A new vacuum cleaner salesman knocked on the door of the first house on the street. A tall lady opens the door.

Before she could speak, the enthusiastic salesman barged into her living room and opened his big black plastic bag and poured out all the cow droppings onto the carpet.

“Madam, if I can’t clean this up with this new powerful Vacuum cleaner in the next 10 minutes, I will EAT all this dung!” exclaimed the eager salesman.

“Would you like chilly sauce or ketchup with that” asked the lady.

The bewildered salesman asked, “Why, madam??”

“There’s no electricity in the house…” said the lady.

MORAL: Gather all requirements and resources before working on any project and committing to the client…!!!

(With due acknowldgement to the unknown original author, thanks to Prof H B Kekre for the ‘forward’)

(more…)