[待校对]How To Welcome New Coders To A Civic Hackathon
怎样在 civic hackathon 中欢迎新程序员
刚在今天早上向https://t.co/jho7o3P9ZX提了一个pull-request(译者注:Github 中的代码提交请求),现在我有自己的代码在一个尾缀为 .gov 的政府网站上了。太酷了, @18f。
— Philip James (@phildini) 2015年3月25日
----------------------------------------------
在18F(译者注:18F是一个数据服务机构,它设立在美国总务管理局中),我们的项目从刚开始就是开源的(译者注:18F的三条政策均保证了其开源的性质),也没有什么能比对公众有所贡献让我们更开心的事情了。这就是我们发布“a contributor’s guide to our code”的原因。
随着“National Day of Civic Hacking”(译者注:第三届National Day of Civic Hacking将在2015年6月6日举办,目的是让居民、社区团体和政府一起协作,让他们的社区变得更美好)的到来,我们已经开始思考如何每个想采用我们项目或者想帮助我们完善项目的人都可以接触到我们的项目。
我们将传递我们详细讨论过的想法,希望它能够启发你在6月6日的National Day of Civic Hacking中帮助我们做一个项目。我们也对把这些想法投向更多社区来获得进一步改善他们的想法和反馈很有兴趣。请在我们的GitHub issue上留言,和我们分享你任何的想法。
National Day of Civic Hacking是一个很棒的参与—或主办—你的第一个hackathon的机会。在下文中,我们概括了一些第一次办hackathon的策略。这些小贴士将让参与者感觉受到欢迎,帮助他们最大化他们的贡献。
用“新贡献者指南”明确地欢迎他们。
可用性测试员,可达性专家(译者注:指研究如何让多媒体/网页/文本更容易被不同人群所接受/理解的专业人士),调研人员,数据清洗者,作家,翻译,学科专家,还有内容设计师都是能(并且愿意)给项目提供帮助的人,前提是他们知道怎样浏览hackathon的内容,并能找到项目的入口让他们输入。GitHub仓库的页面总是非常繁忙;在会议资料中给出链接是不够的,也不能假设每个人都找得到issues标签。新来的人可能也不理解怎样创建一个单独的分支或归档一个随同的pull request(他们甚至不知道“pull request”的意思)。
你可以在几个不同的方面有所帮助:
为新人创建一份在线指引。这份在线指引是 hackathon 的组织材料的一部分,并且一定要确保它是 hackathon 官方材料集的其中之一。
在 hackathon 中指定一个区域,让所有人都可以到那里去求助,并且用明确的标识将它标记出来。
指定一个或几个人来成立一个专门的委员会来接待新人。如果让组织者来扮演这个角色可能是个困难,因为有那么多事情要做,所以你肯定希望有能帮助新人的人来参与。理想情况下,你会有一些愿意承担这个角色的有经验的 hacker 。如果没有的话,在活动开始前一到两周看一下你的报名名单,问几个新人是否愿意加入你的迎新委员会。在比赛前一周,邀请这部分参赛者参加prep night(译者注:在正式活动前进行的彩排,通常在晚上进行),并让他们测试安装指南,改善接待新人的材料内容。这样你不仅获得了一个正式的迎新委员会,这部分参赛者也会感觉到你对他们的欢迎。
像这样的有组织的努力能够保证参赛者能以他们最好的技能来花时间hacking。例如,Wikimedia hackathon 就有一个明确的 buddy-pairing 系统(译者注:buddy-pairing指将Wikimedia的组织人员和非组织的参赛人员进行两两配对)。
明确定义项目以及列举新人可以参与的方式
上个月,我们协办了 GovTechHack,一个基于旧金山地区的hackathon,在hackathon中,具有公民意识的程序员,工匠和设计师,以及其他有创造力的人们一起参与构建开源的和开放数据的项目。在这个活动开始前,我们为每个项目都编写了文档,其中包括:
项目的名称
项目现存的 URL 地址,如果有的话
项目的源代码仓库
项目的目的和影响
具体且明确的贡献者在 hackathon 中贡献的方式
项目大使:在 hackathon 过程和结束后可以关于项目进行答疑的人
你可以在 这里[1] 查看这些项目的其中一个例子。尽管这个项目文档帮了很大的忙,但我们希望在下次能够进行些修改。我们希望我们还可以:
在活动前向参赛者发送这些信息,以及一份详细指南,说明每个项目需要安装的软件/库/包,这样参赛者可以知道将要做什么,以及如何准备好参赛用的电脑。(很多 hackathon 以参赛者花了半天时间来设置本地开发环境而告终。缓解这些麻烦的预备工作做的越多,参赛者可用于 hack 的时间就会越多!)
在 Github page 中直接包含这些信息,也许是 Readme.md 文件,人们会在他们查看我们的项目时看到。(例子:我们 18F 的 Readme.md 文件[2])
为用户提供一份待办事项清单(比如这个例子[3])
添加一个章节说明非程序员如何帮助项目。思考并清楚的写下来其他专业和领域的人们如何在一个 hack 的日子里提供帮助,是非常有价值的。如果你没有时间来将这些写下来,你可以建立一个 issue,并请求其他人来“采访”你关于这方面的问题。棒棒哒!问题解决了。
为大家做些炫酷的名牌
Sarah Allen,一个 18F 的开发者,在下图中向大家派发名牌(译者注:写着参与者名字或称呼的卡片或贴纸,在许多活动中常见),这些名牌在 GovTechHack 中派上了用场。这些名牌用各种颜色编码的贴纸来描述 hackathon 参赛者所有的技能。名牌还可以用来列举 Twitter handles(译者注:Twitter 中的话题标签,和微博类似,如 #广州创客马拉松),(参赛者)喜欢的性别代词(译者注:如 xx哥,yy姐等),以及参赛者的兴趣和技能。将兴趣列举在名牌上还能帮助在活动中初次认识的人打开话匣子。
用人们能够帮助的各种方法清楚地标记 Github 上的 issue
为可以借助外部力量的 Github issue 打上标签总是一个好的主意——我们用 “需要帮助” 这个标签。GovCode 上列举了带有这个标签的政府的开源项目,在 Civic Tech Issue Finder 上有同样标签的城市技术项目,开发者可以立即加入到这些项目中。
另外一些标签会让新的 civic hacker 立即加入,开始工作的过程变得特别简单。我们的同事 Julia Elman 指引我们使用这些 Github 标签[4] 来对新手友好的 issue 进行归类。使用“新手友好” 的标签使得任何刚刚进入项目的人能够立即了解到他们可以帮助那个方面。请随意使用这些标签,或者为你的项目创建标签。(18F 的 Aidan Feldman 创建了一组标签[5],你可以在新的项目中使用它们)
让你的团队可以服务远程 hack 的人们
不是所有人都能在 National Civic Day of Hacking 当天能够到附近的城市来愉快的 hack,但这并不意味着他们就被排除在参赛者之外。在我们的 GovTechHack 活动中,18F 团队的成员 — 特别是项目的维护者,接受参赛者的提问和咨询,尽管有些参赛者并不在旧金山。你可以用很多方式与人联系,比如聊天室,视频聊天,社交媒体如 Twitter 或 Facebook 群组(译者注:国内也可以用 微博 等方式),或者 listserv(译者注:一种通信服务,通常以邮件服务形式存在)。
亲自邀请他人贡献项目
一个私人的邀请也许是将一个项目使用者变成一个项目贡献者所需的全部工作。如果有人提出了一个容易解决的 issue,可以考虑引导他完成提交 pull request 的整个过程。如果一个 hackathon 团队构思了一个很棒的新功能,和他们一起工作,来实现它。像 National Day of Civic Hacking 这样的活动是一个大好机会,让人们知道他们的贡献是被实实在在的人所接受,且因他们的贡献而感到高兴。
为参赛者开发工具包
我们在 GSA 的同事创建了一个工具包来帮助人们开始创建开发数据项目。你可以 fork 这个工具包或者开发你自己的。Github 也发布了一个指南[6]教人们如何做各种工作,比如 “fork 一个 repo” 或者 “添加 SSH 秘钥”。最后,请随意分享我们的详细教程:如何使用命令行和 Github [7],这篇文章是写给这个领域的新手的。
你也许也想看看我们的 关于开源项目的列表,开源项目维护者指南,以及 18F 的 Leah Bannon 最近写的 hackathon 指南。
如果你对如何改善这份指南有想法或者反馈,请在这个 Github issue [8]中留言,分享你的想法,或者你在其他 hackathon 中的所见所闻。如果你想在 National Day of Civic Hacking 中(或者平时)向 18F 的项目做贡献的话,请查看我们在 GovCode 上的 issue [9]。
[1] GovCode:https://github.com/18F/18f.gsa.gov/wiki/GovCode
[2] 18F 组织的 Readme:https://github.com/18F/18f.gsa.gov/blob/staging/README.md
[3] 待办事项清单例子:https://github.com/girldevelopit/gdi-new-site/issues/245
[4] Github 标签:https://github.com/girldevelopit/gdi-new-site/labels
[5] 新项目适用的 Github 标签列表https://github.com/osscommunity/starters/issues/5
[6] Github 指南:https://help.github.com/categories/bootcamp/
[7] 如何使用命令行和 Github:https://18f.gsa.gov/2015/03/03/how-to-use-github-and-the-terminal-a-guide/
[8] 关于本文的 Github issue:https://github.com/18F/18f.gsa.gov/issues/668
[9] GovCode 的 issue 列表:https://www.govcode.org/issues