敏捷整洁之道--Uncle Bob正本清源

如果你知道Bob大叔,如果你对他的整洁之道有所耳闻,你一定能想象这场直播具有的非凡意义。从2001年敏捷宣言的诞生,到2009年《代码整洁之道》的面世,再到之后的《代码整洁之道:程序员的职业素养》、《整洁结构之道》,今年,刚好整整20年,Bob大叔创作的《敏捷整洁之道:回归本源》构成了“整洁三部曲”,其背后的思想和历程值得每一位希望写出整洁代码的程序员挖掘。

鲍勃大叔《Clean Agile》翻译版《敏捷整洁之道》
您还没有拥有吗?扫描上方二维码
只需一张毛爷爷即可获得由敏捷大咖「申健」「熊节」
亲笔签名的『限量版』图书

另外,还有一点难得的是,这场直播请到的嘉宾正是“整洁三部曲”的译者,时隔十年,齐聚一起,为你解码“Bob大叔”关于整洁代码的核心理念和价值。

观点提要:申健老师以“Bob大叔对敏捷清理门户”这样极具话题性的主题,展开讲解了人们对敏捷的误解,批判了大型伪敏捷,最后给出了敏捷在企业落地的建议。

(这篇回放稿总共接近4万字,在这里小编尽量保证不曲解大咖们的原意,将其主要观点和精华浓缩出来,呈现给大家,希望大家有所收获。)

Read More

敏捷绩效考核与OKR

从“为什么”开始

敏捷的目标是增强组织响应变化的能力,主要通过目标对齐、信息透明一致、尽早反馈和调整、基本功提升、去中心化控制等来达到,因此绩效考核的原则要顺应这些敏捷思想,激发员工动力。我认为敏捷组织转型下,绩效考核(无论是KPI还是OKR)都应关注以下原则:

  1. 更多关注团队表现而非个体表现
  2. 从被动指标分解到自组织的目标管理
  3. 配合短迭代研发周期,缩短考核周期
  4. 从奖金和排名转移到学习与成长

一个可参考的敏捷团队绩效模型:

某国内企业用OKR绩效牵引转型,兼顾成功与成长

  • 个人绩效构成(百分制):
    • 团队(业务)目标实现率 30分
    • 关键举措/行动完成情况 40分
    • 团队协同情况 30分
      • 推进他人帮助自己完成关键工作 10分
      • 帮助他人完成关键举措 10分
      • 部门/团队建设参与和贡献 10分
    • 加分项
      • 或政府事迹表彰 5-20分
      • 关键工作以外的突出贡献 5-20分
    • 其他赏罚调整 5-20分
  • 个人绩效构成(百分制):
    • 团队(业务)目标实现率 30分
    • 关键举措/行动完成情况 40分
    • 团队协同情况 30分
      • 推进他人帮助自己完成关键工作 10分
      • 帮助他人完成关键举措 10分
      • 部门/团队建设参与和贡献 10分
    • 加分项
      • 或政府事迹表彰 5-20分
      • 关键工作以外的突出贡献 5-20分
    • 其他赏罚调整 5-20分

其他一些原则

根据《Scrum Primer》 v0.5,作者根据Yahoo在2008年前后使用Scrum后调研(以1-5打分的方式进行),当时发现主要绩效提升表现在以下方面: 生产效率,团队精神,适应性,责任性,协作能力。那么敏捷转型的整体绩效也应该从以上方面进行考虑作为文化导向,结合我从2007年开始在诺基亚西门子通信的敏捷经历,建议做法如下

  • 减少个人绩效的权重,增加组织或团队层面的权重
  • 绩效打分与奖金分配不完全挂钩
  • 依据360度收集的信息、评价和数据
  • 考虑团队工作内容、需求变化和复杂程度,可结合OKR与KPI的使用
  • 敏捷Scrum中的短迭代计划——由PO指出迭代目标,团队共创出要达成的任务——实际就是一个执行层面的短期OKR。而产品、项目级别的大目标,可认为是战略层面的长期OKR。
  • 设定团队之间互相支持的指标,作为团队绩效评分(Team Performance Evaluation),例如帮助其他团队修Bug,为其他团队做分享都可以互相送分数。

大型规模化敏捷,请和你的大老师远离敏捷

