Project Management

Please login or join to subscribe to this thread

Financial consequences of software bugs

linkedin twitter facebook  
avatar
Anonymous
The situation:


1. The IT company develops dedicated software for one of its clients


2. This software is used by the client for generating bills and financial information (invoices) for end users


3. The client changes the specification of some crucial algorithms once a month and has external deadline for generating invoices (using this modified algorithm) on 10th of each month. The specification is sent to the IT company on 26rd day of each month


4. Code modifications are relatively simple and take about 1-2 days of one person to complete


5. Testing on real data can only be conducted on 3 days a month (3 days before the deadline, i.e: 7th, 8th and 9th of each month)


6. Testing on real data is performed on the IT company side and on the client side.


7. On February the following test were performed:

A. By the IT company:

- regression tests

- black box testing (if the invoices are generated, their visual form, not the correctness of financial data)

B. By the client:

- comparison of generated data and the data which should appear


8. On February 10th all suggested corrections were made and the client accepted the modification. No written acceptance has been signed.

9. After generating the invoices and sending them to the end users the bug showed up, which resulted in miscalculation of financial data (the system generated invoices on the amount which was far lower than the real amount that should appear on them).



And now the questions:

- who is responsible for the client's loss?

- who should pay the difference?

- how to manage that kinds of risk?

- should the IT company agree to monthly changes and only 3 days for tests?

- how can the tests be improved?




(Sorry for my English - I'm not a native speaker.)
avatar
Mark Price Perry Business Driven PMO Evangelist| BOT International Orlando, Fl, United States
Dear Anonymous, there are many different engagement models and contractual agreement instruments that can be used between an IT company and its customer. In addition to deadlines for submitting specifications, making code modifications, testing the modifications, etc; acceptance criteria, penalties, and risk management also can, and arguably should, to be addressed in the agreement. Without knowing the terms of your existing agreement, it is difficult to be comment, but below are a few thoughts and answers to your questions. Q1 - who is responsible for the client's loss? A1 - the client is (unless they have an agreement stating otherwise). Q2 - who should pay the difference? A2 - first, can corrected bills be sent out? Ideally, the client's customers should be sent correct bills, if possible, with an explanation. If not possible, unless the client has an agreement stating otherwise, the client is responsible. Q3 - How to manage that kind of risk? A3 - code defects should be addressed in the contract between the customer and the IT company. Typically, this is in the warranty or limited warranty section of the agreement. Example verbage could be - "IT Company warrants that for a period of (xx) days from the Effective Date Acceptance of Code Modifications that the software customizations performed will be free of defects in materials and workmanship under normal use. Customer’s exclusive remedy and IT Company’s entire liability for the foregoing limited warranties shall be: The correction of the software customization errors that cause breach of the warranty, or if IT Company is unable to make the software customization operate as warranted, Customer shall be entitled to recover the fees paid to IT Company for the software customization." Q4 - should the IT Company agree to monthly changes and only three days for tests? A4 - the IT Company should only agree to work that it can do. Q5 - how can tests be improved? A5 - you might consider setting up a dedicated test environment so that testing on real data is not limited to just a few days prior to release. Also, you might want to define your testing process, establish scripts, and have both the IT Company and the Customer involved in comparison of the generated data. If the IT Company is doing regression testing and black box testing, one would think they would be looking at more than just the visual form of generated invoices. The code modifications were to change algorithms. I would think that would be invoice data, not form layouts. Hence, the testing done by the IT Company (the way you described it), seems a bit inconsequential. Most IT Companies seek to have very clear client engagement models as well as systems integration and/or software development agreements that clealy and comprehensively show the responsibilities of both parties. And of course, it is ever so important to follow the engagement model. For example, you mentioned that the client accepted the modification, but no written acceptance was signed. In most engagements, if you don't have written acceptance, you don't have acceptance. Going forward, there are a number of excellent resources and firms that specialize in helping IT companies define or improve their engagement models, ensure their agreements are good, and provide training to the engagement managers so that they follow the client engagement process in order to keep to the agreement to both best serve the customer as well as keep the IT Company free of any contract breaches. Hope this helps. Good luck. -- Mark Perry, VP of Customer Care, BOT International

Please login or join to reply

Content ID:
ADVERTISEMENTS

I did this thing on the Ottoman Empire. Like, what was this? A whole empire based on putting your feet up?

- Jerry Seinfeld

ADVERTISEMENT

Sponsors