Skip to content

Commit d63810d

Browse files
committed
Add new blog cross-posted from k8s.dev
This is crossposted from the Kubernetes Contributor Community blog.
1 parent b66ce8d commit d63810d

File tree

2 files changed

+106
-0
lines changed

2 files changed

+106
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
---
2+
title: "Contributing to the Development Guide"
3+
linkTitle: "Contributing to the Development Guide"
4+
Author: Erik L. Arneson
5+
Description: "A new contributor describes the experience of writing and submitting changes to the Kubernetes Development Guide."
6+
date: 2020-10-01
7+
resources:
8+
- src: "jorge-castro-code-of-conduct.jpg"
9+
title: "Jorge Castro announcing the Kubernetes Code of Conduct during a weekly SIG ContribEx meeting."
10+
---
11+
12+
When most people think of contributing to an open source project, I suspect they probably think of
13+
contributing code changes, new features, and bug fixes. As a software engineer and a long-time open
14+
source user and contributor, that's certainly what I thought. Although I have written a good quantity
15+
of documentation in different workflows, the massive size of the Kubernetes community was a new kind
16+
of "client." I just didn't know what to expect when Google asked my compatriots and me at
17+
[Lion's Way](https://lionswaycontent.com/) to make much-needed updates to the Kubernetes Development Guide.
18+
19+
*This article originally appeared on the [Kubernetes Contributor Community blog](https://www.kubernetes.dev/blog/2020/09/28/contributing-to-the-development-guide/).*
20+
21+
## The Delights of Working With a Community
22+
23+
As professional writers, we are used to being hired to write very specific pieces. We specialize in
24+
marketing, training, and documentation for technical services and products, which can range anywhere from relatively fluffy marketing emails to deeply technical white papers targeted at IT and developers. With
25+
this kind of professional service, every deliverable tends to have a measurable return on investment.
26+
I knew this metric wouldn't be present when working on open source documentation, but I couldn't
27+
predict how it would change my relationship with the project.
28+
29+
One of the primary traits of the relationship between our writing and our traditional clients is that we
30+
always have one or two primary points of contact inside a company. These contacts are responsible
31+
for reviewing our writing and making sure it matches the voice of the company and targets the
32+
audience they're looking for. It can be stressful -- which is why I'm so glad that my writing
33+
partner, eagle-eyed reviewer, and bloodthirsty editor [Joel](https://twitter.com/JoelByronBarker)
34+
handles most of the client contact.
35+
36+
I was surprised and delighted that all of the stress of client contact went out the window when
37+
working with the Kubernetes community.
38+
39+
"How delicate do I have to be? What if I screw up? What if I make a developer angry? What if I make
40+
enemies?" These were all questions that raced through my mind and made me feel like I was
41+
approaching a field of eggshells when I first joined the `#sig-contribex` channel on the Kubernetes
42+
Slack and announced that I would be working on the
43+
[Development Guide](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md).
44+
45+
{{< imgproc jorge-castro-code-of-conduct Fit "800x450" >}}
46+
"The Kubernetes Code of Conduct is in effect, so please be excellent to each other." &mdash; Jorge
47+
Castro, SIG ContribEx co-chair
48+
{{< /imgproc >}}
49+
50+
My fears were unfounded. Immediately, I felt welcome. I like to think this isn't just because I was
51+
working on a much needed task, but rather because the Kubernetes community is filled
52+
with friendly, welcoming people. During the weekly SIG ContribEx meetings, our reports on progress
53+
with the Development Guide were included immediately. In addition, the leader of the meeting would
54+
always stress that the [Kubernetes Code of Conduct](https://www.kubernetes.dev/resources/code-of-conduct/) was in
55+
effect, and that we should, like Bill and Ted, be excellent to each other.
56+
57+
## This Doesn't Mean It's All Easy
58+
59+
The Development Guide needed a pretty serious overhaul. When we got our hands on it, it was already
60+
packed with information and lots of steps for new developers to go through, but it was getting dusty
61+
with age and neglect. Documentation can really require a global look, not just point fixes.
62+
As a result, I ended up submitting a gargantuan pull request to the
63+
[Community repo](https://github.com/kubernetes/community): 267 additions and 88 deletions.
64+
65+
The life cycle of a pull request requires a certain number of Kubernetes organization members to review and approve changes
66+
before they can be merged. This is a great practice, as it keeps both documentation and code in
67+
pretty good shape, but it can be tough to cajole the right people into taking the time for such a hefty
68+
review. As a result, that massive PR took 26 days from my first submission to final merge. But in
69+
the end, [it was successful](https://github.com/kubernetes/community/pull/5003).
70+
71+
Since Kubernetes is a pretty fast-moving project, and since developers typically aren't really
72+
excited about writing documentation, I also ran into the problem that sometimes, the secret jewels
73+
that describe the workings of a Kubernetes subsystem are buried deep within the [labyrinthine mind of
74+
a brilliant engineer](https://github.com/amwat), and not in plain English in a Markdown file. I ran headlong into this issue
75+
when it came time to update the getting started documentation for end-to-end (e2e) testing.
76+
77+
This portion of my journey took me out of documentation-writing territory and into the role of a
78+
brand new user of some unfinished software. I ended up working with one of the developers of the new
79+
[`kubetest2` framework](https://github.com/kubernetes-sigs/kubetest2) to document the latest process of
80+
getting up-and-running for e2e testing, but it required a lot of head scratching on my part. You can
81+
judge the results for yourself by checking out my
82+
[completed pull request](https://github.com/kubernetes/community/pull/5045).
83+
84+
## Nobody Is the Boss, and Everybody Gives Feedback
85+
86+
But while I secretly expected chaos, the process of contributing to the Kubernetes Development Guide
87+
and interacting with the amazing Kubernetes community went incredibly smoothly. There was no
88+
contention. I made no enemies. Everybody was incredibly friendly and welcoming. It was *enjoyable*.
89+
90+
With an open source project, there is no one boss. The Kubernetes project, which approaches being
91+
gargantuan, is split into many different special interest groups (SIGs), working groups, and
92+
communities. Each has its own regularly scheduled meetings, assigned duties, and elected
93+
chairpersons. My work intersected with the efforts of both SIG ContribEx (who watch over and seek to
94+
improve the contributor experience) and SIG Testing (who are in charge of testing). Both of these
95+
SIGs proved easy to work with, eager for contributions, and populated with incredibly friendly and
96+
welcoming people.
97+
98+
In an active, living project like Kubernetes, documentation continues to need maintenance, revision,
99+
and testing alongside the code base. The Development Guide will continue to be crucial to onboarding
100+
new contributors to the Kubernetes code base, and as our efforts have shown, it is important that
101+
this guide keeps pace with the evolution of the Kubernetes project.
102+
103+
Joel and I really enjoy interacting with the Kubernetes community and contributing to
104+
the Development Guide. I really look forward to continuing to not only contributing more, but to
105+
continuing to build the new friendships I've made in this vast open source community over the past
106+
few months.
140 KB
Loading

0 commit comments

Comments
 (0)