Subscribe by Email


Showing posts with label Responsibilities. Show all posts
Showing posts with label Responsibilities. Show all posts

Wednesday, July 10, 2013

What work does the testing team do at the start of a cycle - some answers

This post arose out of a question that a new manager of the team had for us, the middle management of the team. His basic question was that in the initial part of the cycle, where there were the requirement being framed by the product manager or the product management team (depending on how large the product was), and these requirements were being broken down into smaller features and tasks for the purpose of estimation. Even after this, there was the period where development of the features was happening, and this would be done by the development team who would finally deliver the required code to the testing team, and they could start testing. So, what was the role of the testing team. For the moment, this question was not meant to figure out what to do with the excess testing team at these periods of time, instead it was meant to understand the role of the testing team across the duration of the project cycle, from the beginning to the end. And there was a lot of understanding of what happened when the testing team got the features from the development team, but not in the initial parts of the project.
We had a detailed discussion with the manager about this, and helped him understand this from the perspective of the team. The first essential part was that the testing team did not just do testing, so we should call them them the QE team. Testing was what people saw them do, but there was a lot more work that they did. We finally walked him through a list such as this one below, and if you do not some do some of these in your team, maybe you can get some tips from here. And if your team does other work, then please share these in the comments.
- The testing team is an essential part of the breakdown of the features into tasks and also with the estimation. Members of the testing have an incredible knowledge of the features and the workflows because of their testing of the features on a regular basis; this knowledge can be more than the developers and the product management. So if there is a feature discussion, the testing team can help figure out the workflows that are impacted; in one case I saw the QE member causing embarrassment to the product manager when the QE pointed out that the workflow that the product manager was advocating could be done in much less change than what the product manager was advocating. After that, the product manager made sure that the QE team was involved in all such discussions.
- There are numerous cases when the previously released product needs a patch or a dot release. In such cases, the actual development change can be very small, but the testing of that patch or dot release can take much more time, and need many testing team members for one or less development team members.
- When the team is developing automation for testing, the initial time period of the project cycle helps give them a time required for developing automation scripts for features that are already released (and the automation ensures that the testing of these features takes less actual testing time and more regular automation runs).
- When the developer is busy doing the coding, that is the time when the QE team member finishes up writing or modifying the test plans and cases.
- During the design process of the feature, typically the QE team members plays an essential role, working with the product manager, the workflow / UI designer and the developers to work out the actual details of the feature in terms of implementation. This can take many iterations if the feature is complex, and in my experience, in many cases, the QE team member has pointed out several intricacies of current implementation that need to be taken care of in the design.


Sunday, June 3, 2012

What is meant by CRC cards? How they are used in extreme programming?


In its full form the CRC cards are known as “class responsibility collaboration cards” and have been considered to be a brain storming tool in the field of designing of the object oriented software. 
The concept of the class responsibility collaboration i.e. the CRC cards was introduced by the two people: Kent Beck and Ward Cunningham. 

What is written on index cards used in CRC cards?


- These cards find their typical use in the determination of the classes that are needed and also regarding their interaction among themselves. 
- The creation of a typical CRC card is regulated by the use of index cards on which the following 5 basic things are written:
  1. The name of the class.
  2. If applicable its super classes and sub classes.
  3. The responsibilities of the class.
  4. The name of the other classes involved in the collaboration for the fulfilment of the responsibilities.
  5. The name of the author.

What kind of CRC card should be used?


- To keep the complexity levels of the program design at minimum it is recommended that a small card is used. 
- Such a card helps the designer to focus up on the essential requirements of the class and thus preventing the designer from falling unnecessarily in to the details of it. 
- Also, the designer is prevented from getting in to the inner workings at one time when so much of detail holds the chances of becoming probable counter- productive thing. 
- The class responsibility collaborative cards are a means for forcing the designer to keep the class refrained from too many responsibilities.
- Since the cards have the property of portability, hence it becomes easy to lay them out on a table and re arrange them according to the designs discussed by the team members with the other people. 

Method for determining type of card


- A method for determining the types of the cards required is recently becoming very common. 
- The method consists of determining what all cards should be created by reading all the specifications regarding the program that is being designed.
- It also takes in to consideration of each noun as a class and on the other hand each verb as a responsibility of the class or the noun to which it rightly belongs. 
- To be more precise, you will find that the existence of the nouns or the verbs does not calls for a class or responsibility in the program, though it is still considered to be a good point to start with. 

Below we have given an example of the class- responsibility collaboration card’s format so that it becomes easy for you to understand how actually it displays the information:

- Name of the class: super class
- Sub classes: (lists the name of the classes that are derived from this class)
- Responsibilities: list all the responsibilities of the classes and description of the methods being used.
- Collaborations: this lists the relationship of the class to the other classes.

Use of CRC cards in Extreme Programming


- The CRC cards have played a great role in helping the developers design the software system or application as a team. 
- The best thing with the use of the CRC cards is that they allow the developers to break away from the usual monotonous procedure and follow new routines.
With the help of the CRC cards the entire project team is able to give the individual contribution in the development of the software project.
- This further leads to the incorporation of more individual and creative ideas in to the design of the system.
- For every object there is an individual CRC card. 


Facebook activity