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
Immersion[1]
By Emily Platzer
Immersion[1]
- 214