程序员是这样干的嘛

来源:互联网 发布:淘宝一键复制有违规吗 编辑:程序博客网 时间:2024/04/28 02:41
程序员是这样干的嘛
毕业至今,从事IT行业已有4年工作时间.
这一路走来,做过编码,做过测试,做过实施工作,
有过喜,有过忧.喜是克服了编码过程的难度问题.
忧的是软件是这样干的嘛,是不停的去修补,不停的产生bug,在生产线上不停的修改bug嘛
我亲身经历一个千万的系统集成工程,而这个千万的系统集成过程也是边编码边修改,没有采用软件工程思想,
凭程序员的经验干.一个有经验的老程序领着一班刚毕业的大学生开始干.
这个系统从编码到上线花了半年的时间.
在整个系统过程中,我很少参与编码,主要是实施,现场调式bug,不停的给系统升级,更新.
就是干这活.
在这个岗位上我做了将近1年的时间,我深刻领会了同一套系统,产品系统比服务系统的价格高那么多的理由.
服务系统就是不断升级,不断修改,软件公司会安排一个初级程序员现场维护,不断的维护,不断出错,最后系统到用户不能接受为止.
这种服务的模式结果导致软件公司失去客户,客户失去对软件公司的信任,客户不断的试用其他企业的软件,这样客户永远处于试验期.
而软件公司也不断寻找新的客户.
应用软件的开发最大的难点:是适应业务变化,适应需求变化.
但如何解决这些问题了.
大中型系统一定需要采用正规化路线开发,不能打游击战.
打游击战术只适合非规模化开发,可以采用英雄主义路线开发.
对软件项目的团队的开发,个人的项目管理思想是权力集中与民主讨论.
一个团队必须有精英,有领导者.对于领导者应该下放权力,权力应该集中,不应该民主决定.
讨论应该民主讨论,而且需要设立奖励制度,有突出建议贡献的应该奖励,这样才能发挥团队中每个人的积极性.
一个大中型系统如果n个人设计,那么系统集成的难度会增加n个百分点.出现的问题也会增加n个点,项目失败的风险就提高了n个点.
项目经理应该这样认为团队:团队中成员的角色应该分:分析员\程序员\设计人员\测试人员几个层次.
分析员主要精力在于整体,考虑整个系统,考虑的问题是整体性,是熟悉业务的,是如何让软件的结果适应业务变化.分析员的工作:
将需求转化开发中明确\具体的开发模块\,撰写的文档是给程序员看的,程序员拿着文档就能编码的.
分析员与设计人员设计的图纸应该遵循的原则:
1.程序员是一个不懂业务的成员原则
2.模块设计粒度最小化原则
3.涉及业务知识最小化原则
4.沟通最小化原则
程序员考虑问题应该是最局部的,考虑的是自己分到的模块功能,不需要考虑业务逻辑,
重点精力是保证代码的\健壮性\稳定性\高效性\安全性.程序员不应该干别的,应该这么认为程序员角色.
程序员就是一个照着图纸施工的工人,不需要程序如何考虑整个工程的问题,整个业务问题.不需要有其他的功能.
程序员涉及的业务知识越少越好.
测试员应该是很喜欢挑毛病,有喜欢挑毛病的习惯.
程序员应该怎样干,程序员的重点精力是保证代码的\健壮性\稳定性\高效性\安全性.照着图纸施工的工人.

原创粉丝点击