Tuesday 25 November 2014

User Role Modeling..is this really required?


Any business requirement that needs to be formulated in user stories can be best justified if the writer knows the user roles for which the requirement will be mapped. To identify users, user role modeling is important. For example, if we want to develop a direct-sales website, we must keep our focus on buyers, sellers, admin, executives, etc. When the user roles have been identified, then the requirements can be mapped to user stories, keeping each identified user in view. More effectively, if we can associate a persona for each user, it helps broaden the thought process for that particular user, and it results in effective story writing. As the saying goes, "put yourself in someone else's shoes."
 
 Following is an example of a requirement and how to visualize it from different perspectives:
 
Requirement: To make a toy train for kids.
 
 What all are the user roles here?
  • Kids (obviously)
 
. . . and. . . ?
 
  • Parents
  • Toy manufacturer (yes, sometimes we need to consider the manufacture also)
  • Anyone else whom we can tie to this requirement (later users with the same requirements can be merged and one role can be chosen)
 Once the user roles have been identified, effective user stories can be written. Below I have provided role-specific sample user stories. These user role-specific stories not only help developers understand the requirements of the feature but also help QA identify the scope of testing.
 
Expectations related to different user roles:
 
  • ·         As a child, I want to see the toy train in attractive colors so that I crave it.
  • ·         As a child, I want to have fun using this toy with my friends so that I will enjoy it for a long time.
  • ·         As a parent, I want to be excited by the look of the toy so that I will purchase it for my child.
  • ·         As a child, I want to count the compartments of this train so that I can learn counting also.
  • ·         As a manufacturer, I want to provide my information on the toy box so that customers can contact me to buy other toys from me.
  • ·         As a parent, I want to be sure that the toy has no sharp edges that might hurt kids.
  • ·         As a parent, I want to verify that this toy is appropriate for kids two to three years old (my kid's age group) so that they are able to understand it and like it.
  • ·         As a parent, I want to buy a nontoxic, excellently made toy so that it will be safe for kids.
  • ·         As a parent, I want to learn about the manufacturer of the toy so that I can buy more toys from them.
 
 More expectations (or user stories) can be added here. Also, a few can be merged, or "conditions of satisfaction" can be added to one user story. For example, "nontoxic, excellent grade of plastic" and "no sharp edges" can be taken up as conditions of satisfaction.
 
 Now tell me which user has the highest set of expectations for the toy. Children?  :-)

The Misinterpreted Developer!

The term "developer" is not meant only for programmers. However the term developer became so popular in the last decade that it became a synonym for programmer. That's no surprise, given the way programmers welcomed the tag. However, developer has a broader sense in Scrum teams. Not only programmers but also testers focus equally to develop and deliver a quality product that provides some business value. This is the reason that in Scrum that there is only a "development team," regardless of programmers or testers. Organizations may have a separate team of testers or QAs, but the role defined in Scrum is "developer" only. Here I am only concentrating on programmers and testers. In reality, combinations of other roles, including designers, content writers, and business analysts, constitute the Scrum development team. This development team is formed with cross-functional developers with t-shaped skill sets.



 In Waterfall (command and control), it is a general practice to have different teams of programmers and testers. The higher the number of bugs found during testing, the more it is a sign of effective testing. The cubicles of testers are purposely kept at a distance from those of programmers. No casual discussions during features-functions implementation!

 Programmers used to send their tentative plan of providing builds to testers, and testers used to provide the test results as per their schedule. A cold war could be felt during this phase. Even simple bugs that could be fixed in a negligible amount of time lasted for a significant duration. This was a dark side of command and control!

 In Agile practices, the developers (programmers and testers) work toward development of a product/service and deliver some business value in a shorter duration, resulting in increased return on investment. Now, how does Scrum work to make that happen? On a Scrum team, developers work with one aim, and that is to deliver quality chunks during the timeboxed sprints. On the Scrum team, the tester is not the one who tests the tasks; the programmers or other development teammates also help in testing. Recently on one Scrum team I found tasks named "QA <task> by developer." The word developer was odd here, but the idea of sharing the load of testing was precise, and this is the only way of completing quality tasks in the timeboxed sprint.

 The role of testers becomes more interesting and challenging in Agile teams. Testers help other members of the development team understand the requirements and the different angles for testing the functionality/tasks. This helps other teammates broaden their testing skills. The same happens when programmers share some tidbits of programming.

 This is best achieved through pair testing. As pair programming is generally meant to mean two programmers working at one workstation, pair testing is carried out with one programmer sitting with one tester. The tester continuously tests the completed task with the programmer, and if any fixing needs to be done, it is done then. Again, there is not a rule that only a tester will be paired with a programmer during pair testing; in fact, any teammate can perform this role.

 So the next time we use the term developer, will we only have programmers in our minds?

