Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial Statement of Work #4

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions pair-statement-of-work.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#+title: Pair Statement Of Work
#+published: [2022-08-19 Fri]

* Introduction
This describes the work to be done on our internal tool Pair.
This work is to make Pair (as it is described in "[[file:what-is-pair.org][What is Pair?]]")
more reliable, easier maintain, and easier to use.
* The Goal of Work
We want to rebuild Pair with stronger software design, so that we can continue
to benefit from its features, but improve the developer experience for
maintaining and building atop it. Improving the underlying design of the
software will lead to improvements in the user experience, as the system will be
quicker, more coherently structured and documented, and with less untracable
errors.

One of the big parts of this work is the design and implementation of a Pair
API. This would be an interface for working with the backend cluster management,
but in a more ordered and logical way. This would also allow for multiple
clients: eg. a web and terminal client.

Another big goal of the work is to decouple Pair from github so that none of our core
business requires a dependency on github (e.g. for logging in or user role management).
* In Scope
- Designing the public API for Pair
- Building a new backend to serve this API
- Building a new frontend for this api
Comment on lines +24 to +26
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think if we take a deeper look at coder, it may provide quite a decent front, back, web, and cli. for us to augment.

- Re-implementing all existing features in a more solid way
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would allow us to focus on porting over our most meaningful features.

- Centralized logging
- New authentication (without requiring github)
- Address and fix open bug tickets.
- Documentation and Onboarding Guides
* Out of scope
This work is explicitly separate from other projects currently in-development
under the name Pair. This includes the mentorship project with LXF. Any of
the big features for those projects would be out-of-scope of this one since they
are distinct projects. This includes:

- VSCode/VSCodium integration
- integrating Pair with coder.com

* Technical Requirements
- Written in languages ii uses: Golang and Clojure, with priority given to Golang.
- Unit tests
- Full documentation:
- how to use
- how to contribute
- how to self-host
- should run on equinix metal
* Milestones
** Design and share public API
** Draft and share a Design Doc
** Build authentication
** Build backend to server API
** Build webclient for API
** Publish documentation for existing set
** Build cli client for API