finger voting – teamwork and voting

In the past month, I’ve used “finger voting” in three contexts.

What is finger voting?

Voting with your fingers of course. Seriously thought, finger voting is a bit like rock, paper scissors. First the choices are presented. Then everyone sticks out their fist when ready to vote. The person who called the finger vote says 1, 2, 3, reveal and everyone votes at the same time. This could be thumbs up/thumbs down/thumbs side to indicate agreement/disagreement/neutrality. Or it can be a series of options. One finger means we should have pizza, two fingers means we should have sandwiches. Finger voting can be used for binding votes or polls.

Why is finger voting beneficial?

Decisions by consensus often take a long time. Sometimes the decision is such that any of the outcomes are acceptable. Sometimes at topic has been discussed at length and more discussion isn’t going to change anything. Sometimes you just want to take the pulse of the room to see if there is a consensus before spending a long time discussing. Finger voting lets you see where everyone stand.

Another benefit of finger voting is that the quieter people in the group get an equal say. It avoids the scenario where you have one vocal person in favor, one vocal person opposed and it appears the room is split down the middle. A finger vote/poll lets you see if it is split down the middle or just that one vocal person.

Context 1 – Work

We use finger voting for a variety of things. Some examples:

  • Process changes at the retrospective
  • Design decisions after discussing the options
  • To see how people feel about the sprint at the end of sprint planning

Context 2 – FRC (FIRST Robotics Challenge) Brainstorming

This year there were a number of strategies you could use for the robot. This decision is important because you get locked into it pretty quickly. There were a few conversations we got mired in. I suggested a finger vote to see what the majority of the room was thinking. While this worked, I learned that not being able to “demand” a finger vote makes it take much longer. At work, when anyone on the team suggests a finger vote, we have one. It may be a finger vote poll or a “binding” decision (well until the next retrospective). But a call for a finger vote at work isn’t distanced from said vote by a period of half an hour.

Context 3 – FLL (FIRST Lego League) judging

Today, I judged technical/robot design. The way judging works, there are four pairs (or triples) of judges who all see different teams and created an ordered list. Then the four groups get together to form a combined ordered list of X teams. To do this each group talks about their strongest team and all four groups concur on who was strongest overall. Then the next highest from that group replaces it and all four groups concur and…  Historically, the step of figuring out which of four teams should be ranked highest is a difficult step because you need at least eight people to agree. And typically that means the vocal people have a disproportionate impact on the decision.

Today, there 9 judges (three pairs and one triple) for technical/robot design. Two of us have been doing it for many years. I asked Dave (the other veteran judge) if I could moderate. He graciously agreed and I gave finger voting a shot.

Each group presented their strongest team and why. Then we used our fingers to show which of the four teams was strongest. Majority rules. And we proceeded. There were two votes that were really close and we discussed more there. There was even one where we had a three way tie. We discussed and revoted and there was no tie. (If there was another tie, I was going to propose we vote for which of the three was the weakest and see if we could get it down to two.)

Anyway, finger voting rocks. Consider it on your teams!

getting an old file in git from a directory than no longer exists

Some time ago, I had deleted a file in git along with renaming the directory it was in. I had wanted to rename the file rather than delete it. So now I needed it back. This took a few steps so I decided to blog what I did.

Step 1 – find the command to get the commit number for my deletion

I had no idea how to do this so I googled it. A comment on this post was really helpful. On OSX, I ran:

git log --diff-filter=D --summary | sed -n -e '/^commit/h' -e '\:/:{' -e G -e 's/\ncommit \(.*\)/ /gp' -e }

While I understand this, I never would have thought to write it.

This gave me a list of all my commits. Then I added | grep myFileName to it and I got the commit where this file was deleted.

Step 2 – Look at commit details

Next I did a git show to see whether it was me or my teammate that

git show myCommitId

It was me. I didn’t know that at the start. Oops!

Step 3 – Retrieve the file

It is possible to do a git checkout of just one file. However the folder structure doesn’t exist anymore in the latest, so this would be a pain. I decided to just get the file from the github UI. I ran the following (with real values for myRepo and myCommitId).

https://github.com/boyarsky/myRepo/commit/myCommitId

Then I viewed and downloaded it. Yay. My image file is back.

Step 4 – Commit again

I renamed the file again and added/committed normally.

Done! It’s now like this mistake never happened. Except in git history!

the successor to sysdeo (and mongrel) for launching tomcat from eclipse

I’ve been using Mongrel to launch Tomcat in one click from Eclipse. In Neon, this stopped working. I learned in a comment on that blog post that there’s now a plugin called “Eclipse Tomcat Plugin 9.1.0” that does the same thing. It is advertised as being a successor to Sysdeo. And it is. But so was Mongrel. However, it works in Neon and does the same thing as Sysdeo/Mongrel so it is logically a successor to both!

The process was easy to get going:

  1. Uninstall Mongrel
  2. Restart Eclipse
  3. Install Eclipse Tomcat Plugin 9.1.0
  4. Restart Eclipse
  5. Preferences
  6. Tomcat  – choose version of Tomcat path and Tomcat home

That’s it!