1月9日,微信小程序上线,小编尝试用了几个小程序后,果断卸载了相应的APP,以缓解低配手机内存不足的压力。小程序这只轻盈的蝴蝶,能否掀起蝴蝶效应,各方纷纷猜测,将会发生什么,没人知道。 正如《双城记》里的那句名言,“这是最好的时代,也是最坏的时代”。
当变化莫测的风袭来,你是做风口上的猪,还是被拍在沙滩上,就看有没有适应变化的思维方式。
IT圈永远不缺高智商学霸,曾经的我们擅长用牛顿定律解真空环境下的动力学题目。然而放眼望去,我们身处的世界充斥着不确定性和复杂性。课本上学的机械论和控制论,已不足以解决现实世界的复杂问题。
“线性思维”只能解决真空环境下的简单确定性问题,而“系统思维” 才是适配真实世界复杂不确定性的良方。下面是两种思维的对比--
线性思维
关注孤立事件和表面现象
“因”产生“果”
本位主义,归罪于外
线性思维是基于二元论和确定性的,一种直线、单向的、单维的、缺乏变化的思维方式。
系统思维
看到事物之间的关联与相互作用
“因”“果”关系并非绝对而是环形互动
关照全局,优化整体
系统思维是基于复杂理论和不确定性的,一种动态的、辩证的、多维的、适应变化的思维方式。
线性思维的例子:
1. 在研发领域尝试微观管理
微观管理者想通过控制过程来控制结果,背后是线性思维和确定性思维。人是复杂的,开发活动是复杂的,市场环境是复杂的。 过去好用的方法不一定适用于现在; 在这个项目好用的不一定适用于其他项目;对你好用的不一定适用于别人。
软件开发充满复杂性和不确定性。微观管理者花费了大量的时间干涉过程,却耽误了思考战略目标等更重要的事情,不仅结果失控,员工也会因为失去控制感而纷纷选择离开。
2. KPI考核:
我们常说,考核什么就会得到什么。
▽ 考核代码行数,项目代码会长成酱紫:
if(m_Str2.Find("'")>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find(':')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('/')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('!')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
(此处省略120行代码…)
受此启发,小编接下来准备写两本书:
《让代码膨胀20倍不是梦!》
《21天精通KPI注水》
▽ 考核单元测试覆盖率,项目的测试代码会长成酱紫:
(引自张博超的分享《工程实践的陷阱》)
这样的case想fail都难啊!
没有Assert的单元测试都是耍流氓。
▽ 考核需求完成率, 贵司的画风就是酱紫:
不把业务和开发绑在一起一致面对客户交付价值,只关注交付范围,内耗满满,心累!
▽ 考核估算正确率,小编的表情就是酱紫:
最尴尬的是被问到怎么估算的”准“。 在过往12年的外企经历中,从没太把估算当回事,团队通过打计划扑克对解决方案达成一致,各角色充分沟通,识别出风险,保证团队按一定的节奏工作,估算的目的就达到了。
无论如何,估算就是个猜,“估算的准”本身就是悖论。而这个“准”的要求背后,是需求方和开发团队之间的不信任。这才是真正的问题!
解药:定义适应性指标,尝试OKR。不过OKR也是环境适配的,没有敏捷环境,OKR君也会水土不服哦~
系统思维的例子:
●当生产环境发现了缺陷,不是加派人手测试,也不是怪测试没测充分,而是强调内建质量,保证需求被正确理解,代码被正确构建。
●当需求方和开发团队对立,开发和测试有矛盾,不是彼此加更多规则去防范,而是看组织架构和考核机制是否合理。
●不仅是局部提高生产效率,而更需要利用精益设计理念去优化整体。
●不仅是团队敏捷,更需要强大的领导联盟和高层的支持参与,达到企业级敏捷。
※ 基于复杂理论和系统思考的互联网组织架构设计原则 ※
在自然界中,绝大多数都是复杂系统,例如免疫系统、胚胎、蚂蚁群、人脑,它们的共同特点是: 不存在中央控制,通过学习和进化产生适应性。基于最简单的规则,复杂系统能够创造出规则的规则,新的规则继续创造规则,循环往复,这样智能就产生了。
互联网本身是一种无中心化组织,一种网状的模型,没有决策中心,一切顺着态势发展而顺应做出决定,这大大加快了互联网每一个连接单元的反应速度。
互联网企业的组织架构,必须能够支撑快速反应、快速决策的特点。与自然界中复杂系统的规则一样,互联网组织架构设计也需要遵循以下两条原则:
1. 去中心化管理,扁平化组织结构
传统的职能型组织结构在互联网时代遭遇了挑战,外界环境变化太快,现场管理和临机决断的事宜太多,所以必须缩短决策半径,组织必须扁平化。越来越多的互联网公司的组织架构都采用了扁平化的结构,有的百人以上的企业,其组织架构只有两层 。
敏捷组织设计建议遵循以下三个方针:
●责权利平衡。不负经营责任的不拥有权力;负经营责任的能容易地获得相应支持。 (引自陈春花《管理的常识》) 在你的组织里,有没有不负经营责任的职能部门拥有权力,而直接创造业务价值的部门无法获得(如HR,财务等)相应的支持呢?
●建立业务、开发、测试等多角色在一起的全功能团队。团队能独立作战,能端到端交付价值给最终用户,得到客户反馈,从而做出快速响应。
●通过虚拟社区,加速先进实践和专业知识传播,和职业路线的纵深发展。
2. 设定简单的规则
●以价值为导向。共创愿景。明确价值定位,强化价值创造,建立包容失败的氛围和鼓励创新的机制,建立适者生存自然进化的创新生态系统。
●任务驱动式的协作方式。 有重大任务时,根据需要,某几个工作小组可以随时重组为一个全新的大项目工作组,任务结束后再解散回归原编制。团队成员之间的分工模糊化。多角色进行协作,单点负责,迅速决策。需要组合时,立即自由联合,任务完成后,自动解散。传统的层级管理和复杂的流程控制无法满足快速响应的要求。
敏捷本来就是基于复杂理论,不确定性来设计的, 它强调按照自适应、自组织、自学习与动态进化的原则来设计网状结构组织和系统(即网络组织),通过系统思维、网络学习、共享知识、协同作用,使企业在创造未来中实现可持续发展。这是由商业生态系统内在的本质特性所决定的。(本资讯于2017-01-19首次发布)