高质高效软件开发组织能力模型

转载 2015年11月19日 05:09:09
  1. 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。
  2. http://blog.csdn.net/hzliyun/article/details/7078896

背景
至今,我在Motorola网络部工作超过了5年,所在的产品线也是采用统一软件开发过程和敏捷思想(但不是SCRUM)来组织软件开发活动的,但这5年多的工作经历从未引起我象微博上对于SCRUM话题的激烈讨论这样的思考。原因之一可能是,公司的流程已经很成熟了且形成了一种文化,不论怎样的新人进入公司,都只需按照流程按步就班的工作就行了。另外,公司的开发流程并不包含象SCRUM所要求的形式化内容,使得我在工作中没有机会体会和思考各种行为的利与弊。
 
与周围的同事相比,我自认为自己的工作质量和效率都很突出,这归功于我所掌握的知识、工具、方法和形成的思想。这四大块内容也是将要出版的《专业嵌入式软件开发 — 全面走向高质高效编程》一书的骨架。然而,最近微博上对于SCRUM的讨论使我意识到,我的焦点更多地放在了工程师身上,而忽视了从组织的角度思考如何高质高效地从事软件开发工作。即使这样,我仍持这样一种观点:不论是怎样的开发方法,一定要最终从基层工程师身上找到着力点,因为软件产品的最终质量是他们“码”出来的。一个方法论是否真的有效,得看方法论能多大程度地帮助工程师高效地开发出高质代码,且该方法论被工程师所接受。注意,是“帮助”他们而不是“规范”他们。
 
对于SCRUM我还是一个门外汉(注:Motorola网络部被NSN收购后也要求使用SCRUM,希望到时能写些文章与大家分享所得与体会),但这并不妨碍我思考从事高质高效软件开发我们到底需要什么。
SCRUM是银弹吗?绝对不是,因为她只是一个很粗的开发流程框架,仍无法消除开发活动中的人为因素(但可以减缓)。如果SCRUM不是银弹,那将SCRUM引入到团队中时我们应如何本地化呢?
 
模型
纵观软件行业开发方法论的发展,大多关注于开发过程。这一点从瀑布模型、统一软件开发过程、CMMI和现在的敏捷软件开发方法无一例外。开发工程化的思想深深地影响着软件行业对开发方法论的探讨,但业内也以意识到了软件开发不只是工程,它更包含个体心理、行为等难以工程化的内容。在这里,我想抛砖引玉地提出自己的一个能力模型,来帮助思考我们到底需要什么、走向哪。该模型存在抽象与具体两大层次。让我们先从抽象模型开始,如图1所示。 
图1
 
从面象对象的角度来看,抽象模型是基类,而具体模型则是其派生类。高质高效的软件开发工作需要涉及多个部门的各种岗位,各岗位的能力模型应在抽象模型的基础上进行具体化。为了便于理解,图2所示了我所认为的软件开发部门的能力模型。

图2
意义
引入这一能力模型的意义在于:
    1) 让我始终牢记实现高质高效的软件开发是所有活动的根本目的。
    2) 帮助我们在探索软件开发方法论的道路上时刻关注我们需要什么,并以此了解软件开发方法论解决了什么问题,哪些问题又是开发方法论不能解决的。
    3)为人力资源管理提供一定的框架。引导组织思考:我们需要招聘什么样的人?人员培养的着力点是什么?

结束语
这个模型是我花了不到一天的时间想出来的,所以一定很粗糙。个人认为,这个模型不应只是一种文字游戏的玩法,更应包含一定的实证研究。比如,模型中的关键要素又是什么?各要素的比重是多少?但无论如何,我希望这样的模型不会让我们在诸如SCRUM这样的探讨中迷失软件开发活动的本原,这是我写这篇文章的根本出发点。
 
最后,欢迎读者提出自己的见解和参与讨论。我的微博是@杭州李云(新浪)或@杭州李云(51CTO)。
 
