购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP


感悟15
实践出真知
——项目开发经验谈

谈起项目开发经验,许多程序员经过几年的实际开发工作都会有所感悟,有的人夸夸至谈项目有多么大、多么重要、都使用了什么高新技术;也有人会谈一些失败和教训,甚至包括埋怨与自责,但我想在大多数程序员内心深处没有表露出的感悟更多的应该是项目开发中经历的痛苦与折磨,穿透这“痛苦与折磨”我们可以品味到那份沉甸甸的成就感和自我价值的实现,但无论成功与失败、高兴与沮丧,经验都是宝贵的,所以我们都要深刻领会。

项目开发经验谈是个比较大的话题,仁者见仁智者见智,内容十分丰富,笔者在这里总结了自己多年的管理软件开发经验及在培训学习中获得的前辈经验,具体有下面论述的几点。

❏ 了解行业背景的必要性,在系统调研之前,项目负责人和需求调研分析人员适当了解行业背景是非常必要的,如果你是这方面的行业专家,那就最好不过了,这非常有利于系统调研计划的制定。

❏ 制定系统调研计划,在做系统调研之前,最好写一份系统调研计划,调研计划编制的水平,取决于项目负责人对被调研行业专业知识的了解程度和项目经验,系统调研计划的内容至少包含以下3个方面:

➢ 系统调研目的,简要概述本次调研的必要性。

➢ 准备调研内容,根据项目负责人对专业知识的了解情况及以往的项目经验列出若干条。

➢ 系统调研对象,相关管理人员和系统的使用人员。

❏ 系统调研要细致,系统调研直接影响需求分析报告的制定,非常重要,系统调研越细致越好,不要怕用户需求多,而且还要善于用启发的方式与用户探讨隐含的或潜在的需求,甚至能够挖掘超出用户期望的令人兴奋的需求最好,当然这需要调研人员尽快完整地熟悉相关业务。几乎没有一个项目能够一次性把需求提完整,都是多次不断地增加、修改,反复研究,所以要求每次调研尽量细致,这样可以减少调研的次数,同时也能够减少需求分析报告和软件架构的修改。

❏ 尽量与业务负责人沟通,在与用户进行业务沟通时,尽量与业务负责人沟通,不要随便找人就问,因为业务负责人考虑问题相对全面,会考虑问题的得与失,而基层的人员往往考虑自己的方便,忽略了全局,这一点切忌。

❏ 重视高层管理者的必要性,在项目开发过程中,有时会遇到违背设计方案的特殊需求,这些需求的加入会严重影响工期,甚至是推翻原有的方案,仅是基层人员的一时之需,并且还可以通过其他变通的方法来解决,但有时基层人员很难说服,这时我们可以向上级主管人员反应情况,说清事实,一般情况下上层主管人员都会通盘考虑问题,给项目组一个比较满意的答复,而且有时管理层级别越高,问题越容易解决。

❏ 合理控制需求变动,项目中最麻烦的就是需求变动,用户想问题几乎不会按照软件设计框架去想问题,甚至有些变动是翻来覆去的,频繁的变动让项目的原有设计框架变得越来越难以支撑,让项目组成员身心具疲,这时一定要保持良好的心态,然后去寻找解决办法,笔者在项目中总结出以下几种经验供参考:

➢ 考虑用变通的方法解决,有些问题直接解决确实非常困难,而用一种变通的方法往往可以很容易解决,并且能够得到用户的认可,这会节省许多时间和人力,不过这一点要求项目负责人具有较强的说服力和说服技巧。

➢ 登记用户提出的问题,并让相关负责人签字确认,这一点很麻烦,但是效果很好,可以有效地防止用户反复修改同一个问题,而且能够让用户在下一次提问题时更加认真考虑。

➢ 提前多考虑意外情况,从需求的角度考虑,用户永远没有错,所以在系统调研、需求分析、软件架构设计中要提前多考虑意外情况,让软件系统能够最大限度地应对各种需求变动。

➢ 必要的需求变动不要回避,对于用户的需求变动一定要仔细慎重考虑,不要轻易下结论。如果用户的需求影响到将来业务的拓展或涉及报表数据等情况时,就必须改动。有时项目组自己也能发现一些业务需求漏洞,对于这些漏洞笔者建议主动提出来与用户进行探讨,不要“隐藏”起来,因为必要的东西,迟早有一天会爆发出来,到时再修改,可能难度更大。

❏ 主动学习业务的必要性,对于这一点许多程序员都有过反感情绪,有人认为做程序员是来编写程序的,而不是来学习行业专业知识的,也有人认为是浪费时间,还不如省出时间来编写程序等许多其他的想法,针对这些想法,笔者从以下几方面来论述:

➢ 管理软件需要蕴含丰富的管理思想,因为用户要使用软件来辅助人管理企业和提高办公效率,可以形象地说,管理软件是有管理思想、有主动管理意识的,一套成功的管理系统是由50%的业务加上50%的程序开发组成的,若整个项目组都不懂业务,那么项目的研发简直无法想象。

➢ 熟悉业务,有利于开发程序,这点做程序员的应该体会非常深刻,如果熟悉业务,在写程序时就会很顺畅,即使遇到比较复杂的业务逻辑,也可以很容易地编写出程序,相反,不熟悉甚至不懂业务,即使在有编码任务书的情况下,编写程序也十分缓慢或错误不断,所以程序员至少也要熟悉分配给自己的那部分业务。

➢ 有利于程序员的职业生涯发展,在众多的程序员中能够登上技术金子塔顶端的人寥寥无几,程序员单凭纯技术来规划自己的职业生涯,并不是最佳的选择,但程序员在工作中接触行业知识的机会比较多,若能够抓住机会较好地掌握某个行业的业务知识,再结合编程技能,那么称你为这个行业的信息技术专家并不过分,而这种业务与技能相结合的复合型技术人才正是社会所需的高端人才,比如ERP顾问等。

说明

当然你可能认为还有其他更重要的情况,但限于篇幅的原因,笔者基于自己的经验仅列举这些供大家参考。 Q0DYUEFf24CzcyE5Rh8ZCn3kN9Pe43ymIg0erzhgj2JWz7sU+GSWshf0GCGC9luT

点击中间区域
呼出菜单
上一章
目录
下一章
×