随着敏捷开发的流行,近年来各种大型、规模化敏捷框架、敏捷组织设计、业务敏捷也称为大老师们口中的热词,也带来了很多讨论甚至质疑。本文根据笔者Jacky Shen在2019上海和北京敏捷之旅发表演讲所整理。

笔者认为,敏捷的核心是“小而美”,追求“大而全”非常危险而且也达不到敏捷的目标,即“早+准”,在不确定环境中快速反馈来命中商业愿景,提升竞争力。

本文分为以下三个部分:

  • 从敏捷到”大型敏捷”
  • 骨感现实中的复杂性
  • 变革管理及一些原则

一、从敏捷到规模化”大型敏捷”

1.1 回顾敏捷Agile这个词

2001年17位软件行业先驱在美国雪鸟镇聚会,石破天惊地提出了《敏捷开发宣言》,当时的主要关注点包括:

  • 追求响应力与灵活性,即适应性over预测性 (不是单纯地求快,也不是要压榨产能)
  • 以人为本(一群“艺术”家),而非用流程来管控(流水线工人)
  • 提升客户和团队满意度

然而现实中,人们对”敏捷”还有其他期望:

  • “抄竞品抄得快” — (敏捷不见得能帮你少花时间,只让你知道该干嘛)
  • “明年少招点人” — (敏捷不见得提高产能,只是增加了可管理性)
  • “按时上线” — (敏捷不见得确保时间,只是摧毁不切实际的幻想)

笔者认为,我们平时书本和课程谈的各种敏捷方法论、框架实践集,都在描述一种“理想的未来状态”,但是很难说如何在特定组织中能够达到那种状态,所以与敏捷转型(变革管理)是两码事。

Read More

敏捷开发实践名词术语图谱(地铁线路图)

什么是敏捷

Agile Alliance: 敏捷是一种建立和响应变化的组织能力。用于应对不确定和动荡环境,并取得成功。^1

Scrum Alliance: 敏捷是一个形容词,是一种思维或践行敏捷宣言与敏捷原则组织级方法,从而感知和响应市场变化。具体地,Scrum是一种框架、方法论、工具,利用客户反馈来快速交付高价值的增量。^3

敏捷宣言

