Lean Ecosystems: 精益生态系统
Lean Ecosystems: 精益生态系统
目前为止关于精益最全面的絮叨…
最近出现了很多打着精益旗号的概念, 比如精益架构, 精益创业, 精益软件开发, 精益UX, 沾边的看板方法, 还有松哥的精益软件度量, 八叉的精益招聘等. 看上去又是一个被热炒的buzzword, 像OO, SOA, Agile, Cloud, Big Data等前辈一样.
那么这里面到底有多少羊头, 又有多少狗肉呢? 这些概念到底是什么意思, 跟精益的关系又是什么? 彼此之间又有什么联系?
它们都是精益思想在不同领域的应用, 解决不同问题.
最开始的故事大家都知道, 一切的源头是丰田生产方式, 催生了”精益思想”, 随后各路神仙发现这事靠谱, 纷纷应用到自己的行业, 解决自己手头的问题.
最早的精益生产, 是精益思想的源头, 算是精益思想在制造业的应用, 提出了众多精益原则: JIT即时生产与小批量, 精确定义价值, 价值流与消除浪费, 流动, 看板与拉动, 单件流, 停止生产线, 持续改进等.
但是后来…

有一个人, 在创业时碰到了麻烦, 他借鉴精益思想, 提出了精益创业的概念. 精益创业(Lean Startup)是精益思想在面对不确定性时的应用, 重点是小批量结合快速反馈来消除浪费以降低犯错的成本, 消除的主要是生产了客户不需要的产品造成的浪费. 这种浪费对于初创企业来说, 是致命的.
除此之外, 精益创业有很多创新的概念, 比如 “假设->开发与测量->验证过的认知” 的模型, 以及基于此模型将精益创业本身定义为 ”如何在极端不确定的环境下衡量进展” 的通用方法, 从而使其不仅仅应用于创业.
对于价值和质量的定义, 精益创业也贡献了自己的观点: “如果我们不知道谁是客户, 那么我们也不知道什么是质量”.
后来…

有一拨人, 在软件架构设计时碰到了麻烦, 他们借鉴精益思想, 提出了精益架构的概念. 精益架构(Lean Architecture)是精益思想在软件架构设计方面的应用, 重点有两个, 一个是避免返工的浪费, 另一个也是避免返工的浪费.
不同之处在于, 第一个, 基于已有领域知识来进行预先设计, 避免无头苍蝇一样被动的学习, 碰壁之后对架构和编码返工导致的浪费. 这实际上弥补了敏捷开发尤其是XP对于架构的语焉不详. XP试图通过简单设计加重构来演化出架构, 但在实际操作层面并没有给予太多指导, 导致缺乏经验的实践者在实际中要么架构积重难返, 要么大规模重写, 造成了很多浪费. 作者说Agile is about doing, lean is about thinking and doing.
第二个, 基于领域知识的架构预先设计中, 关注架构的form, 而不是structure, 避免错误的抽象和结构导致的返工. 传统的预先设计总是试图做抽象, 并定义好系统的结构, 比如扩展点, 而后通过继承基类实现接口等方式来应对变化. 这种设计方法的产出通常是一个framework. 这种方式的悖论在于, 抽象总是基于已有的artifacts的, 比如我有三个组件, 发现他们具有相似的属性和行为, 然后抽取出一个基类或接口. 但开始设计时, 我们手头还一个组件都没有呢, 如何抽象? 而一旦我们基于预测和假设做出了抽象, 由此形成的结构到了实现阶段发现假设不成立时, 返工的代价是相当大的. Lean Architecture对此提出的方案不是abstraction, 而是 partition, compression and generalization. 架构要符合最终用户的心智模型, 区分what the system is, 和 what the system does.
以上关于Lean Architecture的讨论都是要保证作为结果的架构设计要保持lean. 而作者还试图描述作为过程的架构设计也应该lean, 比如应该避免部门割裂带来的浪费, 应该从stakeholder的角度来定义价值, 避免在错误的功能上花费精力造成的浪费. 方法就是他反复强调的”everybody, all together, from early on”, “all hands on deck” 等, 就是要从一开始就involve各方面的人, 从而快速反馈. 另外如果预先设计是基于领域知识而不是具体功能的话, 领域专家在设计过程中是不可或缺的. 如果作为结果的架构设计反应的是最终用户的心智模型的话, 也应该尽早从最终用户的角度来验证.
后来…

有一个人, 在推动组织变革时碰到了麻烦, 他借鉴精益思想, 提出了看板方法. 看板方法(Kanban)是精益思想在组织变革方面的应用, 重点是可视化价值流以暴露问题, 为组织带来逐步改善的张力, 而通过消除变异, 限制WIP等具体措施来促进价值流的顺畅流动, 为组织带来改进. 关于看板方法的进一步描述, 请参见看板方法:科技企业渐进变革成功之道
后来…