Very soon we will go through CI (Continuous Integration), a very important aspect during sprints.
Stay tuned!



Wednesday 12 November 2014

Whiteboard during Meetings…


  In Scrum meetings, participation of team members, and specifically participating together, is important. At times, however, participation is not balanced in a meeting. A few members actively speak, while others only listen. (Highlighting this point does not mean that listening is not good.)

 There are several reasons why some team members do not participate in meetings, but one of the main reasons for new Scrum team members is that they are shy to speak. This discussion pertains only to these situations.

 ScrumMasters use spreadsheets, electronic tools, or sometimes whiteboards for recording the ideas presented by members at meetings. I prefer the whiteboard because it is not only a good way to record the ideas but also everyone can see these ideas easily. This method of visualization also increases active speaking and participation of members, because when the ideas are visible on the whiteboard it spreads the message, "Your idea is valuable." When members see that their ideas are valued, not only do they feel valued but others also get motivated.

Second, we retain clear, visual ideas longer in our minds, and we avoid redundancy. You can use symbols, signs, or whatever else works.

Despite other means of capturing meeting notes and ideas, the significance of the whiteboard remains. However sometimes it becomes necessary to use other means apart of whiteboard for example, if team is distributed at different places use of electronic means becomes inevitable. Still for local discussions whiteboard may be used.

Here are some do’s and don’ts for the uses of whiteboard.

Do's:
Use block letters, as they accelerate reading speed.
Use alternate-colored markers.
Use black, green, blue, brown, or purple for easy-to-read text.
Use red, orange, or pink as highlighting colors.
Use only standard abbreviations.

Don'ts:
Avoid color coding, as in the flow of discussion it becomes difficult to manage.
Avoid small fonts that may be difficult to see by the members sitting farther away.

Finally:
When you need to erase the ideas/notes from the whiteboard, capture a snap on your   mobile phone so that you can refer it later. Encourage team members to do the same for their own future reference. This will give them freedom from taking notes during the meeting, so they can concentrate only on the discussion.

Thursday 6 November 2014

Quality test procedure in two week Sprints? Don’t you play Cricket?

     Two week Sprints. Why not? I compare it with Cricket. When ODIs wrapped the show of five day test matches and then came the 20-20 with more excitement, didn’t we welcome? Quick ROI (return on investment), result oriented and happy stakeholders. :-) 

To ensure delivery of shippable increment with each iteration, programmers look at each story and related tasks to identify the most necessary tasks of the functionality. Those tasks are completed first and then subsequently the rest tasks of the functionality are taken up. The idea here is that instead of delivering nothing of that functionality at the end of the sprint, at least deliver something which works.

Agile testers take the same approach and identify the happy path of the functionality first and start by making sure the happy path works.  And this statement does not indicate to leave the negative tests. Negative testing is vital for quality product. A good approach is to automate the happy testing and once found fine then go ahead with negative testing. However this is very necessary to identify the criticality of the product.

