作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配
置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。评
估项目整体和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需
要大量的经验积累,换言之,这是一种不断总结的累计才能达到的境界。在西方一些软件
系统设计的带头人都是很年长的,比如
4,50 岁,甚至更老,他们在编码方面已经远远不
如年轻人那样活络,但是就项目评估而言,他们几十年的经验积累就是最重要和宝贵的财
富。中国缺这么一代程序员,主要还不是缺那种年纪的程序员,而是那种年纪的程序员基
本上都是研究单位作出来的,都不是从专业的产品化软件研发作出来的,他们没有能积累
那种产品化研发的经验,这也是没有办法的事情。
第五,团队组织管理能力
完成一个项目工程,需要团队的齐心协力,作为项目设计者或研发的主管人,就应当有能
力最大化发挥团队的整体力量,技术管理由于其专业性质,不大同于一般的人事管理,因
为这里面设计了一些技术性的指标和因素。
首先是工作的量化,没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码
行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。
其次是对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主
程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的
需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥
组队的效率。一个代码水平高的人,未必能成为一个合格的项目研发主管,这方面的能力
欠缺往往是容易被忽视的。
综上可以看到,作为一个主管研发的负责人,一个项目设计者,所需要具备的素质和能力
并不是程序代码编写的能力,当然一般情况下,一个程序员通过不断的总结提高达到了这
种素质的时候,他所具有的代码编写能力也已经相当不简单了,但是请注意这里面的因果
关系,一个高水平的项目设计者通常已经是代码编写相当优秀的人了,但是并不是一个代
码相当优秀的程序员就可以胜任项目设计的工作,这里面存在的也不是智商和课本的问题,
还是在于一个程序员在积累经验,逐步提升的时候没有意识到应当思考哪方面的东西,没
有有意识的就项目的组织和复用设计进行揣摩,没有经常性的文档习惯和总结习惯,不改
变这些,我们的合格的项目设计者还是非常欠缺。