Hack Week 2016
Planning to Succeed
Not so long ago I joined VersionOne. This fall, I experienced my first VersionOne Hack Week in all its glory. Hack Week? Wait, did you say *week*?!? Yes, Hack WEEK! None of that Hack Day stuff around here. 😉
As a company, one of our core values is encouraging initiative and innovation. One way we do that is setting aside a substantial block of time for our team members to try new things that could bring value to the business.
In order to qualify for Hack Week, a proposal should be at least *peripherally* related to our business focus. For one example of just how peripheral, read about our Tapster app .
Getting to What
This year, several of my colleagues banded together to form the Planr team. As a tester on an agile team, I was interested in this idea of a lightweight way to collaborate better on three amigos meetings for planning work. However, as much as I love testing every day at VersionOne, I wanted to try a different role for Hack Week. I wasn’t sure how I could help the team. Would they need a tester trying on a product owner or developer role for size?
After joining the team for the in-depth description of Planr’s vision, I asked what help the feature lead wanted. I found out that product owner would indeed be a useful addition to the team and I felt that my decade of experience grooming and planning stories would enable me to provide direction and input. Now, part of my experience has been just how test-centric the concept of “done” for a story actually is. If there isn’t a test describing a behavior, it may not be obvious that there’s something to do or something to review.
So we set out to build a backlog of workitems for Planr. I talked about the opportunities I see to improve our collaboration and the other team members incorporated that feedback into the work breakdown. We had a large enough team that being able to do work concurrently was important to us, so having a written list of things to do felt valuable to coordinate work.
We focused on expressing tests in behavior-driven development (BDD) scenario format as a way to more precisely define the value we want to achieve through a workitem. Why would this be a useful addition to our conversation? Well, human-readable sentences are very useful for communicating, but an output of our process is machine-readable lines of code. The BDD Given When Then (GWT) format helps us to find a nice middle ground where we can express ourselves in a way the business can easily read while spelling out some of the logical conditions that engineering needs to know. We keep the benefits of business domain language while adding in concrete information during specification by example .
Planr allows us to experiment with explicit formatting for GWT in user story acceptance tests. In order to keep this experiment timeboxed and decoupled from the main product release, we chose to create a separate tool that communicates with VersionOne through our SDK to populate user stories with the precondition, action, and postcondition information contained in our Planr GWT tests. This separation allows us to iterate quickly through experiments while dogfooding Planr.
Getting to How
Individuals and Interactions
I realized that working as a pair with a developer was a shorter road to contributing than trying to understand all of the moving parts. Since our developers are familiar with pairing and tend to pair every day, it was easy for me to find a pair in progress and join in. At first, I felt like a third wheel but pretty soon I was discussing problems we were addressing, algorithm design, and even throwing in a few method calls that I’d picked up in my reading. I’ve heard some people refer to this type of interaction as being a paradev. Pairing was a great opportunity for my developers to teach and for me to do a little sneaky test coaching. 😉 It’s the little things.
The Planr team tracked very small workitems in a simple kanban board so that we could easily find the next piece of work. We didn’t need status meetings with the team constantly collaborating on the tasks and rapidly updating the tracking system, including adding questions and comments along the way so everyone was in the loop even when they were working remotely. We also used chat clients, videoconferencing, and screensharing to reduce the friction of working with a distributed team in real time.
At the end of Hack Week, our feature lead presented Planr during the project review. The development organization received it warmly and had great questions and feedback for us. We all felt proud of our contributions to the project and about the dynamic of our teamwork.
What’s next for Planr?
Now that Hack Week is over and we’re working on our usual backlog, we have adopted Planr as our team’s collaboration tool for story planning. Our first run through yesterday predictably ran into old habits and uncovered a few usability snags. Now we have a better backlog for improving our Hack Week project that’s now an internal tool. We know where the greatest value lies for our next baby step forward and we are already achieving improved communication.
As a team, we had several hypotheses that we wanted to test, but we prioritized focus on some microinteractions around describing acceptance tests. One of these ideas was that our GWT tests often occur in clusters of very similar content with each refining a particular aspect of the business rules. We created a way to easily re-use the previous acceptance test as a starting point for the next one. We noticed initially that our expectations of the three amigos sessions didn’t match this way of working, but it quickly improved our iteration on the business rules. From the very first planning session, we found benefit in the new tool.
By any measure, I consider my first Hack Week here at VersionOne a complete success! I got to try completely different roles. I bonded with new and existing teammates. I learned so much about our technology stack so that we can communicate more effectively about our regular work. We provided each other honest feedback about what was working and what wasn’t. We trusted each other’s choices and supported each other in accomplishing the tasks. We respected that each person had a unique contribution to make to the team. Together we delivered the extraordinary. Isn’t it funny how our core values converge? I love it when a plan comes together!
This month is Hacktoberfest! If you like what you’ve read about Planr, contribute during this month’s event by submitting a pull request for one of our tagged issues. To get the event stickers or t-shirt, sign up through the Hacktoberfest website.
Special thanks to Walker Smith for contributing technical information and for review of this post