Sunday, August 10, 2008

Is QC Really Necessary ?

I think we got the answer already. I, as a QC, do not try to answer this question myself. But here, I would just like to refer to an interesting artical describing how a PM fell into this situation in a difficult meeting. This is from Hai Phuc Nguyen - My chief thought who was interview me and gave me the key to open AM door and I have learn a lot from him since then. He's very kind and done very good so far in his responsibility as a Product Manager at Agile Mobile. Now he is going start his private business, and will leave AM at the end of next week. Good luck to you Hai on the new venture and Big Success will come to you very soon :)

Actually, this entry was written last year on Feb-2007 but I'm sure it's still a wondering question these days in IT folks. Now let's see how difficult meeting is...

Once in a while, there was a meeting like this:
(recommend to whom is devloper or manager and read this, and QC too :))

"
Developer: hi manager, in my opinion we should discard our QC team because they do not add any value. All defects they found can be discovered by developer team, they repeat developer team activities that make the project’s cost is increased
Manager (looked so angry): what did you say? it is so funny when we discard QC team, who perform testing for us and who take responsibility of delivery’s quality?
Developer: you have emphasized we need to reduce the redundant cost, try to avoid duplicated activities, increase the productivity. I just base on your goals to propose that idea!
Manager: It’s ok. Just return my questions, can you provide more detail on your suggestion? - the manager does think developer’s suggestion is not the good one but he want to point out the mistakes of developers.
Developer: Let’s I raise my point. In our project, we have the following activities:
1. BA team collect and write requirements.
2. Developer and QC team review the requirements
3. Developer write the code, QC create the test case
4. Developer send build to QC for verify the build.
We can save the cost by developer team, why QC team need to test because all kind of tests can be covered by developer team.
Manager (looks patient): who will create test cases and execute test to be sure the product satisfy the requirements from client.
Developer: most of defects in tracker belong to lack of unit test from developer team, that we can cover by unit test and use coverage tool to identify what code is not tested by ourselves.
Manager: if you use unit test, you can not sure the quality of product because one developer is assigned to separated features and no one takes responsibility of functional testing.
Developer: Business Analysis - BA team can use some testing framework for functional testing, such frameworks are available for free like Fit framework.
Manager: how about the integration testing?
Developer: if you are sure unit run well and we manage the contract among modules well, integration takes less effort for testing. We can write the integration test by code and it is executed automatically.
Manager (becomes embarrassed): how about the performance?
Developer (laughs): we can do better, we log the main activities, analyzing data for whole process not just run the application and read the result.
Manager (not find appropriate words to criticize developer’s arguments): I have not seen this case before because all projects have QC team. Let’s have that team in our project. The meeting is closed. 

"

There are two items need to be clarified here:

1. What is the main responsibility of QC team? It is just cover defects cause by developer due to lack of unit test, if so we do not need to have QC team in case developers are guru and they write enough unit test to cover all implemented code?   (Sorry, I have some words on this, here)

2. Whether all activities of QC team can be done better by other team like BA, developer team. So do we need to have QC team for your project or we only keep a little effort for QC team.

What do you think about these two items and if you were manager in above story, what will you say to developer and persuade them maintain QC team is a must for project to meet product’s quality?

(Source: Hai's blog)

P/S: this is another same same interesting discussion from Buu Nguyen's blog.
>>> And if you are lazy to find the answer for yourself, go here for it

4 comments:

  1. Hi you guys,

    Reviewing the results should be done by not-you yourself is always a right way we should do.

    Developing and testing the software should be done before the release is launched by the users. Don't you think there are many things should be done before that TIME, do you?! (We have a thing labeled DEADLINE). All of us together do it.

    In fact, the cost for 1 good developer is always much more 1 good tester (at least 1/3). Let the developer does the testing job (including Unit test), don't you feel it is wasted, do you?

    Besides, some companies let testing team executes Unit test also; some companies let the testing team creates the Use cases etc; no problems. What you call who does the testing tasks is not a problem.

    Please advise me.

    ReplyDelete
  2. Additional, unit testing, functionality testing, (integration testing) and performance testing are only 4 of test types we should do. I think all types of necessary testing should be done for the project. It could be the correct answer.

    ReplyDelete
  3. @Chau, I agree, we should NOT let a person play in both role as football-player and referee. But developers can take turn/switching to test each other feature. Test is very easy, just to be a patient-user when using the product. Moreover, they have skill of coding they may see other-dev usual-mistakes further than a non-coder (user-tester). On the other hand, they do not need to write any test cases, since we all know that most of bugs is not from test case, right :). So developer still do testing job better than a tester?

    ReplyDelete
  4. So developer still do testing job better than a tester?
    Yes and No. It depends who is the developer. But no one hires a more expensive person to that job hu?!

    Your comment: Test is very easy.

    - Well, Yes and No. It depends you have the head of the tester or not. If you don't have, see you next life.

    Tester sometimes makes everyone surprised when they found the bug of customers, the bug of the design and the developing stages. Sympathy them when they cannot see it earlier.
    Let me call them as tester with all my respect. Good testers.

    ReplyDelete

Note: Only a member of this blog may post a comment.

Related Posts Plugin for WordPress, Blogger...

Related posts