If any defect which is not observed in normal circumstances i.e. to produce a defect it takes various tricky steps which are almost unusual, then it is worth to leave fixing those. To stop the delivery may impact on ROI (return on investment) and one of the good things in agility is early ROI. But yes, this defect needs to be indicated to Product owner. It can be considered as a technical debt and may be re-paid later, if felt necessary. This practice is acceptable in short sprints.

In scrum teams, programmers work using TDD (test driven development) and ensure positive scenarios are working fine. Testers write regression test scripts. The development team which comprises of programmers, testers, designers and sometimes business analysts also, execute these test scripts during the last two days of sprint. Certainly the teamwork during sprints plays a major role in delivering quality chunks in such a short period. And this all get possible with the help of automated tools and continuous integration.

In my future articles we will be exploring such tools used in scrum teams and the continuous integration.
So stay tuned…

Monday 3 November 2014

Game of Imagination!

     We all know that Scrum games are helpful in building team cohesion, energizing everyone, and breaking the ice for shy teammates.

Here is a game that I found very interesting and easy to play. I got the idea for it from the thematic apperception test (TAT).

Necessary materials:
1. One large blurred image, which should show one person doing some activity. This image should be blurry enough that the team can imagine any human presence but cannot definitely identify who the person is and what exactly he or she is doing. For example:

That image may be shown:
  • Through a projector.
  • On a big screen in a conference hall connected to a laptop or PC.
  • On a flip chart, pasted or drawn on.
  • On a whiteboard, again pasted or drawn on (drawing a blurred image may be a tough job!).
2. Writing pads/papers for teammates
3. Pencils/pens for teammates

How to play:

1. The facilitator will ask each development teammate, "What would you be if you were not IT personnel?"
There will be different answers given, such as:
  • Doctor
  • Air force pilot
  • Police officer
  • Businessman
  • Professor
  • News reporter
  • Poet/singer/guitarist
  • . . . And you can add some unusual, imaginary roles as well.
 
2. The facilitator then shows the image and asks each team member to write a story about that image, related to the role each chose for himself or herself. The story should be five to seven lines long only. (Give a time limit of six minutes: one minute to think and five to write.)

3. Once everyone has finished writing their stories, the facilitator will ask each team member to narrate the story he or she has written.

4. After finishing the story-telling round, the facilitator will disclose the "real" role of the person in the image. This role will be the choice of the facilitator, preferably a role that was not among those the teammates listed in the beginning.

5. The facilitator will now ask the team to collaborate on writing a single story about the image, bearing in mind the role the facilitator named. It should contain ideas from each team member and be 10 to 12 lines only. (Time limit: 20 minutes, 5 minutes for discussion and 15 for writing)

6. The team will select the narrator of this story. The narrator may be the last one who entered the meeting, or decided through a draw, or whatever the team decides.

No conclusion will be given for any story. The image contents and theme used in one game may be modified for games in the future.

This exercise will not only be refreshing but it will also give wings to the imagination of team members.

A few explanations:

• Why individuals need to narrate the story?
 Narrating story will work as an ice-breaker for shy team-members.
• Why writing story two times, one individual and one group story?
First story will be individuals thought and will solely intended as an ice-breaker. The second story will be the result of team-work and team-cohesion.
• Why the image needs to be blurry?
If the image will be clear then it will stop the imagination from the team-mates. For example, if we see a person in army uniform then it will be tough to write a story on a doctor, at least as an active actor of the story. Same will apply when the second story will be discussed and written.
• What does ‘story’ imply here?
Story here means a few sentences on the role. For example- Harry is a teacher. He goes to nearby village over weekends and spread literacy. He does this free of cost ….continue with your imaginations.
• Why the facilitator will select a different role that was not listed in the beginning.
If the role is among the roles listed in the beginning then the story is already there.   The idea for a common story here is to ignite the team-work and cohesion, in action!

Please feel free to ask for any further explanation needed for this game.