A Case of Blame Game
Recently, a colleague was given an assignment to prepare the Low Level Design (LLD) document for an enhancement request from the customer. The guy is very experienced (8+ years) and had been frequently working on design and coding assignments.
He prepares the document and passes to the design document reviewer. The reviewer cross checks the requirements with High Level Document (HLD) and approves the LLD with some suggestions. The LLD document is given to the developer.
In the meantime, the architect who is responsible for high level design changes his mind and provides a new version of the High Level Design (HLD) document. Now the guy preparing LLD gets confused about the complex logic that was present earlier and the new thinking from the architect.
Not to delay the preparation of LLD and pressure from the manager, he quickly makes changes to his earlier version of LLD by looking at the newer version of HLD and passes to the reviewer. (This time they have an informal discussion about the changes while having evening tea)
The reviewer having so much to review has a look at the logic and approves with cosmetic changes. (May be just to show off). The developer completes the code on time and everyone is happy.
The System Tester uses HLD for cross checking the logic on which various requests are generated depending upon the selections being made for the various fields on the current page. Boom! There is a flaw in the logic being developed and the bug gets escalated.
Bug review meeting is held between the project lead, team leads and testing manager. The manager responsible for the delivery of the module is asked about the quality of work being done. He is told that his team is not paying attention to the requirements.
The team lead comes back and has a meeting with LLD Designer, LLD Reviewer, Code Developer and Code Reviewer (same as LLD Reviewer).
LLD Designer: I had done the changes as per the HLD. But the logic was not clear and the HLD designer sitting at the remote location didn't reply to my queries in a timely manner.
LLD Reviewer: I had reviewed whatever was given to me in order to check that the LLD is understood by the developer easily. I was told by LLD designer that the logic is correct. Even we had an informal discussion on this
Code Developer: I have written my code according to the LLD. How can I be responsible for some mistake in LLD?
Code Reviewer: I had reviewed the code according to LLD and since they were in sync, I approved it.
The manager is most furious with the Reviewer because he is involved in LLD Review and Code Review. The manager argues that there are bound to be mistake in LLD or Code and his job was to review. If he has not caught the fallacy in LLD then what is the purpose of reviews.
Who do you think is responsible for poor feedback from the customer?