听得见炮声的软件开发

zz/2024/2/25 22:31:03

 2009年是不平凡的一年,金融海啸肆虐不可避免地冲击着软件行业。面对经济危机下的挑战,以往的高额利润在缩水,以往的大手大脚的花费在缩减,以往的高薪激励在降低。在目前这种情况下,我们更加需要打造高效软件开发的团队,以便在经济危机里度过艰难的日子,取得以往的战果,开拓新的市场。

我们开发软件最基本的目标,就是最大化地满足用户的需求。一切都是以用户为中心,一切都围绕着用户提高生产力而努力。就像GOOGLE公司一样的,任何用户提出的需求,都是可以接受,任何对用户有用的需求都是努力去满足的。在我们软件行业里,需求的来源一般有三种情况:一是来自用户;一是来自竞争对手;一是来自上级领导。在这三种的软件需求里,我们都会最大化地满足,但是时间是非常有限的,因此一定要有一个为中心,那么肯定就是以用户为中心,以用户的需求为最高优先级的需求。接着就是竞争对象的需求,最后才是上级领导的需求。

从华为任正非的讲话《要让听得见炮声的人来决策》来看,也是把用户的需求作为最高指令的,华为也是“从以技术为中心,向以客户为中心的转移过程中”。有一段讲话如下:

谁来呼唤炮火,应该让听得见炮声的人来决策。而现在我们恰好是反过来的。机关不了解前线,但拥有太多的权力与资源,为了控制运营的风险,自然而然的设置了许多流程控制点,而且不愿意授权。过多的流程控制点,会降低运行效率,增加运作成本,滋生了官僚主义及教条主义。当然,因内控需要而设置合理的流程控制点是必须的。去年公司提出将指挥所(执行及部分决策)放到听得到炮响的地方去,已经有了变化,计划预算开始以地区部、产品线为基础,已经迈出可喜的一步,但还不够。北非地区部给我们提供了一条思路,就是把决策权根据授权规则授给一线团队,后方起保障作用。这样我们的流程优化的方法就和过去不同了,流程梳理和优化要倒过来做,就是以需求确定目的,以目的驱使保证,一切为前线着想,就会共同努力地控制有效流程点的设置。从而精简不必要的流程,精简不必要的人员,提高运行效率,为生存下去打好基础。

  用一个形象的术语来描述,我们过去的组织和运作机制是“推”的机制,现在我们要将其逐步转换到“拉”的机制上去,或者说,是“推”、“拉”结合、以“拉”为主的机制。推的时候,是中央权威的强大发动机在推,一些无用的流程,不出功的岗位,是看不清的。拉的时候,看到那一根绳子不受力,就将它剪去,连在这根绳子上的部门及人员,一并减去,组织效率就会有较大的提高。我们进一步的改革,就是前端组织的技能要变成全能的,但并非意味着组织要去设各种功能的部门。基层作战单元在授权范围内,有权力直接呼唤炮火(指在项目管理上,依据IBM的顾问提供的条款、签约、价格三个授权文件,以毛利及现金流进行授权,在授权范围内直接指挥炮火,超越授权要按程序审批),当然炮火也是有成本的,谁呼唤了炮火,谁就要承担呼唤的责任和炮火的成本。后方变成系统支持力量,必须及时、有效地提供支持与服务,以及分析监控。公司机关不要轻言总部,机关不代表总部,更不代表公司,机关是后方,必须对前方支持与服务,不能颐气颇指。

面对众多用户的需求,我们需要打造第一支非常强大的团队,用来应对用户的软件需求,把所有用户的需求变成清晰文档,变成可理解、可执行、可测试的文档。

听得见炮声了,那就需地炮火支持。作为软件开发过程,就是不断地制造出更好的子弹,当然造出原子弹是最好的,但是那是需要机遇和时间的。一般软件开发的过程,就是不断地改进,不断试验。

系统架构师就需要把需求组的文档进行分析,把需求难度分级,把软件需求开发顺序制定,同进制订N个里程碑,每个里程碑有目标和时间限制。这样项目就基本制定好了,接着下来就需要把每个里程碑的任务分配到每周能完成的任务,一定要分配到每周可以完成的任务,如果一周不能完成的任务,就再细分。这样才便于考核和完成情况跟踪,还有利于控制任务的进度,以便调整不能完成的任务。

在每个开发任务里,都不能超过三个人一个团队。越小的团队,就越高效,就越能减少沟通成本,又可以相互讨论问题。如果人员过少,不利于交流,不利于相互竞争中前进,也就是缺少“鲶鱼效应”。鲶鱼效应来源于这样一个故事:挪威人爱吃沙丁鱼,不少渔民都以捕捞沙丁鱼为生。由于沙丁鱼只有活鱼才鲜嫩可口,所以渔民出海捞到的沙丁鱼,如果抵港时仍活着,卖价要比死鱼高出许多倍。一次偶然的机会,一个渔民误将一条鲶鱼掉进了装沙丁鱼的鱼舱里。当他回到岸边打开船舱时,惊奇的发现以前会死很多的沙丁鱼竟然都活蹦乱跳地活着。原来鲶鱼进入鱼舱后,四处游动,到处挑起摩擦。而沙丁鱼则因发现异已分子而自然紧张,四处逃窜,把整舱鱼扰得上下浮动,也使水面不断波动,从而氧气充分,这就保证了沙丁鱼被活着运到港口。

