Skip to content

Commit

Permalink
Adding initial draft of milestones (HHS#2)
Browse files Browse the repository at this point in the history
* Adding milestones

* Adding install instructions for precommit

* Removing Research Synthesis lines
  • Loading branch information
lucasmbrown-usds authored Apr 12, 2023
1 parent 9c8a08f commit 1eb5be6
Show file tree
Hide file tree
Showing 9 changed files with 1,475 additions and 1 deletion.
135 changes: 134 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,136 @@
# Files ignored because they're binary/unnecessary
.DS_STORE
.idea
.idea

# Files generated by local Mermaid development
documentation/milestones/milestone_dependency_diagram.pdf

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
exclude: ^client|\.csv
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,23 @@ A modernization effort for Grants.gov.
1. Visit [localhost:9001](https://localhost:9001) to view the server
-->

### Setting up development tools

#### Configuring pre-commit hooks

To promote consistent code style and quality, we use git pre-commit hooks to
automatically lint and reformat our code before every commit we make to the codebase.
Pre-commit hooks are defined in the file [`.pre-commit-config.yaml`](../.pre-commit-config.yaml).

1. First, install [`pre-commit`](https://pre-commit.com/) globally:

$ brew install pre-commit

2. While in the root `grants-api` directory, run `pre-commit install` to install
the specific git hooks used in this repository.

Now, any time you commit code to the repository, the hooks will run on all modified files automatically. If you wish, you can force a re-run on all files with `pre-commit run --all-files`.

### Testing

## Contributing
Expand Down
22 changes: 22 additions & 0 deletions documentation/milestones/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Introduction to this directory

This directory contains information about our milestones for the modernization project.

[The milestone short descriptions file](./milestone_short_descriptions.md) contains brief descriptions of upcoming milestones. They are grouped into sections. Within sections, they are roughly presented in approximate priority order, but not in firm priority order.

The milestones are also graphed in the [dependency diagram](./external_milestone_dependency_diagram.mmd). This diagram is rendered using [Mermaid.js](https://mermaid.js.org/).

Some milestones below have full definitions that are defined on standalone pages in the [individual_milestones](./individual_milesstones/) directory. These will have links underneath their name that take you to their full description on another page.

Other milestones in the short descriptions page are not yet groomed and prepared enough to have milestone descriptions. These have short summaries underneath them. Eventually, when they are getting closer to starting execution, these short descriptions will be replaced by defining them according to the [Milestone Template](./external_milestone_template.md) and creating separate pages for their definitions.

Please note that these are *not* fixed or final milestones. We fully expect they will evolve rapidly based on feedback from others and what we learn as we research, build, and test. All feedback on how these should be changed or adapted is very welcome!

The HHS Grants.gov team is not committing to delivering on any, and certainly not all, of these milestones. These are provided as planning brainstorms rather than a fixed roadmap or promise of delivery of services.

In a separate document, we will track ongoing priorities, clearly defining which milestones are currently being worked on and, for those that are currently being planned or worked, what their priority order is relative to each other. These ongoing priorities will be used to drive a development roadmap and project plan.

If this is your first time engaging with these milestones, we suggest you:

1. Start by reading the milestone short descriptions in [the milestone short descriptions file](./milestone_short_descriptions.md)
2. Then review the [dependency diagram](./external_milestone_dependency_diagram.mmd).
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Communication platforms

## Short description

Implement chat, wiki, and ticket tracking in a way accessible for all team members and the public.

## Goals

### Business description & value

We must have easy-to-use and effective tools for communicating as a team. These communication technologies will be perhaps the most important pieces of technology implemented by and used by the team.

These need to be accessible to internal (HHS or employed by HHS) partners as well as external partners (members of the general public).

### Technical description

Explore options for group chat, such as:

* Slack
* HipChat
* Discord
* Microsoft Teams
* Open source alternatives like Mattermost, etc
* Others?

Explore options for wiki-style storage and editing of documents, such as:

* Confluence
* Github wiki
* Open source wiki platforms
* Others?

Explore options for tracking of tickets with ability to track epics and burndown charts, such as:

* GitHub with Zenhub

These should be selected, implemented, and deployed.

For the wiki-style tool, we need integrated page analytics so we can view stats such as the number of total visits to a page (or collection of pages) as well as unique visitors, time on page, etc.

The wiki-style tool should have internationalization capabilities or we should document

Ideally, the tool would have the ability to designate some users as direct editors of pages (do not need permission before merging changes) and some users as suggesters (can submit suggested changes that need to be approved by one or more editors before they get merged).

Any code used to deploy or integrate these services should be made open source.

### Definition of done

- [ ] Onboarding instructions for new users are clearly and accessibly documented in a public place.
- [ ] Instructions for the internal team that assists with onboarding new users are clearly and accessibly documented in a public place.
- [ ] Without logging in, members of the public can see tickets and wiki documents.
- [ ] New users can be onboarded to chat for no cost to the user in a process that takes less than 2 days.
- [ ] New users can be onboarded to wiki for no cost to the user in a process that takes less than 2 days.
- [ ] Services are accessible to all people on the HHS network, White House network, public internet, and preferably most or all agency networks.
- [ ] In chat, users can send private messages to each other as well as view private and public channels. Users can use emojis to react to messages.
- [ ] In wiki, users can see history of changes to all documents.
- [ ] In tickets, users can create epics (or a similar concept) and track burndown.
- [ ] At least 5 members of HHS full-time staff are onboarded to all tools.
- [ ] At least 5 members of contractor teams (employed by HHS) are onboarded to all tools.
- [ ] At least 3 members of the general public are onboarded to all tools.
- [ ] Integrate Google Analytics or similar tool into wiki-style tool.
- [ ] Code for managing and deploying these services is deployed to `main` & PROD (if necessary)

### Proposed metrics for measuring goals/value/definition of done

1. Number of monthly active users in Chat, total
2. Number of monthly active users in wiki, total
3. Number of monthly active users in Chat, external
4. Number of monthly active users in wiki, external
5. Weekly volume of Chat messages
6. Weekly volume of wiki edits/contributions

### Destination for live updating metrics

Not yet known.

## Planning

### Assumptions & dependencies

What capabilities / milestones do we expect to be in place at the beginning of work
on this milestone?

- [x] None

Are there any notable capabilities / milestones do NOT we expect to be in place at the
beginning of work on this milestone?

- [x] None
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Milestone template published

## Goals

### Business description & value

By sharing our drafts of a milestone template, as well as drafts of initial milestones, we enable the team to stay coordinated around goals, priority order of goals, progress on delivering against those goals, awareness of dependencies.

By sharing these publicly, they're accessible to all project team members as well as the ecosystem of open source contributors and other interested parties.

### Technical description

Publish the first draft of a milestone template with fields and descriptions of what those fields mean in an openly-accessible place (such as Github or a public wiki).

Also publish initial list of milestones.

Explore different options for this, such as:

* Github
* Public wiki (Confluence or other wiki software)
* Others?

Key criteria are that the tool must be very easy to use for both engineering/IT-familiar users as well as users less experienced with technology.

### Definition of done

- [ ] A self-described non-technical user can learn to edit the milestone document in less than 30 minutes.
- [ ] All template and drafts are accessible publicly.
- [ ] Everyone working on the project knows where the milestone template and drafts are.
- [ ] Integrate Google Analytics or similar tool into milestone pages.

### Proposed metrics for measuring goals/value/definition of done

1. Percent of milestones that are accessible publicly (note: this should remain constant at 100%)
2. Number of unique contributors to milestone documents, total
* How to measure this and deploy the measure live?
3. Number of unique contributors to milestone documents, external members (not HHS or employed by HHS) only
* How to measure this and deploy the measure live?
4. Number of total page visits to milestone documents

### Destination for live updating metrics

Not yet sure.

## Planning

### Assumptions & dependencies

What capabilities / milestones do we expect to be in place at the beginning of work
on this milestone?

- [ ] Communications platforms

Are there any notable capabilities / milestones do NOT we expect to be in place at the
beginning of work on this milestone?

- [x] None
Loading

0 comments on commit 1eb5be6

Please sign in to comment.