summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWill Woods <wwoods@redhat.com>2016-01-18 16:42:19 -0500
committerWill Woods <wwoods@redhat.com>2016-01-18 16:42:45 -0500
commitd21c952853f1f6ffd8023143d095933a30ef4af6 (patch)
treefe5a08667d1b2b90468a399be25bf7d3d1713318
parent6c000a97969039f1f98caa2c9ca55480dd6bfb20 (diff)
downloadweld-docs-d21c952853f1f6ffd8023143d095933a30ef4af6.tar.gz
weld-docs-d21c952853f1f6ffd8023143d095933a30ef4af6.tar.xz
weld-docs-d21c952853f1f6ffd8023143d095933a30ef4af6.zip
weld-design: add notes about social stuff
SOFTWARE IS A SOCIAL ENDEAVOUR Y'ALL. Need to emphasize this fact in design docs so we don't accumulate social debt.
-rw-r--r--weld-design.md26
1 files changed, 22 insertions, 4 deletions
diff --git a/weld-design.md b/weld-design.md
index 3d56243..8af9b01 100644
--- a/weld-design.md
+++ b/weld-design.md
@@ -39,10 +39,10 @@ Send questions/comments/suggestions to <wwoods@redhat.com>.
* _Packagers_: Integrate upstream source into the distribution.
Add / maintain Dependencies and other metadata and enforce Distributor
policy.
- Decide when to pull/tag upstream changes/releases. Sometimes also Developers.
+ Decide when to pull/tag upstream changes/releases.
+ Sometimes also Developers.
* _Release Engineers_: Compose and distribute Builds, Images, and other Objects.
-* _QA_: Responsible for developing and running integration tests and functional
- tests.
+* _QA_: Develop and run integration tests, do functional tests, etc.
(Generally *not* responsible for unit tests; those are the Developer's
responsibility.)
* _Distributors_: Maintain the distribution as a whole; decide the contents of
@@ -76,6 +76,9 @@ Send questions/comments/suggestions to <wwoods@redhat.com>.
## REQUIREMENTS
+This is a high-level description of the various tasks that each Role needs to
+be able to perform to have a viable Fedora-like product.
+
### Minimum Viable Product requirements:
* _Distributors_: set/apply policy about build output (`%{_docdir}` etc.)
@@ -177,9 +180,24 @@ Send questions/comments/suggestions to <wwoods@redhat.com>.
* Instead of working around problems, let's design better solutions
* Be bold, but not foolish
- * Design solutions _for the people who will use them_.
+ * Design solutions _for the people who are going to use them_.
* Do your research. Newer isn't always better for the task.
+### Software is a social endeavor
+
+> Programs must be written for people to read, and only incidentally for
+> machines to execute.
+
+-- Harold Abelson, "The Structure and Interpretation of Computer Programs"
+
+* Practice nonviolent communication!
+ * "Be Excellent To Each Other", but with more empathy
+ * See http://j.mp/nvc-oss-notes
+* Have appropriate processes for discussing and documenting changes
+ * Like Python's PEPs, Rust RFCs, etc.
+* Be able to censure or remove people who won't behave
+ * But hope that this never happens
+
### You don't have to please everyone
* Make something that works great for you