
| 关注 @mchua
美国,印第安纳州
Mel Chua 是一位极具感染力的热情黑客、作家和教育家,拥有超过十年的教学和课程开发经验,并在红帽、One Laptop Per Child、Sugar Labs、Fedora 和其他自由、开放和开源软件 (FLOSS) 社区的领导职位上有着良好的记录。作为普渡大学的研究生,Mel 将对成功社区的学术研究与她亲身参与构建这些社区的实践经验相结合。
如今,Mel 将大部分时间投入到教育领域的开源工作中,教授教授们如何教授开源,并致力于将围绕学习和教学的成功开源文化习惯的“补丁” “上游” 推送到学术界的课堂中。在她假设存在的空闲时间里,她收集古怪的教科书,致力于本科工程教育改革,并弹钢琴,偶尔还会同时进行。
创作评论
我喜欢你的例子的一点是,你心中有一个特定的人——你的妻子——而不是一个广泛的“开发者”类别,后者是一个模糊的包罗万象的概念,难以测试。你如何检查为你妻子编写的文档是否有效?你给你的妻子看。你如何检查为“开发者”编写的文档是否有效?嗯……
最好为特定的开发者编写文档 - 或者让该开发者为你编写文档,正如你所指出的那样。找一个实习生,说你要教他们做一些很酷的事情,他们会把它写下来,并以他们的名义发表一篇技术文章,他们可以获得全部学分,你会帮助编辑。实际上,他们通过文档支付教学费用,这是一种将新人吸引到项目中的绝佳策略;如果“初学者的心态”能够清晰地表达出来,那么它可能是一种强大的工具。
最后,在描述你如何填补你发现的文档空白时,你完美地阐述了“让事物比你发现时更好”的规则,这些规则使项目 - 和客厅 - 保持理智的状态。
但是,是的,为特定的人写作很重要(并让那些特定的人测试你的作品 - 即使是简短的测试)。这就是为什么专业设计师使用人物角色而不是“市场细分”。我曾为我 13 岁的表弟、我的男朋友、我的老板、我团队的实习生、我钦佩但又不好意思向他们提问的开发者写作,除非我提供一些有价值的回报(“如果你教我怎么做,我会根据它写一份说明,这样你就再也不用教任何人了!”)。对我来说,关键实际上是让那些人在我写完文档后检查一下。如果你还没有让一个 13 岁的女孩把你的文档撕碎……那真是一次令人谦卑的经历。
就我个人而言,我的主要动机是希望有一天我不再需要维护我编写的 <em>任何</em> 代码。我很容易感到厌烦 - 一旦我完成了一个项目,足以解决我自己的问题,我就会立即检查它是否能解决其他人的问题……如果可以,我会尝试让他们更好地解决他们的问题 <em>更好</em>……如果奏效,其他人最终会比我更多(更好 - 我实际上根本不是一个好的程序员)地开发它。
当他们超越我,而我实际上成为他们努力的瓶颈和阻碍时,我会询问他们是否愿意接管维护,以便我可以不妨碍他们的生产力。到目前为止,每个人都说是的。我可以继续使用我最初开发的软件。双赢。但这关键取决于拥有良好的开发者文档。因此,我通常从我(手动)引导第一个新开发者黑客攻击我的项目的聊天记录中编写这些文档,因为(根据定义)它们包含使新人入门所需的所有问题。
然后我可以自由地继续我的下一个很棒的项目。