Q&A
1. 软件设计是质量之本,为什么在软件开发工程师模型中没有体现?
答:设计能力应体现在工程师的抽象与概括能力上,这两者在模型中已涵盖。

2. 在软件开发工程师模型中为什么没有体现建模的重要性?

答:建模应是软件架构师的工作内容。建模在模型中可分解为“抽象 + 概括 + 工具”,它其实是设计的一种表达形式。 


(文章出处:http://blog.csdn.net/hzliyun/article/details/7078896

论高效、高质量软件开发

Normal 0 7.8 磅 0 2 false false false Microsof...
  • xu_zh_h
  • xu_zh_h
  • 2010年03月30日 17:42
  • 781

高质高效软件开发组织能力模型

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7078...
  • hzliyun
  • hzliyun
  • 2011年12月16日 22:21
  • 2779

如何评估个人的软件开发能力

如何评估个人的软件开发能力从基本的来看 基础:  1. 读程序的能力      很多的软件开发工作不一定会从头开始,这就需要开发人员有良好的阅读程序的能力,能在尽可能短的时间里了解软件整体的架构...
  • paolei
  • paolei
  • 2013年08月22日 14:31
  • 5979

高质高效软件开发能力模型

纵观软件行业开发方法论的发展,大多关注于开发过程。这一点从瀑布模型、统一软件开发过程、CMMI和现在的敏捷软件开发方法无一例外。开发工程化的思想深深地影响着软件行业对开发方法论的探讨,但业内也以意识到...
  • skydxd
  • skydxd
  • 2011年08月16日 23:17
  • 306

[商业] 麦肯锡领导力模型

麦肯锡领导力原则领导组织 重塑公司文化 讲述变革故事 业绩管理与对话​ 领导自已 发现意义:发现工作生活的动力源泉 调整视角:化被动为主动,化消极为积极 建立关系:在组织中建立有效的支撑网络 管理能量...
  • liweijie231
  • liweijie231
  • 2017年08月27日 15:50
  • 189

如何营造高效软件开发团队

  中国人智商不够?那绝对是错的。  中国人不够勤奋?那也绝对是错的。  科技不如其它国家发达?通讯如此发达的现代,那不是理由。  中国人做软件的少?那更加不是理由。为什么呢?中国缺少高效的软件开发团...
  • wanglvhua
  • wanglvhua
  • 2005年07月04日 11:52
  • 1074

打造高效的软件开发团队

打造高效的软件开发团队       喜欢足球的朋友应该非常清楚一件事情,那就是在一场足球赛中假如球员之间缺少默契的配合或教练的指导思想执行不到位等情况下,那场比赛多半是以失败告终的,因为这支球队并不是...
  • xfuboywz
  • xfuboywz
  • 2006年04月15日 20:22
  • 674

高效高质代码的编写

本人结合项目的实施开发编写代码情况,对多年以来带领项目实施奋战在开发一线经验的提炼与概括。这18条开发指导原则,最基本的思想是“高效,高质量地写出满足业务功能目标的代码。”每人可以结合当前项目的实际情...
  • mpzsw
  • mpzsw
  • 2011年03月20日 21:40
  • 613

软件开发生命周期模型

编码-修补模型    当一个软件产品在没有规格说明或主要设计的情况下被开发时,开发者往往不得不重新对产品编码多次直到他们得到正确稳定的产品。这种开发模型就是编码-修补模型。    开发者们首先开发出一...
  • andyelvis
  • andyelvis
  • 2007年08月19日 22:36
  • 3419

一个高效成熟的软件开发流程和团队

下面是开发管理最规范一家软件公司的开发流程,该公司总部位于美国硅谷,其开发的产品曾获得PC Magazine的最高五星级的优秀好评。供大家参考。1. 项目计划在一个产品发布并使用之后,其中肯定有许多地...
  • haoxinqingtea
  • haoxinqingtea
  • 2007年10月12日 18:31
  • 318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高质高效软件开发组织能力模型
举报原因:
原因补充:

(最多只允许输入30个字)