Skip to content

Smooth and effective pair rotations for XP teams.

Notifications You must be signed in to change notification settings

TresAmigosLtd/pair_dance

Repository files navigation

Pair Dance

Pair Dance CI status

A tool to elevate pair programming by making pair rotations smooth and effective.

Pairing Domain

Model

  • User: Entity, a person who has logged in to pair.dance via SSO. Can be a member of multiple teams.
  • Member: Entity, a user associated with a team.
  • Task: Entity, for a piece of work a team member is working on. May be linked to an entity in a backlog management tool (e.g. Jira, Pivotal Tracker).
  • Assignment: Value obejct, links a member with a task.
  • Team: Aggregate root linking: members, tasks and assignment. Has also a name and a slug.

Business rules

Teams

  • All users can create unlimited number of teams.
  • The user who created the team becomes its first member.
  • Every team member can invite more people.

Assignments

  • Any number of members can be assigned to a single task. A single member may be assigned to any number of tasks.

Feature ideas

  • Allocations could happen on Slack
  • Insights into pairing patterns can surface Retro conversations
  • Use Tuple API to get actual allocations
  • Use Google Calendar API to prevent pairing allocations which are unrealistic due to overlapping calendars

Development

Initial setup:

  • Assumes you have a pre M(1,2.3) Mac and brew

⚠️ Setup does not support MM(1,2.3)s. Contributions welcome!

./setup

Check types:

mix dialyzer

Run tests:

mix test
mix test.e2e

To start your Phoenix server:

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.setup
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Install latest phx:

mix archive.install hex phx_new

Notes

CI insights

CircleCI

Learn more about Phoenix