How to engage tight-lipped team members? Or the unspoken secret of Speed Dating in Retrospectives!

In every team, there have always been one or two people that are tight-lipped. It is not easy to get them talking and participating in team discussions. You need to rely on your facilitation skills to get them involved in. The more experienced you are in understanding different personalities and dealing with them, the easier it gets to engage them in team activities.

However, if you just started working with a new team or you are yourself a novice Scrum Master (or a facilitator in general) it might be hard to engage tight-lipped team members; the solution: Speed Dating Retrospective style!

In the following section, I am sharing with you the steps to run a successful Speed Dating Retrospective. Use this as a template and customize it based on your team.

The Topic
  1. I asked everyone to come up with two topics, write them on sticky notes and keep it to themselves.
    • Note: There is no mention of speed dating yet. You can keep it secret until later on and surprise your team!
  2. After everyone was done with their topics, I asked one by one to come to the wall (or whiteboard) and stick the most important topic in their hand on the wall and discuss it. I asked team members if the topic is already on the wall (or something similar to it on the wall) to discard their topic and use the second one. 
    • Note: In rare cases that both topics are on the wall, ask your team members to come up with a third topic. Alternatively you can ask them to choose one of the two topics in spite of being a duplicate. It is up to you to decide based on the topics and the dynamic of the team at that moment.
The Discussion (Speed Dating)

Once everyone has their topic on the wall, it is time to describe the rules. The rules are easy and simple to comprehend (extremely simple if you know the rules of speed dating):
  1. Ask everyone on the team to find a partner; to group teams of two (in case you have an odd number of team members, one team will be three).
  2. Ask team members to discuss their topics with their partner, one on one, as if they are dating. You will give them 10 minutes time, and let them know midway to switch. In the first half of 10 minutes, the first person is talking about his/her topic and why he/she picked it up; second person is listening and giving feedback on the first person's topic. Then ask them to switch roles in the second half.
    • Note: It is up to you to decide how much time is needed for a dating discussion. You can change the 10-minute dating time based on the time you have and the discussions complexity. As a rule of thumb, you want to allocate 1 hour for each week in a sprint.
  3. After 10 minutes, ask team members to switch partners and find new ones. A new date, a new topic!
  4. The speed dating continues until everyone talked to every other person on the team.
You might ask what's the benefit of playing this game? Playing this game gives everyone a chance to talk to every other person in the team in person. People in the smaller group tend to be more relaxed and talk more freely, especially since there is a buzz going on in the room. No one is listening to them other than their partner. You would see them listening and more importantly talking actively. It will mesmerize you how this technique work, just give it a try.

Get them talking by asking them to talk to only one person at a time
Are you in an agile environment? Are you thinking of using this as one of your retrospective technique? If so, the next step after the speed dating round would be to ask your team members to choose two or three of the most important topics and focus on them. Since they have heard every other person and their topic, it will be much easier for them to pick the most important ones. You can use a dot-voting, vote by hands or sticky note voting technique, up to you. Afterwards, you would focus on the most important topics selected. As a team, you then would try to come up with ideas on how to tackle / incorporate them in the next sprint (or iteration). At this point, as a team you need to come up with action items for each topic. Also, make sure that team members volunteer to pick up action items identified. Again, note that how much more the tight-lipped team members are vocalizing. 

This was how I once ran a Speed Dating Retrospective
  • Intro – 5 Minutes
    • Why retrospective?
    • Three Words; everybody sums up the last sprint in 3 words
  • Proud & Sorry – 15 Minutes
    • What are team members proud or sorry about?
  • Group Discussion – 50 Minutes
    • Speed Dating (5 minutes and then switch partner)
    • Action Items; Dot Voting - Start, Stop, Continue
  • Feedback – 5 Minutes
    • Feedback Door


Scrum Master is Responsible for Game - The easiest way to communicate responsibilities of a Scrum Master

Have you ever tried to make sure that your team is completely aware of what the Scrum Master's role is about. Are you looking to educate your team members through playing a game on that? You are in the right place, once I played a game with my team to go over Scrum Master duties. There was good discussion going on and most of all we had fun playing the game.

What was the game you are asking? The game was me reading out statements and asking Team members to shout if they are True or False. I am calling it the "Scrum Master is Responsible for" game. After asking each question, if there was disagreement between team members regarding the answer, I would let them to discuss and challenge each other and at the end it was my duty to jump in and make sure everyone understood the topic correctly and the right answer for it.

Game: "Scrum Master is Responsible for v1.0"

These are the questions to consider for "Scrum Master is Responsible for?":
  • Scrum Master is responsible for successful delivery at the end of each Sprint.
    • Team is responsible
  • Scrum Master is responsible for preparing for the demo and presenting it.
    • Ideal demo is the one that stakeholders can do it themselves.
  • Scrum Master is responsible for removing impediments.
  • Scrum Master is responsible for facilitating the scrum events. The events include but not limited to the followings:
    • Daily Stand Up
    • Sprint Planning 
    • Sprint Review (Demo)
    • Backlog Grooming
    • Retrospectives
  • Scrum Master is responsible to assign tasks, user stories, spikes etc.
    • Scrum Master never assign tasks; it is the Team's responsibility.
  • Scrum Master is responsible for maintaining the documentations.
    • It is Team's responsibility on maintaining any documentation they are providing.
  • Scrum Master is responsible to maintain the Product Backlog.
    • It is Product Owners' responsibility to do so.
  • Scrum Master is responsible to come up with Definition of Done, Definition of Ready and team agreements and update them.
    • It is Team's responsibility to come up with those.
  • Scrum Master is responsible to coach Scrum team to follow Scrum / Agile best practices.