敏捷宣言^2的作者们选择了“敏捷”(Agile)这个词,是因为这个词所代表的适应性和变化响应力对他们的方式方法至关重要。(参见 https://martinfowler.com/articles/agileStory.html)

这种思维是关于你如何理解当今环境所发生的一切,识别你所面对的不确定性,边前进边找出应对措施。

敏捷开发

Agile Development - 敏捷(软件)开发是一系列方法和实践,使得解决方案在自组织、跨职能团队的协作中逐步浮现出来^1

敏捷组织(业务敏捷)

敏捷组织是一种以人为本的的组织形式,拥抱敏捷文化,无所谓采用特定框架,也无所谓叫不叫敏捷这个名字,组织中的团队都会在敏捷思维与价值观的驱动下交付客户价值。这类组织会基于员工的反馈,持续地调整他们的工作方式。他们崇尚“响应变化高于遵循计划”,以迭代和增量的方式频密地向客户交付价值。^3

敏捷和Scrum不仅仅限于开发者,也可以扩展到市场、财务、人力等部门。

误区:许多业务领导以为敏捷是一个即插即用的管理系统或者神奇的大型软件,可以立即治愈大多数功能失调的部门–这其实是幻觉

敏捷实践及名词的集合家谱

各条线代表了不同敏捷流派或“部落”中的实践集

不只限于Scrum、极限编程XP或特性驱动开发(FDD)等,也不限于结对编程、测试驱动开发、站会、计划会和迭代时间盒,而是一把遵循了敏捷宣言和原则的大树,支撑着上述方法论和实践共同的价值观理念。

极限编程 Scrum 设计
团队 产品管理创新 测试
精益 DevOps 基础

Scrum和Sprint名词的历史和误区

Rugby(英式橄榄球)运动是1845年开始的。Scrum方法创始人们是读了1986年HBR论文《The New New Product Development Game》而受到了Rugby运动的启发,并在1995年发布论文,正式提出Scrum方法。论文链接见:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.86.4164http://jeffsutherland.com/oopsla/schwapub.pdf

Scrum是Agile敏捷开发方法的一个流派,Sprint一词(英文原意是Rugby运动中的短距离冲刺)是1995年Scrum一词(英文原意是Rugby运动中的争球)创立者为了区别于其他增量迭代式开发(IID)方法(例如 XP极限编程方法),而从Rugby运动借来的比喻,意为一个短的时间盒,期望每个时间盒末尾能有潜在可交付的产品增量以供反馈和调整。

如今敏捷行业,Iteration和Sprint几乎混在一起使用了,甚至包括一些新兴的精益产品创新方法如谷歌的Design Sprint一词也效仿设计了5天的固定时间盒。

Read More

UCAC敏捷教练静修-4月杭州-静待花开

什么是VUCA时代,这个时代对个人有什么影响?如果是往年,还真要费一番口舌去解释,然而现在,我们刚刚过完2018,没什么能比这个年份更好的解释VUCA了。
2018 年,一些大公司干着干着突然遇到危机了,多少被公认有前途的行业,干着干着突然就遇到了拐点。有多少人设,轰然坍塌,年初的豪言壮语,到年底只剩下一地鸡毛。

如果你用吃瓜群众的心态旁观2018, 那么它无疑是一个观赏性十足的年份。一年之内,你就能见证无数起“眼看他起朱楼,眼看他宴宾客,眼看他楼塌了”。然而每一个轰塌的背后,都有无数人失去工作,辗转求职,陷入应付生活成本的焦虑中。前一天还在吃别人的瓜,今天就轮到自己成为吃瓜事件的主角。

所有那些曾经看起来坚固牢靠的东西,现在都想打一个问号,罗振宇说,「这个世界还会好吗?」

这就是VUCA时代,一个充满变数的,模糊的,复杂的时代。

Read More

一线外包公司老板告诉你如何与甲方签署敏捷外包合同


作者:王洪亮

近几年,随着社会化分工的趋势,许多领域的客户都考虑到软件外包服务,在开发新的项目中,会涉及到一些系统,设备和业务领域等进行开发,如果全部自己开展起来,承担着技术积累风险和短时间开发的风险。出于时间和成本的考虑,客户会考虑到软件外包。
与此同时,随着敏捷传入中国并发展了十五年以上,敏捷产品研发的观念逐步替代了传统的项目管理,也带来了新旧观念的现实碰撞。近期很多客户跟我们探讨过软件外包项目合同如何签署,而笔者除了在多家企业担任敏捷教练之外,也是在自己的企业中负责了多个外包服务项目,并以敏捷的理念与客户进行合作。所以这次我们根据如何在敏捷语境背景来行展开,谈谈如何签署敏捷的软件外包服务合同。

一 合同的形式

本次讨论的合同形式主要为固定价格合同和T&M合同。

Read More

title: SOA with REST: 用RESTful构建企业级SOA解决方案
date: 2015-03-06 13:29:55
tags:
- SOA
- RESTful
categories:
- programming
- architecture

这是一篇读书笔记,也是在翻译本书过程中,对重点的摘录。

本书不仅展示了REST是一种适合于构建面向服务解决方案的媒介,同时也展示了面向服务的架构模型是能够充分发挥商业潜力的REST风格的技术架构的坚实(通常也是必要的)基础。

  • 面向服务计算的目标是战略性的和面向业务的。
  • REST的目标是以技术为中心的,并且有助于实现战略目标和战术性业务目标。
  • 虽然并非所有的REST设计目标与每个面向服务计算的目标都有联系,但是大多数REST的设计目标都直接支持面向服务计算的目标。
  • REST与面向服务计算的目标之间没有冲突。

Read More

20131214 QClub天津站:Global Day of Coderetreat 活动纪实

Code Retreat,一个在没有工作压力下让人锻炼写Code技巧的活动,本次天津站在天津华苑站吶吧咖啡厅,由敏捷教练 – 申健带领大家进行。

当天到场参与的有将近20人,除了实践了结队编程(Pair Programming)以外,也尝试了TDD的作法,除了多数人使用的Java以外,也有使用C++的同好参与。虽然因为时间的因素没有进行难度太高的课目,但是每个人都扎扎实实的练习了一把,也都一致表示收获丰富,下次有一样的活动必定参加~~~^^

1.活动场地:吶吧咖啡厅,论场地、论气氛,还有美女程序媛n名,各方面天津场都完胜!!天津果然是过日子的地方啊~~~

Read More