三角形研发架构
背景
整个研发过程主要存在着三大元素:技术、业务、管理。只有三者皆硬,才能让整个研发硬起来,但不可能解决研发过程中的所有问题,只能让研发做得更好。
概述
三角形研发架构关注的就是研发过程中的三大元素,针对每个元素提出解决方案,并让每个方案之间紧密结合形成一个整体。结构图如下:
其中以“好的组织结构”为核心,在整个研发过程中,人永远是核心。其它两者都是工具,如果没有好的人员,即使有最好的工具也是白搭。工具只能是辅助,永远不能替代什么。
好的组织结构
什么样的组织结构才是一个好的组织结构,每个人心中都可能有自己的标准。但一个好的组织结构一定必须具备以下特点:
n 分工明确:这是工业化发展的标识之一,只有分工明确了,才能谈得上团队协作,发挥团队的力量。
n 有层次感:在一个好的组织结构中,一种要将人员形成几个层次,而且上一个层次必须比其下的层次有更多的回报(不仅仅是指薪资)。这样才能让层次高的人有成就感,让层次底的人有目标。
n 有激励机制:没缺乏激励机制的组织必然会是没有活力的肌体,久而久之,一定会腐烂。
n 容许犯错误:这里的犯错误,不是我们常说的那种错误,而是由于创新而出现的一些不可避免的问题。当然,对于一些低级的错误,聪明的员工是不会犯的了。一个不容许犯错误的组织必然会阻碍整个组织的创新;一个没有创新的组织也将走向死亡。
好的开发框架
开发框架是一个辅助开发的工具,它可以让我们研发过程中的主要活动――开发更简单、更有效。具体见《框架的意义》
优秀的软件工程实践
本实践包括项目管理实践和开发实践。已经有了好的组织结构、好的开发框架,怎样才能让两者发挥最大价值呢,这就是优秀的软件工程实践需要关注的。
开发实践
关于开发实践,我们可以通过对RUP、AM、XP所提倡的一些实践进行裁剪活得,裁剪的依据是这些实践一定要符合整个的组织文化和特点。
n 迭代开发
u 将整个系统按优先级分多次完成,而不是一次就准备把系统完成
n 坚持简单
u 够用即可
u 使用简单的工具
n 设计为主
u 让设计控制整个开发,在坚持简单的基础上,让设计能尽可能的为编码服务、为项目管理服务。
n 测试驱动开发
u 这是XP的实践
n 代码检查
n 持续集成
u 在整个开发过程时刻在集成而不是到开发的末期才进行每个模块的集成
项目管理实践
n 任务驱动:见《任务驱动管理实践》