Discovery Report

Business Goals

  • Increase developer productivity
  • Promote developer happiness
  • Nurture consistent code style
  • Rapidly level up junior developers

Requirements

  • First release should be on Sept 2nd, 2016
  • Software should be named Swiftly
  • Use existing communication channels

Competitive Analysis

Pros Cons
Build a Slack Channel easy setup
easy workflow
no new tool to learn
public feedback
difficult to get data out
maybe not super enjoyable to use
Google Sheet Doc easy setup, easy to learn no one likes google sheet docs
no connected to main communication tool
Pre-exisiting slack bot github.com/techieshark/slack-pair already built customization?
git-duet Records pairings in a commit easy to forget to duet-commit, what happens when you squash commits?
physical stickers Unicorn stickers!!! Hearts and Trucks!!! Gross, on my monitor?
karma we already use it Doesn't track pairings
Pair Programming Matrix from Piv https://blog.pivotal.io/labs/labs/pair-programming-matrix  So super sweet Dang you Pivotal Labs

Testable Hypothesis

  • Developers use the app to pair with someone
  • Developers give each other feedback within the app
  • Developers continually pair with same people
  • Developers set goals and achieve them

Developers use the app to pair with someone

  • Count how many times developers submit pairings
  • Each time a developer pairs with someone, a count is recorded with a timestamp
  • Pairings can be graphed over time
  • Do pairings ramp up quickly? Do devs keep using Swifty?

Developers give each other feedback within the app

  • Count how many times developers submit feedback
  • Each time a developer receives feedback, a count is recorded with a timestamp
  • Feedback can be graphed over time
  • Do devs use Swifty to give feedback? Do devs keep giving feedback?

Developers continually pair with same people

  • Record pairs with a timestamp
  • Create a "heatmap" of pairings

Developers set goals and achieve them

  • Developers set goals within Swifty
  • Developers rate how well their goals were achieved 
  • Goal achievement can be graphed in comparison to pairing frequency
  • Do devs use Swifty to set goals? Do devs keep setting goals? Does pairing incidence correlate with goal achievement?

Wireframes / Workflows

# Initiate the Pair

 

> /sw @emily


# this is sent to both people as a direct message...

 

@swifty > "You have been set as pairing with Piper/Emily. (if this is not correct you can type /sw oops to cancel, or /sw oops @someone to set your pair as someone different.


@swifty > Is there anything you would like to share with Piper/Emily, type /sw share @emily "my message"

 

> @emily feedback: You should read this article www.example.com

 

# when one person responds

 

@swifty > Emily has shared something with you.  Once you've shared something with her you can have it.

Em's Workflow here

Risks

  • Developers do not adopt
  • Partial adoption looks like imbalance of pairing
  • Slackbot does not provide useful data
  • Security

Developers do not adopt

  • Incentivezzzzz!!!
  • social reinforcement... devs call out other devs
  • shamebot shames devs not using swifty
  • organizational change management - marketing, swag, internal communication of responsibilities and roles
  • end users become ambassadors through being a part of the process (aka soliciting end-user early alignment)
  • help tools / interfaces

Partial adoption looks like imbalance of pairing

In the case of totally equal pairing: If two people do not report and two people always report, and Reporters report pairing with Non-Reporters, it will seem like pairing of two Reporters are hot spots and pairing of two Non-Reporters never happens, when that is not the case.

Partial adoption looks like imbalance of pairing

R-Amy
Reporter Amy x R-Sam
Reporter Sam 3 x NR-Bill
Non-Reporter Bill 3 3 x NR-Jen
Non-Reporter Jen 3 3 0 x

Partial adoption looks like imbalance of pairing

  • Identify Non-Pairing people, consider cold spots where they overlap as possibly misleading data

Slackbot does not provide useful data

  • soft launch - make sure things work before everybody is on board
  • get consumers of the data to understand context of data

Security

  • API token from Slack
  • use a .env file
  • API should not release information without proper Slack token
Made with Slides.com