开发者宣言
1、你是工匠,而不是工程师
工程师是让代码运行起来就可以。但是你是一个工匠,远不止这些,工匠需要通过不断练习提高手艺,其经验和才能需要达到艺术家的表现水平。
需要像一位手艺人中大师傅一样对待你的工作。
2、风格问题
不能因为我们构建的是基础设施和工具,就不能变得酷炫和时尚以及有趣。
圆滑与乐趣 vs. 强大与认真。
风格是通过设计和工作流程来表达。工作流程和设计决定了架构。
如果没有考虑我们的客户流程或内部团队流程的情况下,那就不要构建任何东西,因为如果工作流程有缺陷,那么架构肯定是有缺陷的。
工作流程与设计的迭代可能而且需要基础设施的重构。
3、疯狂专注于优雅和简约
你也许对工作倾注了大量热忱和关心。但是可能缺乏对清晰干净的关注。
产品的简单形式就是一个原型。真正的一件成品应该被视为一种让人们欣赏的艺术品。
反复多次思考能使得您的代码更具表现力、优雅和清晰。下一个看你的代码的人应该对这点感觉很明显。
3、完成工作
一个产品如果只是进行了简化,还表示它没有完成。真正成品应是干净、有文档和有测试的。
如果产品是一个Web服务,它至少应该有一个CLI来管理它。有时需要一个Web UI。
如果您是唯一可以使用它的人,这表明您的产品未完成。您必须是已经制作了必要的工具来管理产品,包括相关文件参考,至少要有一个其他人看过你的展示或演示。
4、时间是一切
如果你正在构建一些东西,但好像哪里看着不对劲,那么也许现在不是将它搞正确的时间。把当前工作放下一会儿,你可能需要进行一些另外的学习和尝试。也许在几个星期或几个月以后,你(或其他人)会再次拾起继续工作时,你会发现世界已经发生了变化,也许是成功建立它的正确时机。
5、扔掉它、重做
这不是代码是否有价值的问题,而是你需要从代码构建中获得对系统的理解。
永远不要害怕扔掉它,再做一次。在第二(或第三或第N)个时间段内,构建得也许更快、更好。
6、一切都是一个实验
我们所做的任何事情 - 产品、功能、参加的会议、工作流程或协作工具 - 都可能会发生变化。这包括停止或关闭等任何可能发生的事情。结束一个实验不是失败。从不符合我们想要结果的实验中反而学到最多的东西。
7、质疑一切
现状总是不够好。
8、用你的直觉
预感能引导您到创造产品新价值的地方。用户并不知道他们想要什么。创造人们喜爱的产品需要将产品的开发视为一种艺术而不是科学。但产品必须真正解决用户问题。
掌握产品变化对现有产品的影响最好通过研究数据来完成。当您拥有成熟的产品和许多用户时,您有很多有关你的用户是如何使用它们的数据。使用这些数据作出循证决定。
不要只是因为客户或产品经理“需要”它而做某事。明智,用你的直觉。努力地了解真正的问题,并设计出一种以最佳方式解决问题的解决方案,也许不是客户或产品经理的想法。
9、创造价值
当我们站在用户立场解决了痛苦,价值就创造出来了。例如,SSL进程通常是痛苦的。我们的客户通过使用的方便感觉到价值。对我们来说,这意味着为他们解决了痛苦的问题。
同情我们的客户。如果他们感到痛苦,我们就有机会创造价值。
要小心。有时用户的痛苦是自我造成的,这需要避免。
10、获得信任
信任不是一种权利,这是一种特权。
信任是由:
(1)即使我们只能够提供情感上支持,也要血泪之路。
(2)做出负责任的决定,而不是期待别人解救你。
(3)志愿服务,即使时机不理想。
(4)在紧急情况下,在休息时间内提供帮助。
(5)编写稳定的代码,并可用于修复Bug,甚至有时在几个小时之后。
信任丢失:
(1)让别人承担支持您的代码的负担。
(2)无法紧急情况下帮助别人,不计划与其他人共享。
(3)加强自己,防御性地争论你的立场,强迫别人围绕你的僵化设计进行编码。
11、所有权,非共识
每个产品、功能、软件组件、网页、商业交易、博客文章等都应该有一个所有者。许多人可能会一起合作,但所有者是“系统在这里停下来了”,并在发生事情后进行最终呼吁的那个人。
所有者可以而且应该收集他人的反馈意见,但只是反馈 - 所有者可能选择这些反馈(也可能不会选择)纳入他们的工作。如果某些东西没有所有者,没有人应该在这里工作,或者试图作出决定。在这些事情发生之前,它必须有一个拥有者。
所有权不能被动给予,只能主动获得。所有权不能宣告,只有证明。所有权从创造事物的人开始。后来拥有者可以把它交给别人。如果某个项目由于某种原因被丢弃,那么任何其他人都可以可通过公平的游戏重拾其这个项目。
苹果对所有者的术语是“直接负责任的个人”或DRI。
所有权可能会被取代甚至撤销:
(1)任何上述原则(风格,工作流,优雅,简单,完成)都没有被观察到。
(2)事物或项目的目标不符合公司的愿景。
(3)事情或项目的决定不考虑员工的规模或成长。
(4)所有者不认可与其所拥有的东西或项目进行互动的其他项目的观点。
信任和所有权是不可分割的。如果您没有获得团队的信任,您不能拥有项目或事物。
12、忽略竞争(大部分)
我们不是“me too”的公司(me too是附和 跟从的意思)。我们会创新,并信任我们的创新过程。我们决不复制别人。
有时标准和惯例是由竞争对手建立的,并且被广大社会接受。我们不能忽视这些标准,因为是竞争对手建立起来。
有时候,我们需要做出一个战略举措来定位自己的市场。这个定位是相对于竞争对手。我们可以结合功能来应用杠杆。
竞争对手也有很好的想法。如果适合,借用他们想法(草船借箭)
13、强意与弱势
可以有强烈的意见,可以进行热烈争论。但是当你遇到新的情况与信息时,也要愿意改变之前主意,不要为了面子故作矜持。
钝感blunt,诚实honest,真实truthful。建设性批评是最好的。为了礼貌,避免你对某人或某事的批评,保持安静。
对你自己的看法要说实话。如果你认识到你是为了辩论而争论,就退出辩论。
如果你认识到你在辩论中不了解整个观点的话,就会说出来。通常我们不明白正在讨论的问题。如果你发现自己在这种情况下,说出来。您不能参与任何您不了解其问题的解决方案的辩论。
如果您认识到您正在争取“不改变”而辩论,或者为一个更容易(但不一定正确)的解决方案而辩论争取,则应立即撤回。
14、归功于失败
你曾经在错误的时间发布博客吗?交付之前却未能记录所实现功能?不尊重某人的所有权,还是伤害某人的感受?
如果是,就承认你的错误,道歉,并感到失败,以确保你从中学习。然后,重新上班。
15、热情
我们处于一个非常快节奏的行业,任何事情都不会停滞不前。要对工作流程和工具能被改进得更好的一种热情驱动。