Saturday, February 15, 2014

Is Acceptance Criteria Written for User Stories the list of Test Cases in Agile/Scrum methodology?

In Agile/Scrum methodology, the customer requirements are written as several user stories which are small enough to complete in a sprint. To claim a particular user story is completed, all the criteria listed in acceptance criteria must have been passed. Acceptance criteria may also be referred as verification criteria for the user story. The question that the developers have is; is it that the acceptance criteria all about writing down the test cases to test the user story? What should acceptance criteria focus on? Lets analyse this with an example user story. 

Example user story:
"As a bank account holder, I want to add my friend as payee, so that I can transfer money to him at any time online".

Acceptance Criteria for above story:(Not recommended way)
  • Login into bank website and navigate to 'Add new payee' button and fill the payee details such as payee name and bank details.
  • Click on 'Cancel' button to see if new payee addition is cancelled.
  • Click on 'Confirm' button and see the addition of payee is successful
  • Check that a new database entry in the 'payee' table has been added.
  • Run the unit test automation scripts for adding new payee and verify the test reports.
  • Check that the SMS is sent using SMS web service to the customer.
  • Click on delete button to see if the new payee entry gets deleted.
  • Once payee is deleted, click 'payee list' link and verify that newly added payee name does not appear.
Above acceptance criteria details out too much implementation specific details which is not really required to be written as acceptance criteria. The developer carries out many more tests during implementation such as unit testing, the developer tests other impacted/affected modules which need not go as acceptance criteria. Such criteria does not talk about the overall goal of the user story. They does not even make sense for our stake holders to go through. Some of above criteria can only be understood by the developers. 

Let's do another attempt to write acceptance criteria that all stake holders can understand and criteria focus on the goal of the user story.

Revised Acceptance Criteria:(Recommended way)
  • Verify that there is an option which is clearly visible to the account holder to add new payee.
  • Verify that the software has option to confirm or cancel the addition of new payee during the payee addition process.
  • Verify that account holder can select the new payee added and there is an option displayed called 'transfer money'
  • Verify that account holder can transfer the money to to newly added payee a limited amount for the first time.
  • Verify that an SMS is delivered when a new payee is added to the account holder.
The bottom line is that it is essential to understand the difference between test cases and acceptance/verification criteria. The acceptance criteria should elicit the customer requirements than detailed test cases. Certainly the user story needs to be tested at minute level by the developers before the story is claimed to be done and also developer checks if everything defined in 'Definition of done' check-list is met or not. The definition of done can have things like testing non-functional requirements, code reviews, impacts tested etc.

Also it is to be noted that 'definition of done' is not to be confused with acceptance criteria. The definition of done relates to when can the software be shippable and may not apply for individual stories. 

Monday, February 10, 2014

The Importance Of Backlog/PSI Grooming In Agile/Scrum Software Development Methodology

The backlog is a list of tasks in the pipeline which need to be executed by the scrum teams in the upcoming PSIs(Potentially Shippable Increments). The epics/user stories prioritized by the product owner are queued up in the backlog and the scrum teams pull them into the Sprints as per the priority set by the business. The backlog grooming is the process of understanding the backlog items/epics in more detail. To do this the scrum members meet together and discuss the backlog items/epics to get a better clarity on the exact work to be done against each backlog item. In Agile method of software development, the backlog grooming is very essential. The backlog grooming is carried out in Agile method of software development for the following reasons.

1. Better clarity: The business or the product owner decides the epics/user stories to be taken up by the scrum teams and adds them to the product backlog. At this point, the scrum teams will have little or no clarity on those backlog items. During grooming, the developers discuss the abstract epics in detail and understand the type of the work invloved in executing those items. If required, the team members also discuss with product owner to get clarity on the items.

2. Rough estimation of the items: The team members come up with rough estimation for each backlog items. This helps for better planning during PSI planning meetings. This is required because the scrum team needs to tell the business management the the estimation.

3. Early Identification of Dependencies: Certain backlog items may have external dependencies. These dependencies have to be suitably identified and communicated to the external stake holders who are going to resolve them. Identifying external dependencies during Backlog Grooming is recommended because external teams need to learn about the dependencies and plan to resolve them such that the execution of the backlogs is not affected. The execution does get affected if the dependencies are identified late or during the execution itself.

4. Epics split into smaller chunks: Some backlog items may be too huge to accommodate in a PSI, those need to be appropriately split into smaller stories. The smaller the task is the clarity the developers will have and estimate them better.

5. Low Priority Items are isolated: Some backlog items may not be doable. This may be because of several reasons such as technology limitations or the item is of low priority meaning that it adds little or no value to the customers. These items are pushed to the bottom of the backlog list.

6. Scope is clearly defined: We all know that the scope of a task may increase during implementation of the same. This happens because developers did not understand the requirements better. The product marketing states the requirements in abstract and adds to the backlog item. In backlog grooming, the team members have dig deeper and find as much information as they can and turn to product owner to state the scope.

In agile methodology, we generally talk about backlog grooming. It is also called PSI grooming. If required, sprint grooming can also be carried out. In sprint grooming, the stories of next sprint are discussed in the previous sprint. This is micro level grooming. Sprint grooming aids smoother sprint planning process. As part of the grooming process, the defects can also optionally groomed. Defect grooming, the defect is analyzed by all the developers and leads to a 'good fix' whose impacts are identified.

Sunday, February 9, 2014

How To Switch Between 2G & 3G Airtel Networks When Both Plans Are Enabled

The 2G and 3G plans get activated when you recharge your prepaid mobile with corresponding recharge amount. You need a 2G/3G enabled handset in order to enable use these services. 

If you have both 2G & 3G plans activated and you want to switch between these two networks, you do using following simple steps keeping Nokia C6-01 as reference, however other handsets will have similar settings for doing this.
  1. Click on Settings and then Connectivity there you will see the first option that says 'Network Mode'. Network Mode can have three options namely 'Dual Mode', 'GSM' and '3G'
  2. Enable 3G if you wish to use 3G network and enable 'GSM' if you want to use 2G or regular GPRS
  3. Enabling 'Dual Mode' gives the handset flexibility to use network based on their availability. For example, if you enable Dual Mode as your network, if 3G network is available at your areas, 3G network is considered, If 3G is not available, then next 2G network is considered. 
Let's say you have both 2G and 3G plans activated and you have selected 'Dual Mode', your handset starts using 3G (if network is available) and if your 3G data pack is completely used, then your phone starts using 2G  netowrk automatically. And when 2G data pack is consumed completely, then you will still be able to browse, but the amount from your main balance is used at the slower speeds. 
Related Posts Plugin for WordPress, Blogger...