Skip to content

Commit

Permalink
Better text and standards-as-code explainer
Browse files Browse the repository at this point in the history
  • Loading branch information
riverma committed Jan 19, 2024
1 parent afc1dec commit 97ee132
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 9 deletions.
16 changes: 10 additions & 6 deletions docs/about/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,29 @@ sidebar_position: 1

Software Lifecycle Improvement & Modernization (SLIM) is a project focused on collecting, developing, and disseminating best practices and process improvement strategies in NASA multi-mission software development lifecycle ecosystems. SLIM represents both a community of contributors as well as a continually evolving repository for best practices documentation.

## Scope
## Our Focus

There are three key areas within the software development lifecycle improvement space that SLIM focuses on providing best practice guidance for:

![SLIM-scope](/img/scope.png)

## Process
## Our Process

### Community Outreach

We reach out to community member projects, and solicit input on outstanding process improvement needs, including the respective needs' relative ranking in importance / criticality. A few needs are chosen to focus active contributor time upon - seeking to develop best practice guides, including items such as use case lists, trade-studies, reference architectures and starter kits.

![SLIM-community-process](/img/community-process.png)

Once prioritized needs are identified, contributors go through a series of steps to create best practice guides for the community.
### Standards-as-Code

We use a technique we like to call "standards-as-code", which basically means that we develop best practices that are _patchable_ to existing or new community member project codebases or are _deployable_ to their infrastructure. Therefore, we target providing best practices in a way that is most easily can be infused into existing projects. This way, we are actually able to scale out our best practice dissemination widely to many projects at once.

![SLIM-dev-process](/img/dev-process.png)
![SLIM-dev-process](/img/standards-as-code.png)

More information on our development process for best practice guides can be found in our [Contributing Guide](docs/contribute/contributing/development-process).

## Community Members
## Our Community Members

What does it mean to be a community member of SLIM? The following ideas apply to member projects:
- Has a representative (a point-of-contact) who interfaces with the SLIM effort
Expand All @@ -55,7 +59,7 @@ The following list of projects are currently SLIM member projects:
</li>
</ul>

## Get Involved
## How To Get Involved

SLIM best practice guides and recommendations are open source, which means you have the freedom to use our work (in accordance with our [LICENSE](https://nasa-ammos.github.io/slim/LICENSE)) as well as contribute and help shape our future work. We're excited to welcome new contributors and users.

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
````markdown
# [INSERT PROJECT NAME] Project Governance

This governance model aims to create an open source community that encourages transparency, contributions, and collaboration, but maintains sound technical and quality standards. Our goal is to build a community comprised of members across the [INSERT PROJECT DOMAIN] community and beyond, including from private organizations, universities, government organizations, and international organizations.

The project follows a fairly liberal contribution model where people and/or organizations who do the most work will have the most influence on project direction. Roles determine decision making influence, and a governing Steering Committee is set up to ensure the project's direction is in-line with requirements/goals while supporting flexibility for future growth and membership. Decision making will primarily be made through a "[consensus-seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)" approach within the Steering Committee.

## Roles

| Role | Restricted To | Description | Read/Clone | Propose Pull Request | Comment in Tickets / Discussions | Triage | Review | Commit | Decisions |
| ------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------- | -------------------------------- | ------ | ------ | ------ | ------------------------- |
| User | None | Anyone downloading, deploying, or operating the software to meet a specific objective. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Contributor | None | Anyone providing input to the project, including: code, issues, documentation, graphics, etc. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Committer | Contributor | Subset of contributors granted write access to one or more of the project repositories. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Steering Committee Member | Committer | A subset of committers with decision making authority over technical and project aspects, including admin privileges. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Product Manager | Steering Committee Member | Overall manager of project with final authority over all key decisions when consensus cannot be reached within the Steering Committee. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

### User

Anyone who has downloaded, deployed, or operated [INSERT PROJECT NAME] to meet a specific objective. This project was primarily designed for [INSERT DESCRIPTION OF PROJECT PURPOSE], but let us know if you've found other uses for it.

### Contributor

Contributors include anyone that provides input to the project. This includes code, issues, documentation, graphics, designs, or anything else that tangibly improves the project. We encourage you to start contributing right away by joining our [Discussions]([INSERT LINK TO DISCUSSION BOARD OR MAILING LIST(S)]) or submitting an [Issue]([INSERT LINK TO ISSUE TRACKING SYSTEM]).

### Triager

Subset of contributors who have demonstrated a strong familiarity with the project and are regularly contributing to the project via issue creation, commenting, discussions, etc. Triagers are given specific permissions do the following:

- Label issues and pull requests
- Comment, close, and reopen issues and pull requests

[List of current Triagers]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH TRIAGERS])

### Collaborator

Subset of contributors who have been given write access to one or more project repositories. Both contributors and collaborators can propose changes to the project via pull requests, but only collaborators can formally review and approve (merge) these requests. Any contributor who has made a non-trivial contribution should be on-boarded as a collaborator in a timely manner.

If you are planning on making a substantial contribution to the project or feel as though you should be given write access to a repository, please send a request to [INSERT LINK TO EMAIL/GITHUB USER HANDLE]

[List of current collaborators]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH COLLABORATORS])

### Steering Committee Member

A subset of collaborators form the Steering Committee. The Steering Committee has authority over all aspects of this project:

- Technical direction and guidance
- Project governance and process
- Contribution policy
- Conduct guidelines
- Maintaining the list of collaborators

#### Committee Members
- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION]
(Additional member listings)

<details>
<summary>Emeriti</summary>
#### Committee Emeriti
- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION]
(Additional member listings)
</details>

#### Scope
(Description remains the same as TSC Scope)

#### Decision Making Process
(Description remains the same as TSC Decision Making Process)

### Product Manager
(Description remains the same)

# Acknowledgements
(Description remains the same)
````
6 changes: 3 additions & 3 deletions src/components/HomepageFeatures/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const FeatureList = [
Svg: require('@site/static/img/scope.svg').default,
description: (
<>
We focus on best practices related to software project governance, documentation, and development life-cycles.
We <a href="docs/about#focus">focus on best practices</a> related to software project governance, documentation, and development life-cycles.
</>
),
},
Expand All @@ -17,7 +17,7 @@ const FeatureList = [
Svg: require('@site/static/img/community.svg').default,
description: (
<>
<p>We solicit improvement ideas and solutions from our community deliver best practices back to our members.</p>
<p>We solicit improvement ideas and solutions from our community deliver best practices back to our members. See our <a href="https://github.com/orgs/NASA-AMMOS/projects/3">community planning board</a>.</p>
</>
),
},
Expand All @@ -26,7 +26,7 @@ const FeatureList = [
Svg: require('@site/static/img/iterative.svg').default,
description: (
<>
We treat best practices and standards-as-code. We iteratively improve our recommendations through the open source tickets and pull requests.
We develop best practices through <a href="docs/about#standards-as-code">standards-as-code</a>. We iteratively improve our recommendations through the open source tickets and pull requests.
</>
),
},
Expand Down
Binary file removed static/img/dev-process.png
Binary file not shown.
Binary file added static/img/standards-as-code.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 97ee132

Please sign in to comment.