有了高效而小的开发团队,就需要不断地把需求变成产品,把产品不断完善,提供给用户使用。软件产品开发出来后,怎么样确保软件产品的质量呢?这是需要测试团队来确保软件的功能与需求是一致的。因此打造第三支团队,就是软件测试团队。测试团队需要两个开发人员就需一个测试人员的比例来保证测试的强度。把软件产品尽可能早地测试,开发组每开发一个模块都需要有可测试性,这样才可以提交给测试组测试。因此测试组的人员从软件编码开始,就需要了解需求,编写测试用例。测试组人员把测试所有BUG都填写到BUG的管理系统里,这样就可以不断提高产品的质量,不断地提高用户的满意度。

开发人员和测试人员应当永远记住杰克·韦尔奇的忠告:你要变成质量问题的疯子,否则质量问题将把你变成疯子。毒奶粉事件后,不仅国内奶企经历了滑铁卢,国内食品行业同样陷入“质量门”,这一影响甚至波及的不仅是食品行业,还让中国制造在国内外经受了巨大负面影响。所以软件行业的质量同样至关重要,不要把自己的软件产品变成“毒奶粉”。田文华作为企业家,成功于企业,也失败于企业,她的人生荣辱与企业息息相关,更进一步说,无论是作为企业还是个人,最终的荣辱都于只有一个原因——产品质量。可见,“产品质量是企业的生命线”这句平常的话不仅是口号,更是一种实践检验过的真知。如果企业和企业家不将产品质量当成生命,那么,质量问题就会将企业和企业送上绝路。田文华之走上被告席,三鹿集团之走向破产程序,都无不昭示着这一平凡真理的价值。那么,田文华当下的命运首先应当成为企业和企业家的一面镜子,她不仅应当成为牛根生们的一面镜子,还应当成为国内所有企业和企业家们的一面镜子,在这面镜子里清清楚楚地写着:企业和企业家要健康成长,一定要重视产品质量,质量问题开不得半点玩笑,产品质量就是企业和企业家的命运。软件企业的产品质量也是企业的生命线。

 

转载于:https://www.cnblogs.com/ajuanabc/archive/2009/03/27/2463827.html


http://www.ngui.cc/zz/1918325.html

相关文章

面向对象软件开发的敏捷过程

软件开发的复杂性 : 计算机硬件界的摩尔定律(每隔 18 个月计算机硬件的运算速度提高一倍,价格下降一半)适用于硬件的发展规律已经超过三十年了。人们想当然的认为计算机软件的发展速度和硬件的发展速度相当, 但是不幸的…

全能型老牌厂商有“大着数”?占便宜得趁热乎

编者按:二十年间始终专注做私有化部署的低代码开发老牌厂商-天翎MyApps低代码平台,最近重磅推出了终身免费的产品版本,引起业内一篇哗然。这厂商是脑袋被门挤了?这波操作是不想赚钱回家过年了吗?此文小编给大家好好扒拉…

软件项目工作流程图

假设团队非常小,需求经理的角色由项目经理担当,測试经理的角色有开发经理担当 假设一个人非常全能,全部角色一个人担当 但无论几个人,软件开发的流程当中角色所要做的工作不能少

SNF软件开发机器人产品白皮书

软件开发机器人 产品白皮书 使用说明书 模块名称:软件开发机器人 模块编号:12 项目负责人:王金斗 所属部门:技术中心 文档编制: 编制日期:2018-02-02 文档审核:王金斗 审核日期&#xff…

机器学习将如何影响软件开发

机器学习进行软件开发 更好的软件 现代软件系统会发出大量“机器数据”(日志,度量标准等),这些信息对于识别和理解不良行为至关重要,但是这些数据的数量和复杂性超过了人类进行所需分析和采取措施的能力。及时采取行动…

Qt Plugin插件开发指南(1)- 一般开发流程

版本记录表 文章目录概述Qt插件简介Qt插件开发的流程Qt插件调用的流程插件的开发设计接口文件配置工程文件实现接口的类插件的调用特别说明绑定信号与槽发射自定类型变量注册回调函数概述 Qt插件简介 插件是一种遵循一定规范的应用程序接口编写出来的程序,定位于开…

人工智能+软件测试 编程程Python自动化全能型人才打造

人工智能近几年来飞速发展,而且所到之处,均有些杀伤力,那么你觉得未来不懂人工智能的测试员会被淘汰吗? 近年来科技飞速迭代,从云计算、大数据再到人工智能、区块链,紧跟潮流、选对方向才能成为新时代的弄潮儿。各个…

系统上线后是运维流程还是开发过程?

一位朋友提到这样的问题: 软件系统上线后是运维流程还是开发过程,需求变更量较大的情况。俺的简单建议: 这个不是二选一的问题,系统上线后,其实维护和开发的工作都会有。你提到“需求变更量较大的情况”,那…

IT软件开发小白进阶路线

前提:本文是结合大牛自己补充的技术路线,仅供参考。 一、技术路线介绍 本节只介绍纯IT领域的技术路线,而对于更高级的技术(例如计算机视觉、机器学习、人工智能等等)不予考虑。 技术路线是一条通往该行业的道路&#x…

整个项目流程中测试团队究竟该做哪些事情和承担了一个怎样的角色?

文章目录前言项目整个阶段一些规范说明前言 当前 IT 公司一般拥有四大角色 产品(业务)开发(Web,App)测试(测开,自动化,手工)运维 大型的 IT 企业拥有着强大 QA 团队和…