有一对夫妇, 不知道是不是在软件开发方面遇到了麻烦, 于是借鉴精益思想, 提出了精益软件开发的概念. 精益软件开发(Lean Software Development) 是将基础的精益原则, 一一映射到软件开发时产生的一些实践. 大的方面包括:
- Eliminate waste: Spend time only on what adds real customer value.
- Amplify learning: When you have tough problems, increase feedback.
- Decide as late as possible: Keep your options open as long as practical, but no longer.
- Deliver as fast as possible: Deliver value to customers as soon as they ask for it.
- Empower the team: Let the people who add value use their full potential.
- Build integrity in: Don’t try to tack on integrity after the fact—build it in.
- See the whole: Beware of the temptation to optimize parts at the expense of the whole.
而核心的实践(工具箱)包括
- Seeing Waste
- Value Stream Mapping
- Feedback
- Iterations
- Synchronization
- Set-Based Development
- Options Thinking
- Last Responsible Moment
- Making Decisions
- Pull Systems
- Queuing Theory
- Cost of Delay
- Self Determination
- Motivation
- Leadership
- Expertise
- Perceived Integrity
- Conceptual Integrity
- Testing
- Refactoring
- Measurements
- Contracts
后来…

有一个设计师, 在从其它设计领域切换到软件用户交互设计时碰到了麻烦, 尤其是这个软件开发团队还采用了敏捷和精益开发. 他借鉴精益创业的概念, 提出了精益用户体验设计. 精益用户体验设计(Lean UX)已经不直接从最初的精益思想获取力量了, 而是从精益创业的”假设->验证->认知”模型开始, 融合设计思维与敏捷价值观, 基于此三块基石形成的一种工作方式.
设计思维明确地指出,企业经营中每个环节的问题都可以用设计方法来解决。因此设计师得以合理地突破原有的局限,参与到其他工作之中。此外,设计思维还鼓励设计师以外的团队成员也用设计方法来解决各自领域的问题。总的来说,设计思维鼓励团队中不同角色的人协同合作,把产品设计视作一个整体,是一个非常重要的基础思想。
敏捷推崇应对变化重于遵循计划。Lean UX首先假设我们最初的设计是错的,所以,我们的目标是尽快找出错在了哪里。一旦确定了哪些可行哪些不可行,就可以相应地调整计划,并再次进行验证。这种真实的市场反馈让团队可以一直保持敏捷,也促使我们不断调整,朝着“更正确”的方向前进。
更多Lean UX的描述, 请参见Lean UX: 精益设计
后来…

有一个咨询师, 在给客户写报告的时候收不住手写多了, 于是他索性写成了一本书, 叫精益软件度量. 后来他成了ThoughtWorks第一个出书的MD.
本书在两个方面与精益思想互动. 一方面, 度量体系长期以来面临流于形式的境地, KPI更是多少罪恶假汝之名以行之. 究其原因在于度量实施者一直试图”掌控一切”, 片面追求可靠性而忽略有效性. 本书试图采用精益思想中持续改进的理念, 将度量体系作为改进引擎, 而不是评价绩效的大棒.
另一方面, 无论是精益中的持续改进, 还是精益创业中的假设验证, 还是看板中的流动性管理, 要达成目标, 首要的前提是能够度量现状, 及行动的后果. 我们需要一个更有效的度量体系来为创业或组织转型保驾护航. 本书通过将指标体系与组织目标和决策场景关联起来, 并采用全员参与, 持续反馈的方式, 打造了一种更关注有效性的度量体系.
后来…
有一个CTO, 所处的是专业服务行业, 在招聘时遇到了麻烦. 他借鉴精益创业的思想, 提出了精益招聘概念. 精益招聘(Lean Recruiting) 是精益创业的”假设->验证->认知”模型在企业招聘时的应用, 以降低招聘到不合格员工所造成的浪费.
公司招人时, 若offer一个candidate, 要么是觉得这个人立马可以用, 要么是觉得培养一段时间, 通常是试用期的长度, 也可以用. 可是, 无论是立马可用还是培养可用, 都只是一个假设. 若要避免过大的浪费, 就需要尽快验证这个假设, 因此面试是一个持续的过程.
反过来, 若你已经开发出一套培养机制, 和一套持续反馈的方法, 可以降低浪费的成本, 那么, 招聘时无需过于吹毛求疵, 可以更加大胆放一些有特点但不完美的候选者加入, 依赖培养和反馈机制来做最后的决定.
综上所述, 精益是一种思想, 可以应用在各行各业. 比如小熊把它应用在个人成长上.
这里面, 精益创业的概念是自精益思想产生来最大的一个飞跃, 已经算是自成一派了, 前面的精益招聘, 精益成长, 精益UX等, 都算是其流毒.
相信还有更多的下一个应用和飞跃…