|
| 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." — 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. |
0 commit comments