The other night, the Canadian agile testing expert Janet Gregory came to Dalian, the programmer community for its small party, everyone together for dinner, during which we put forward a lot of questions, Janet based on their own experience to give a very good advice, we benefit a lot, do not dare to enjoy, simple in this record, For our discussion.
Q: The current team is engaged in a relatively small project, so in addition to the pair programming, there is no special testing staff. But as the team grows, it is necessary to increase the role.
A: First of all, to determine whether the team has been a problem, that is, no specialized testers, the quality and progress of the project will be a big problem. The aim of agile is to solve the problem, if there is no problem, then it shows that the current mechanism can meet the current needs, does not necessarily need to adjust.
When the team grows, it is necessary to have a specialized tester because the tester's thinking is not the same as that of the developer, and it is often possible to identify problems from another perspective to better ensure quality. Especially when making products, it is more necessary to have testers (in some small projects, customers will replace testers to do the work of testing).
When you do larger projects, you need to identify a lot of users stories (user story), then, according to these user stories, cut the work into small chunks, and then do it in an iterative fashion, preferably a week or two weeks, and an iterative meeting of the entire team for each iteration, Let everyone be clear about the user stories that are going to be done in this iteration.
Q: Who will be involved in the iteration meeting?
A: The entire team, including designers, developers, testers, it is best to be able to join the customer, so that all the issues can be identified at the meeting. And it should be a member of the entire project team to participate, not to say, do not do a certain function, it is irrelevant, there is no need to understand that part of the content, everyone needs to have a comprehensive understanding of the project.
Another important thing is to hold the daily standing meeting, which is also an important way of communication.
Q: When the team needs to add specialized testers, there are two options: 1 recruiting people who specialize in testing 2, and switching from a willing programmer to a tester's role. Which of these two is better?
A: Developers and testers should think differently, so it's better to have someone who specializes in testing rather than picking from a programmer. Although having certain programming knowledge can be more beneficial to finding bugs in a program and may better help developers find out why, or even locate the cause of a defect, thinking is the first problem to be solved.
In addition, developers and testers should be mutually cooperative relationships, this collaboration is not necessarily after the developer finishes the program, perhaps before the developer writes the code, the tester can write the test case and then discuss it with the developer, for example: You see, I have so many test cases to test later, You can get a look at it first. With this early collaboration, developers will be able to avoid many errors while writing code, thereby improving the quality of the program.
Q: Can a person concurrently be a tester for two projects?
A: Not recommended. This makes it impossible to meet the requirement of working eight hours a day because there will be time to switch between two projects, not just the environment, tools, technology switching, but also thinking switching. In Canada, unlike in the United States, people have fewer hours of overtime because they are able to work within eight hours of work and do as much as possible. A team that works 40 hours a week does less work than a team that spends all day working overtime, not necessarily slowing down the progress.
Q: It is important to use TDD (test-driven development) in the Agile team.
A: The experience here comes from others, not my own (Janet) experience. Not all teams are willing to switch to TDD, but teams using TDD say they like it and don't want to go back to the way it was. But for TDD, getting started is the hardest part, because that's how you think about switching jobs.
In addition, Janet also demonstrated how to use points poker, which is a fun way to evaluate the amount of work required by user story and is more effective.
Throughout, Janet has always emphasized the need for people-oriented Agile thinking:
The relationship between people is very important, including the team and the customer, the team of each person, should be a cooperative relationship, rather than antagonistic relationship, to actively communicate and feedback, understand the situation and status and adjust. When recruiting new people, not only to see the specific technology, that can be taught through training, but more importantly to see if he can fit into the team well.
Unconsciously, we chatted for almost three hours, still do not have the intention. But we can only say good-bye to each other and hope to have the opportunity to do this kind of communication later.
If you have any ideas about agility and testing, you are welcome to comment on this article:)