惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Martin Fowler
Martin Fowler
Last Week in AI
Last Week in AI
罗磊的独立博客
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园_首页
人人都是产品经理
人人都是产品经理
量子位
美团技术团队
The Cloudflare Blog
小众软件
小众软件
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
博客园 - Franky

博客园 - 南郭先生kaka

待处理数据的两种模型 nginx重启无法找到PId的解决办法 Wiki版产品需求---产品需求文档到底是谁的?产品到底是谁的? 为什么说private方法是有罪的 XML2JSON 的【net.sf.json.JSONException: nu.xom.ParsingException must be followed by either attribute specifications, ">" or "/>"】问题解决办法 继承的第一原则 致那些不甘寂寞的人 上传File时,浏览器总是添加<pre>的解决办法 使用XSLT转换XML2XML Java 模拟 Http Post WITH AS SQL语句的用法 【Code Style】多余判断 java.lang.NoClassDefFoundError错误 Spring 中Quartz配置数据库化 FactoryBean在XML中的依赖注入方法 Camel FTP中文目录解决办法 配置CentOS6.3 NFS Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier) 重读《目标》---序
重读《目标》---目标
南郭先生kaka · 2012-11-20 · via 博客园 - 南郭先生kaka

          我们进行软件研发的目标是什么?书中关于目标的思考也引发了我很多的思考,是的,我们研发的目标是什么?更快的研发效率?更高的质量?更炫的功能?更多的功能?更好的能力提升?公司养活了这么多的研发人员,目标就这上面的这些吗?那么我们的目标是什么呢?

           我能得到的答案就是赚钱,利润,不管用什么去表达,最终公司的目标都离不开这一点,没有资金的公司最终是无法存活下去的,不管是伟大的苹果还是谷歌,利润考核永远都无法逃脱得掉。《目标》这本书给出了三个衡量指标:有效产出(throughput)、存货(inventory)和营运费用(operational expense)。

          有效产出:整个系统透过销售而获得金钱的速度。存货:是整个系统投资在采购上的金钱,而采购的是我们打算卖出去的东西。营运费用:是系统为了把存货转为有效产出而花的钱。

           有效产出是通过销售而获得金钱的速度,那么换成我们的软件产品而言,也就是产品的畅销程度,交付速度等。对于我们而言就需要快速的研发出市场所需要的产品,并且可以快速交付拿回费用。一切的目标都是要提高有效产出,那么阻碍有效产出的,或者与有效产出无关的,实际上都是需要调整的。如果按照这个定义的话很多都可以定义为无效产出,比如客户不需要的功能、不需要的产品、错过最佳销售期的产品、交付复杂等等,当然制造件和软件还是有些区别,那就是每个制造件都是需要时间和成本,但是软件一旦制造出来,剩下的成本就基本为零了。但是软件需要更新版本,所以每个软件的版本都是可以看成一个制造件,如果这样对比的话,两者还是有很多的共通之处。

           存货是整个系统投资在采购上的金钱,换成软件研发而言,需求过程,研发过程,测试过程,上市等等过程都是存货,存货的成本越高,利润就会越薄,如何减少存货就是一个关键的指标。各种周期的缩短,减少在制品的数量,让产品更快的销售出去都是要考虑的内容。另外减少存货的另一种办法就是不生成存货,也就是不需要的存货要减少,不需要的功能,不需要的产品,逐渐淘汰的产品等等也都是需要考虑的范围。

           营运费用是系统为了把存货转为有效产出而花的钱,转换到我们软件研发上而言实施,营销,售前,广告等等一系列的动作,这些都是成本所在的地方,当然这部分都需要进行思考如何更加有效和合理。

           提到上面三点指标的同时,也提到了另外的一个概念“局部效益”,要放眼于整体架构和组织,而不能只考虑局部的效益,这点我认为也是上面三点所贯穿的点睛之笔,或者上面三点的融会贯通的切入点。如果不处于整体架构的考虑的话,局部效益会导致整体效益的下降。例如研发部门考虑工作效率而言,只注重发版产品数量,而不考虑是否符合市场要求,造成的结果就是大量无法销售的产品。规划部门只考虑规划指标,那么会制造出大量的需求规划,研发因为能力问题而未能实现,被束之高阁。这些都是成本上的浪费,如果把这些成本转化为其他的有效产出将会产生更大的利益。研发人员把空余出的时间去支持项目交付,规划部门的空余时间支持售前都将产生不同的效果。

           从敏捷的角度而言,有效产出减少存货也是敏捷的核心思想,每次只去研发最紧急重要的功能,随时可以交付。另外DevOps也是敏捷倡导的思想,开发(软件工程)、技术运营和质量保障(QA)一体化进行解决,而不是单独部门考量。