软件开发管理:质量、进度、成本、目标坚决不能流于形式
很多西安软件业内朋友都问到如何培养软件开发人员、培训软件开发人员、提高软件开发人员技术。我过去所在的公司是每个周五都不定期召开技术培训会。但是慢慢的也流于形式了。我个人感觉,技术培训会是个好事,但最终达到的效果可能是加强了团队的凝聚力和和谐力,有利于团队建设,但是技术提高,并没有给开发人员在实际工作中有应用。因为大家听了也就听了,会一散实际工作中仍然照旧自己的思维习惯,很难落实下来。这个是讲软件公司软件开发过程管理的系列,目标人群是那些身处软件开发管理位置或想成为软件开发管理的人。所以我不希望这个系列中出现代码,也不希望出现和某种技术密切相关的代码技巧。
但是没有办法,软件开发过程管理,有个很重要的一环,就是软件代码编写。不编写代码,说的天花乱坠,管理做的再扭,也成为不了软件。
没有详细设计说明书,所以你看不到一个形象的东西,而咱们现在至少有PPT画的业务界面,也有输入要求说明,也有数据增删改查说明,也有业务描述说明。而且数据库,一个中大型应用,性能、稳定性、可扩展性,都在于数据库的设计和中间件的设计,如果每一个程序员都要从数据库设计到中间件组件开发到前端客户端开发,那么要想保证这个软件的统一整体质量,那有多难。每个程序员需要懂得多少的技术知识才能达到统一的质量要求。所以,让不同技术高度的人做不同难度的事情,把重要的事情掌握在高素质的人的手中,这样质量就不会跑偏到哪里去。企业管理软件,不外乎是数据的增删改查。数据库的视图和存储过程,已经屏蔽了复杂的表之间的关系,提供了统一的业务实体视图和业务实体的增删改操作。这样中间件组件就容易处理业务实体间的流程,到了客户端,就只剩下数据的输入和输出了,真正成了终端。
我还经常进行代码复查工作。发现有人的代码出现坏迹象,我就让他整改重构自己的代码。否则,定了规范,光喊口号让大家遵守规范又不检查又不惩罚,谁爱遵守规范?
在代码复查的时候,我经常能发现思路局限、想法绕弯、实现缺乏扩展性可变性、缺乏优化、判断有遗漏有风险的代码。我都一一给他们指出,并且告诉更好的方法应该是如何如何。
通过代码复查,这就是真真实实的代码,这就是大家最实在的工作成果和天天接触的东西,很有真实性,不脱离,有针对性。通过这种方法,达到了大家对自己日常写代码的技术技能的提高。这就是我对程序员的培训方法。
管理是什么?有西安软件业内朋友老跟我讨论企业管理、企业文化、盈利模式、执行力、忠诚度。我不是很喜欢这些空洞抽象的主题,讨论完了也无法解决实际细节问题。而企业的运作,恰恰在于每一步的成功,最终汇合成最终目标的实现,没有脚下的每一步前进,再好的设想也是空想。
管理,就在细节当中。代码高手,也在于细节当中。质量、进度、成本、目标、折中,这就是核心。写代码,做管理,道理一样。