进化 - 从孤胆极客到高效团队 =========================== #. 天才程序员神话 #. 程序员行为模式 #. 请帮我隐藏代码 #. 缺乏安全感。人们担心别人看到并评论自己未完成的工作 #. 天才神话 #. 天才神话只是我们缺乏安全感的另一个表现。 #. 隐藏是有害的 #. 如果总是独自工作,失败的风险就会增加,你也会错失成长的机会。 #. 尽早与他人分享想法不仅可以避免个人失误,验证想法的正确性, 而且可以增加所谓的项目的巴士因子(bus factor)。 #. 巴士因子:项目中有多少人被巴士撞死会导致项目完全无法进行下去 #. 还需要考虑项目的整体进度 #. 快速反馈循环 #. 独自工作一定比多人合作更具有风险 #. 团队为王 #. HRT:Heart #. 谦虚 Humility #. 尊重 Respect #. 信任 Trust #. 几乎每种社交冲突的源头最终都可归结为谦虚、尊重或信任的缺失 #. HRT 实战 #. 放下自我 #. 就是告诉那些不够谦虚的人别摆架子 #. 态度谦虚并不是说应该完全任人摆布 #. 批评与自我批评 #. 你的自尊不应该和你写的代码(或创建的任何创新项目)有任何联系。 也就是说,你的代码并不代表你。 #. 快速失败和迭代 #. 一份完备的事后分析报告应包含以下内容: #. 概述 #. 从发现问题,调查问题,到解决问题的时间线,事件发生的主要原因 #. 影响和损失估计 #. 立即解决问题的一系列措施 #. 预防事件再次发生的一系列措施 #. 吸取的经验教训 #. 留出学习的时间 #. 学会忍耐 #. 接受改变 #. 打造团队文化 #. 团队文化不仅仅是团队成员完成工作、编写代码或彼此相处的方式, 而且是成员共享的经验、价值观和目标。 #. 元素 #. 工作流程 #. 人际 #. 行为模式等 #. 团队文化的重要性 #. 如果不花费精力打造和维护团队文化,最终会出现具有很强个性的人, 在团队中培养他们的文化,接管你的团队。 #. 团队成员应该重视并愿意维护团队文化,这一点也很重要。 #. 虽然创始人和领导者通常会关注团队文化的健康, 但团队的每个成员都应参与其中,担负起定义、维护、保护团队文化的责任。 #. “强大的文化”能够接受提升自己的改变,而抵御带来伤害的巨变。 #. 团队契合度面试 #. 成功团队文化的沟通模式 #. 人少时使用同步沟通(如会议和电话会议),人多时使用异步沟通(如邮件、 问题跟踪系统、文档注释)。 #. 确保所有的信息都存在项目文档中 #. 高层同步 #. 任务说明书 #. 在一个实干、高效的团队中,编写任务说明书是为了简明地定义工作方向, 限定产品范围。 #. 随着项目推进,任务说明书可以确保事情沿既定方向发展。但是, 项目说明书不应成为阻碍变化的不可逾越的障碍。 #. 高效会议 #. 主持会议的五条简单准则: #. 只邀请必需人员参加 #. 草拟议程并在会议开始前尽早发出 #. 完成会议目标即可散会 #. 保持会议按议程进行 #. 尽量将会议安排在中断点附近(如午餐或下班时间) #. 分布式团队 #. Subversion 项目组有一句格言:如果讨论不在邮件列表中进行, 就没有真的发生过。 #. 面对面沟通的重要性 #. 设计文档 #. 设计文档不仅是未来产品的概念蓝图,而且也是与大团队沟通的低成本方式, 可以传达你的设计目标及实现方法。 #. 日常讨论 #. 邮件列表 #. 在线聊天 #. 使用问题跟踪系统 #. 工程中的沟通 #. 代码注释 #. 署名:不建议 #. 每次提交必有审阅 #. 测试与发布流程 #. 一切为了产品 #. 打造一种强大、有效的团队文化,花时间注意团队的沟通, 创建出的团队会将更多的时间花在编写和提交产品上, 而花费更少的时间争论提交什么样的产品。 #. 群龙不可无首 #. 自然界里无真空 #. 经理是个贬义词 #. 胡萝卜加大棒”的管理方法 #. 新时代的“经理”是“领导者” #. 传统的经理关心如何做事,而领导者关心做什么事 (并相信团队知道如何将其实现)...... #. 唯一需要担心的是,所有事 #. 好像你多年来一直按每天摘的苹果计算工作量,工作变成摘香蕉之后, 你收工时对自己说“我今天一个苹果也没摘”,却对身边的一大堆香蕉视而不见。 #. 对管理工作进行量化比计算组装好的工具要困难得多。 #. “彼得原理”:“任何层级组织里,每个人都将晋升到他不能胜任的阶层。” #. 服务型领导 #. “首先,不要急于管理。” #. 反模式 #. 雇用软弱者 #. 忽视表现不佳者 #. 忽视人际问题 #. 与所有人为友 #. 放宽招人标准 #. 把团队当孩子管 #. 领导模式 #. 放下自尊 #. 成为禅意大师 #. 成为催化剂 #. 失败是一个选项 #. 成为老师和导师 #. 设定清晰的目标 #. 以诚相待 #. 关注幸福度 #. 你有什么需要? #. 其他提示和技巧 #. 放权,但也要做具体工作。 #. 寻找接替自己的人。 #. 知道何时出手。 #. 给团队一方净土 #. 保护团队 #. 肯定团队的成就 #. 同意尝试容易恢复的事情 #. 人同植物 #. 团队成员也和植物一样:有些需要更多阳光,有些更需要灌溉 (有些需要更多的牛粪,呃,肥料)。作为团队领导者, 你的责任就是发现谁需要什么,然后满足他们的需求。 #. 内在激励和外在激励 #. 应对有害之人 #. 定义“有害” #. 某些不好的行为会使项目进度变慢,效率降低, 而且使公司工作环境变差——最终破坏团队的凝聚力 #. 实际工作中,最好避免在日常谈话中用这个词 #. 巩固团队 #. 有效的最佳实践和流程 #. 发布任务说明书,明确目标和非目标。 #. 为邮件讨论建立适当的礼节规范。保存归档,请新成员阅读归档邮件, 防止少数人干扰讨论。 #. 记录所有历史:不仅是代码历史,还包括设计决策、重要缺陷修复, 以及以往的错误历史。 #. 有效合作。使用版本控制软件,保持代码少改动,可审阅, 增大“巴士因子”,防止知识集中在少数人手中。 #. 明确缺陷修复、测试、软件发布的政策和流程。 #. 降低新成员的磨合障碍。 #. 依赖基于共识的决策方法,但也要制定备用流程, 以解决无法达成共识的冲突。 #. 发现威胁 #. 最可能受到影响的是团队的注意力和专注力 #. 不尊重他人的时间 #. 不肯花几分钟读一下基础的项目文档、任务说明书、FAQ, 或最新的邮件讨论内容,而是不断地提出自己本可以轻松找到答案的问题, 打扰整个团队。 #. 自大 #. 颐指气使 #. 沟通幼稚或混乱 #. 疑神疑鬼 #. 完美主义 #. 去除毒素 #. 不建议仅仅因为某些人不擅社交或行为粗鲁就将其踢出社区 #. 引导完美主义者的能量 #. 不要让“完美成为良好的敌人” #. 不要喂食能量生物 #. 不要过于情绪化 #. 在愤怒中寻找事实 #. 以德报怨 #. 适时放手 #. 放眼未来 #. 基于 HRT 的强大团队文化是不可替代的,但技术能力绝对是可以替代的 #. 为了短期效益而损害团队文化是不值得的 #. 组织操控的艺术 #. 好公司、坏公司,以及策略 #. 理想情况 #. 理想的工作体验 #. 完成本职工作后寻求更多职责 #. 承担风险而且不惧失败 #. 通过失败发现自己的能力和不足,并逐渐拓展自己的极限 #. 如果一年一次失败都没有发生过,就说明你没有承担足够的风险 #. 如果在工作中不承担风险,你会少经受一些失败, 但也会少获得一些大的成功 #. 表现得像成年人一样 #. 对不确定的东西提出疑问 #. 经理不是透视眼 #. 通常情况 #. 幸福的家庭总是相似的,不幸的家庭却各有各的不幸 #. 不称职的经理 #. 害怕失败是不称职的经理最常见的一个特征 #. 缺乏安全感的经理会坚持插手你与团队以外人员的交互 #. 藏匿信息使经理自己成为信息传达和沟通的渠道, 不称职的经理还会在你成功时夺取功劳, 在你失败时撇清干系(有时还将他们的失败归罪在你头上) #. 办公室政治家 #. 整天作出有影响的样子,而不是实际产生影响 #. 建议你避开办公室政治家:如有可能,尽量绕行, 但不要对他的上级说他的坏话 #. 管理不当的组织 #. 工程师是完成商业目标的手段,但这些目标通常是非技术的 #. 意味着管理公司的人很可能不理解系统底层的技术细节, 只知道业务需求,因此会对工程师提出不切实际的要求 #. 直接表现通常是不切实际的工期, 缺少称职的技术人员按时完成项目 #. 在特别糟糕的公司里,指挥和控制结构僵化有如割据 #. 很多公司充满了极力维护组织层级的人 #. 公司是否像对待调皮孩子一样对待过你 #. 操控组织 #. 如果你只注意公司中应该如何做事,通常只会得到挫败和失望。 相反,你应当承认事情的现状,专注于探索公司结构, 寻找可以用来完成工作的机制, 在公司中为自己打造出一个安逸的位置。 #. “取得原谅比获取许可更容易” - 可能消耗政治资本 #. 首先也是最重要的是,要了解公司允许什么行为 #. 即使你准备好事后寻求原谅,也还是要谨慎行事 #. 如果你决定要走“请求原谅”这条路, 可以在公司里寻找一些同事和朋友, 听听他们对你的想法的意见——特别是比较冒险的那些想法。 #. 另辟蹊径 #. 在公司内作出改变的另一个策略是想办法使你的想法被底层接受。 #. 停止一个坏习惯是不可能的,你需要将其替换为一个好习惯。” #. 学会向上管理 #. 将推出产品放在首位 #. 将大多数时间花在这种防御性工作上, 很难得到团队外的人(包括你的上级)的欣赏 #. 进攻性工作通常是新用户可见的功能 #. 防御性工作针对的是产品的长期健康 #. 简单准则:不管欠了多少技术债, 团队花在防御性工作上的时间不应超过全部工作时间的 三分之一到二分之一。 #. 运气和人情经济 #. 运气好的人“善于创造和捕捉偶然机会” #. 政治银行账户 #. 晋升到一个安全职位 #. 寻找有影响力的朋友 #. 如何写信找忙碌的高管帮忙 #. 三条要点和一个行为召唤 #. 最多包含三条要点说明当前的问题 #. 以及一个——只有一个——行为召唤 #. 如果你实在忍不住,非得加上更多的背景和信息, 那就放在邮件最后(甚至在签名之后), 并清楚标明是“更多细节”或“背景信息”。 #. 备用计划:撤退 #. 做正确的事,等着被炒 #. 希望尚存 #. 首要目标应当是作出所需的改变,使自己开心,完成工作目标 #. 用户也是人 #. 用户参与的三个阶段 #. 首先需要唤起用户对产品的注意 — 他们知道这个产品的存在吗?在使用前他们对产品有何看法? #. 然后需要考虑用户在开始使用后的体验。产品是否达到预期? 产品可用度如何?是否帮助了用户? #. 最后,我们要讨论如何与忠实用户进行高效互动。 所有这些交互都是产品开发循环中的一部分。 #. 管理公众认知 #. 程序员看来,营销人员代表着工程文化的反面; #. 将市场营销视为扭曲事实的行为, 因此其与创新者对精英文化的直觉需求相悖 #. 更严重的是,我们认为营销人员总是向客户作出过多承诺, 导致工程师交付的产品好像总是不够好 #. 坏消息是:你不能忽视市场营销。市场营销确实很重要, 你必须做好这方面的工作。好消息是:积极与市场营销合作是可能的。 #. 注意第一印象 #. 不要低估精心设计的产品体验的感性影响 #. 少许诺多提交 #. 与工业分析师谦恭合作 #. 你的软件可用性如何 #. 关注用户,其他便都将水到渠成。 #. 选择听众 #. 好产品开发的目标是将这条竖线尽量向左侧移。 #. 考虑进入的壁垒 #. 衡量使用量,而非用户数 #. 设计很重要 #. 以用户为先 #. 速度不容忽视 #. 切勿求全 #. 隐藏复杂性 #. 人们使用你的软件是因为他们愿意这么做,而不是因为他们没法离开。 这种做法可以使用户对你产生信任,而用户的信任是你最宝贵的资源 #. 管理与用户的关系 #. 尊重用户的智商 #. 耐心 #. 创造信任和愉快 #. 记住用户 #. 市场营销 #. 了解人们对软件的看法;这决定了他们会不会愿意尝试 #. 产品设计 #. 如果软件做不到容易尝试、速度快、友好,而且用户面广, 用户就会流失。 #. 客户服务 #. 主动与用户建立长期的良好关系能影响软件的演化和用户保持率。