If you can think of any valuable question to this set please let me know.


Sorting Algorithms in Action

This is a nice visualization of the sorting algorithms and how they do with different sets of data.


Agile, Short & Sweet - The Best Cheat Sheet on Agile

Are you hearing that? Everyone is going Agile? Do you want to get on-board fast? This is a really quick guide for you to follow and figure it out. Obviously it lacks so many things in it. It might not even touch the basics. However, if you claimed you know Agile and you don't, this is the best cheat sheet you can find out on the net.



Interview Questions for an Intermediate Java Developer

Looking for real life interview questions for a Java Developer? These are the ones from the one I have conducted recently. The length of the interview was limited to an hour.

B = Beginner
I = Intermediate
A = Advanced

-Introducing him and what he has done + his experience

Technical questions:

OOP related questions
1-What are the OOP's main characteristic? (B)
1b-how do you support polymorphism in Java? (B)
1c-When do you use inheritance in Java (instead of using an interface)? (I)

JAVA related questions
2-What is Overriding and Overloading?
2b-and when do you recommend to use each?
3-What is a thread? (B)
3b-How would you create a thread in Java (3 ways you can do that) (I)
3c-Which one do you prefer to use for creating a thread (A)
4-What is the difference between a synchronized method and a synchronized block (A)
4b-which one do you suggest to use and why? (A)
5-What is an Iterator ? (I)
6-What is hashCode() and equals() methods ? (I)
6b-When do you override these functions and why?
7-Describe a particular shortcoming in Java you've encountered? and how did you resolve it? (Any Java Shortcoming?)
8-What is the meaning of Transient keyword and how is it used?

JEE related questions
10-What do you know about JSP?
11-What is a layered architecture?
12-What is MVC? Have you used any framework MVC in your past experience?
12b-Any experience in an MVC architecture? Please give us an example of your work.
13-Talk about different JEE framework you used and tell us their advantages and disadvantages? Which one do you prefer and why?
13b-What are the design patterns used in Spring? (Dependency injection)
13c-Dependency injections implementations? (By Method, By Construct ...)
14-Any experience with EJB? do you know the difference between stateless and stateful EJB?
15-What is SOA? Is it related to OOP?
15b-What is a web service?
15c-Have you experience with SOAP webserice? How about REST? Can they be used interchangeably?
16-What is JMS?
16b-What is the difference between queue and topic?
17-What is the difference between EAR, JAR and WAR file
18-What is a JavaBean?
18b-Difference between JavaBean and EJB?

DB related questions
20``- What is a primary key?
20'-What is FOREIGN KEY?
20- What is normalization?
21-What is E-R model?
22-What is Object Oriented model?
23-DDL and DML, what are they? (I)
24-What is difference between DELETE and TRUNCATE commands?
25-Define Join and explain different type of joins?

-OR Mapping related questions
31-What is Hibernate Framework? iBatis ? (what is OR)
32-What is Java Persistence API (JPA)?
33-What are the advantages of OR over JDBC?
34-iBatis ? xml customization and auto generation (A)

Continuous Integration
41-What is a source control? (have you any experience using that)
42-Why do you think we need a sourc control?
43-Maven vs Ant? Any experience?
44-Any experience with test suites? TestNG? JUnit? What are those? Any one you prefer?
45-What is continuous integration? Any experience with Jenkins? Continuous Integration Tools?
46-Experience with Bash? (Linux commands?)

Agile questions
51-What is your experience with Agile?
52-What are the main attributes of the Agile?
53-Can you name some of the methodologies under Agile? (scrum, extreme programming, kanban ...)
54-If something goes wrong in the development process who would you go to first? (the best answer is it depends)
55-Do we have different roles (such as QA, Developer) in an Agile team?

General Questions: (20 minutes)

what will he bring to this job and why this job is suited for him?
Why do you want to work for us?
what is he seeing himself in 5 years?
What are your major strengths?
What are your greatest weaknesses?
Tell me about a time that you failed at something and what you did afterwards.
Describe a time that you works on a team project. What was your relative position? Were you satisfied with your contribution? Could it have been better?
Why did you choose this field of work?
Tell me about a situation in which you had to resolve a conflict / failed.
What do you know about our team?
Do you have any questions for us?
Tell me about a project that you had either at work or school. Describe in detail how you managed it and what was the outcome?

Candidate's questions:

Any questions he might have for us?


Why can't you convert user stories to sub-tasks in JIRA?

The answer is really simple. You should be able to do that unless the user-story you want to convert already has sub-tasks under it. You can not convert it to a sub-tasks with sub-tasks underneath.

So check if there is any sub-tasks, and if there is, probably you shouldn't be changing the user-story to a sub-task. The user-story has sub-tasks, meaning that it was not that small. So rethink before deleting the sub-tasks and converting.


Affects version vs Fix vestion in JIRA

Affects version = where the defect/new feature has been identified.

Fix version = where the defect/new feature is planned to be fixed.

Affects version is not heavily used - it's very useful for what it does, but there's not a huge amount of useful reporting you can do on it beyond the basic "where did it break" or "how many bugs did this version contain" questions.
Fix versions however, is for planning, releases, tracking velocity, monitoring progress, as well as it's core "it was fixed in" intent, and others, so it's used in a lot more of the widgets and reports. Try Greenhopper/Agile on a project where it's disabled, and you'll find 90% of it doesn't do much!
Difference between fix version and affects version
In Affects Versions you would enter the version where the problem exists and in Fix Version you would enter the version where the problem was (or will be) fixed.
Jira How to add issues to a version