2017年的头几天,我开始从事我最喜欢的开源项目。它的设计和构建是为了解决我的一个业务问题。该项目称为bootparts,其目的是简化构建网站的过程。这不是我第一次涉足编码世界。多年来,我以不同的方式为不同的项目做出了贡献。然而,这一次我负责一切。这给了我额外的压力。我不喜欢压力。但我没有简单地忽略它,而是决定以一种健康的方式管理和处理压力,我是这样做的:(1)我决定何时开始这个项目这是我从开源社区听到的最大的抱怨之一是的,维护人员需要全天候工作。与此同时,人们对长时间无偿工作来修复错误和极端情况感到羞耻。这很容易导致倦怠,伤害整个团队的积极性。从第一天起,我就决定只在我想做的时候做这个项目。如果有人需要向项目添加一些东西,他们可以组队自己添加,或者付钱给我(Yelluw)来添加。我不反对个人需求。我反对的是所有开源作品都是免费的(比如啤酒)。通过限制我在项目上的工作时间,我减少了压力。任何外来者的不合理期望,都只按此规则处理。(2)休息休息很重要。当你在做一个项目时更是如此。我知道这对某些人来说很难,但过多的工作会降低产量和质量。休息让我考虑实施并提出更好的解决方案。它还解放了我的思绪,可以考虑其他代码。过多地关注一个代码通常很累。我的经验法则是,每工作两周,我至少连续休息三天。休息期间不编码。(3)尽早设定预期。从一开始就设定期望,人们无法让你做你不想做的事情。对我来说,期望很简单:我不会提供支持。我只会修复出现的重要错误(它们会影响我或我的付费客户)。我不会接受捐款。我不会接受捐款。这四个明确的期望驱使人们离开。我确实对一些好心的开发人员失去了兴趣,但这是有代价的。(4)从头开始??写文档这很简单,但很有效。我编写项目文档以减少问题和支持请求的数量。这个教训是很多年前学到的。未记录的代码意味着其他开发人员会在工作期间打断我,问我一些我认为是愚蠢的问题。结果证明他们不是愚蠢的问题。我是那个愚蠢的人-没有记录代码以使实施变得容易。现在我从头开始记录,并确保获得对文档的反馈。(5)快速关闭问题如果我不打算处理它们,那就没有意义了。眼不见,心不烦。(6)不接受所有人的捐赠不是所有人都适合这个项目。我们可能无法合作。人们倾向于认为项目维护者的贡献会受到张开双臂的欢迎。一点都不。由我来决定您的贡献是否符合总体项目路线图。不增加任何额外的工作开销。妥善记录。这看起来是不是太苛刻了?是的,这很苛刻。但这对我有用。我不想花时间处理BS。我只想编写代码并获得报酬。(7)不接受每个人的反馈结果发现有很多不好的反馈。人们倾向于在不花时间了解项目背景的情况下提供反馈。但是,每个项目都有一个开发环境。没有它的反馈(建议)就是垃圾。我曾经被告知我应该解决这个问题,因为它使项目无法使用(尽管我自己在生产中使用它)。有些意见就像混蛋。你会时不时地遇到一些。学会适当地处理它们。(8)定义成功这就是一些人失去动力的地方。拥有一个人们认为成功的项目需要花费大量的时间和精力。我不在乎人们是否认为该项目成功,因为我定义了成功的含义。项目成功了吗?正确的!它为我节省了时间和精力。但这不是巧合,项目的成功从一开始就被定义了:如果我能减少为客户在网站上工作的时间,项目就会成功。成功不是建立在某种虚荣心之上的,比如它变得多么受欢迎。它基于它如何影响我的日常生活。成功的定义是什么,你永远不应该让任何人说服你。(9)我玩得很开心我认为编码很有趣(大部分情况下)。玩得开心意味着我喜欢工作。尽管我不太喜欢这样做的想法。(10)收获我们都会犯错。我发出的第一个版本有一个巨大的错误!但我发现了它并从我的错误中吸取了教训。学习还意味着我不会为自己的错误感到羞耻。不,这意味着我用我的错误作为一种生活方式来表明我接下来需要学习什么。结论虽然从事开源项目非常有益,但压力也很大。我知道这里有些事情可能看起来有点矫枉过正,但我??非常重视自己的健康。我希望阅读这些秘诀能让您重新思考您的工作、您的开源项目以及您如何维护它们。我们都是热爱技术的人。下次见!
