Comparison of two Development Leads and Software Developers
I want to share two scenarios from my experiences. I hope the development leads and developers will read this (hopefully until the end) and evaluate their vision about the role of software developers in the quality of software products. I am also sure, many of the test engineers can relate to the experience written below, to their daily grind.
In one of the organizations where I have worked in past, the requirement documents were shared with Developers and QAs in the start of increment (Yes, at that time we were working in incremental mode, Scrum and Kanban were not as widely used as today).
To the requirement of the effort (be it development or testing) the estimates were communicated by the both teams and internal builds to be delivered were scheduled. Testers used to document the test cases and got those reviewed by Test Lead. Afterwards "Acceptance Tests” were, shared with the developers and formal testing performed on build arrival. For code management and version control, SVN was in place (Git, was not imagined by Linus Benedict Torvalds). One time I got a build email from the developer, containing the SVN branch name. From that branch, I created the build, executed regression tests (as that build was created in result of some final fixes and had to be shipped; to the client after the testing) and shared the report with the team.
The build was good to go, and shipped to the client later that evening. The next day, when I arrived office the Test Lead, Dev Lead and the developer were eagerly waiting for me in the meeting room. They called me there and as soon as I entered the room, Dev Lead asked me 'Rizwan! Did you properly test the build yesterday?' I replied yes, and I found all the fixes working fine. The Dev lead smirked and told me that the client has reported 3 major issues last night. I asked about brief details of those issues and confirmed that I did not observe any of those in the build I have tested yesterday. I also confirmed that in previous internal build I had already logged those issues as bugs, and in Yesterday's internal build I verified their fixes. QA Lead was just a silent observer in the meeting while the developer was fully convinced that tester (Rizwan) has not performed his job properly. I asked the Dev lead, from which branch he created the build, which was, shipped to the client. The branch mentioned by Dev Lead was different to that, on which I performed regression testing yesterday. I told the Dev lead that the branch which, he mentioned might contain more than 3 bugs as I did not perform testing on that, and the build was not supposed to be created from that branch. Dev Lead and developer both were still not convinced and they thought I had tested the wrong branch. I told them that I have performed testing on the branch mentioned in the email, why would I perform testing on some other branch. The developer still insisted that I had performed testing on the wrong branch, but when they reviewed the build email; I was right. The build delivered to the client was, created by them from the untested branch. Both of them were silent now and the meeting was over. Here are few suggestions for that Dev Lead;
1. Own your team and resources but don't blame others without proper investigation of the incident at your end first.
2. Don't create a battlefield between Devs and QA/Testers; both are equal participants in delivering a quality product.
3. Trust Testers as much as you trust your favorite developers; otherwise please ask them to leave instead of considering them second-degree citizens.
4. If you think testers do the least important role, try delivering a build to the client without going through tester's hand; just once.
5. If you are afraid of escaped defects, strengthen the unit test and ensure developers execute the 'Acceptance Test' sheet before they hand over the build to QA/Testers.
6. If you and your developers think QAs do a secondary job, lay them off and observe the results.
7. If you are a true Dev lead, have the courage to ask your developers to perform their tasks properly. Have the courage to let your developers feel accountable for lousy builds. Please have the courage to realize that the major bugs logged by testers show that developers, require training about performing better unit testing.
Here is the perspective of ordinary Developers (who are definitely overrated)
1. I have coded, who cares for the unit test or acceptance test so hand over the build to QA/Testers and let him find my crap; then I will clean it.
2. It is tester's job to find the bugs, why should I do this.
3. If there is an escaped defect, it is because the QA/Testers failed to catch that during their testing.
4. Developer's basic right is to sweep his dirt under the rug (should I mention that the rug, to developers, is QA/Tester).
5. It is OK to deliver a lousy build to QA/Testers, after all, I am the developer; the superior class and only one suggestion I have for such developers; if QA/Testers log major bugs against your build then it makes your skills questionable. It is not something to take pride in but to be ashamed.
After a couple of years, I joined another company. The first few weeks there, I acquired the domain knowledge of the product and then I actively started testing. For the first 8 sprints I was unable to find any Major (not Critical) bug. I could log a few minor issues and some improvements/suggestions. In the first couple of sprints, I thought as I am not having a complete grip on domain knowledge and that is why I am not finding any major bug. However, there was no escaped defect too. Later, I started getting more curious that why I am not finding Major bugs.
It was quite surprising for me rather a completely new experience that I, who was notorious bug magnet regarding major functionality bugs, had not scored yet. Then one day, I finally logged my first major bug (in the 9th sprint). It was a tricky and complex scenario and I documented the detailed steps in the bug's description. The next day in Daily scrum; when I mentioned that yesterday I logged a Major bug, the Dev Lead (and scrum master) just asked me to hold. He looked at the developer and asked how did you miss this major issue in your unit test that Rizwan caught? That was the answer to my curiosity. I realized I was doing nothing wrong, I was performing testing the best way I could. However, strong and accurate unit testing ensured no Major bug left, in the release for QA. I worked there for more than a year and total count of major bugs that I logged there was 2.
Here are few notes about the Dev Lead;
1. Quality is the responsibility of the whole team, not Testers/QAs only.
2. Developers must perform Unit Testing and Acceptance Testing properly, before they hand over the build to QA.
3. If testers/QA are logging Major bugs, it does not only mean they are doing a good job. This also means that Developers are not doing their job as required.
4. Tester's job is to declare build health from the Client's perspective, not from the unit test's perspective.
Did I tell that the developer, in that scrum meeting was really feeling sorry that a major bug found by QA in the build that he has delivered? This was a great experience for me, and a true display of professionalism, which I never observed before in my career. That incident completely changed my perspective about my own technical competency evaluation. In past, I used to find issues where developers had a habit of delivering lousy builds and where Dev leads used to measure the efficiency of QAs in terms of bugs logged by them. Before this enlightening experience, I used to work in teams where Dev leads lacked true realization of quality.
I really wish all the Dev Leads were like the person who, in the first place, thinks that developers are accountable if QA/Tester logs a major bug. After all, development effort is, usually allocated at least twice as much as the time of QA effort.
Regards,
Enjoy Knowledge Sharing.
PhD - AI security - Ethical AI - Computer Vision Research Engineer
5 年By following the vision of second type of lead we can save so much time of qa resource by logging the basic bugs and give them opportunity to think out of the box to identify max bugs.
Senior QA Software Engineer | Backend Implementation Tester | Selenium| Cypress| Playwright|Postman|JMeter|JIRA|TestRail|Jmeter
5 年Well said Rizwan keep it up :)
Principle SQA Engineer at 360training Inc.
5 年Very nice article, it exactly shows the reality.