在2017的头几天,我开始研究我最新的开源项目。它的设计和构建,是用来解决我的一个业务问题。该项目被称为bootparts,它的用途是简化网站建设的过程。
这不是我第一次进入编码世界。这些年来,我以不同的方式为不同的项目做出了贡献。然而,这一次我负责一切事情。这给了我额外的压力。我不喜欢压力。但是与其简单地忽略它,我决定以健康的态度去管理和处理压力,下面是我怎么做的方法:
(1)我决定什么时候开始这个项目
我从开源社区听到最大的抱怨之一是,人们既期望维护人员夜以继日地工作。同时人们又对为了修复bug和极端情况下 而长时间的无薪工作行为感到羞愧。这容易造成工作倦怠并且伤害到整个团队的积极性。
从第一天开始,我决定只在我想要的时候做这个项目。如果有人需要添加一些东西到项目里可以组队自己添加或付钱给我(Yelluw)来添加。我不反对个性需求。我反对的是所有开源工作都是免费的(如啤酒)。通过限制什么时候在项目工作,我减少压力的量。任何外来者的无理期望都是被这个规则简单处理掉的。
(2)休息
休息很重要。当你在一个项目上工作时,更是如此。我知道这对有些人来说是很难,但是工作过多会降低产量和质量。休息让我考虑实施并提出更好的解决方案。这也可以让我的思绪自由发散地去想想其他的代码。过分集中于一个代码往往是很累人的。
我的经验法则是,每两个星期的工作,我休息时间不少于连续三天。休息期间不写代码。
(3)提早设定期望
从一开始就设定期望,人们就不能让你做你不想做的事情。对我来说,期望很简单:
- 我不会提供支持。
- 我只会修复提出来的重要的错误代码(他们影响我或我的付费客户)。
- 我不会接受贡献。
- 我不会接受捐款。
这四个明确的期望赶走了人们。我确实失去了一些善意的开发商的兴趣,但这是付出代价的安心。
(4)从一开始就写文档
这很简单,但是有效。我写项目文档,来减少问题的数量和支持的要求。这一课是多年前学的。没有写文档的代码意味着其他开发者会在工作期间打扰我问我,我认为是愚蠢的问题。原来他们不是愚蠢的问题。我才是愚蠢的那一个–没有记录代码使实施变得简单。现在我从一开始就记录,并确保得到反馈的文件。
(5)迅速关闭问题
如果我不打算处理这些问题,就没有意义了。眼不见心不烦。
(6)不接受大家的捐款
并不是每个人都适合这个项目。我们可能无法合作。人们往往认为项目维护者都张开双臂迎接他们的贡献。不,一点也不。由我来决定你的贡献是否符合一般的项目路线图。不添加任何额外的工作开销。正确记录。这似乎太苛刻了吗?是的,这是严酷的。但它对我有用。我不想花我的时间处理BS。我就想写代码,然后得到报酬而已。
(7)不接受每个人的反馈
原来有大量的不良反馈。人们倾向于给予反馈但又不需要花时间去理解项目的背景。然而,每个项目都有它开发的上下文。没有它的反馈(建议)是垃圾。曾经有人告诉我,我应该解决这个问题,因为它使项目无法使用(虽然我自己在生产中就使用它)。有些意见就像混蛋。你会经常会遇到一些。学会恰当地处理它们吧。
(8)定义成功
这就是一些人失去动力的所在。拥有一个人们认为成功的项目需要花费大量的时间和精力。我不在乎人们是否认为这个项目是成功的,因为我定义了成功意味着什么。这个项目成功吗?对!它已经节省了我的时间和精力。但这不是巧合,该项目的成功是从一开始就定义为:如果我能减少我为客户在网站上工作的时间,这个项目将是成功的。成功不是建立在一些虚荣的基础上,就像它变得多么受欢迎一样。它是基于它对我日常生活的影响。成功的定义是什么,你永远不要让任何人说服你。
(9)我玩得很开心
我认为编码是有趣的(在大多数情况下)。有乐趣意味着我喜欢工作。即使我不太喜欢这样做的想法。
(10)收获
我们都会犯错。我发出的第一个版本有一个大错误!但我发现它并从错误中学习。学习也意味着我不会为错误而感到羞愧。不,这意味着我会把错误当作生命的方式来指明我下一步需要学的东西。
结论
开源项目的工作是非常有意义的,它也是非常紧张。我知道这里有些事情看起来有点过分,但我很重视我的健康。我希望你看完这些方法后会让你重新思考你的工作,你的开源项目,你如何维护。我们都是热爱科技的人。下次见!