`
guoxinzz
  • 浏览: 431009 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一次不太完美的软件工程总结

 
阅读更多

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan
乱发一次彪~~~,努力再下次能改进这些问题。
1 前期需求分析
需求分析时间明显不够,并且没有专门的人或者是明确某人去做需求分析。只知道要开发的东西的大概,具体的细节根本就没有。对于产品都要有什么功能,这些功能都要完成什么操作,各功能间是怎么衔接的,谁也不知道,没人问,也没人可以回答,等到开发过程中遇到问题了,才想起来沟通一下,问问怎么做,流程是什么,还有的根本不会产生沟通,直接就做了一个功能,结果到后来发现根本不是想要的。无数次的返工,无数次的修改,恶梦一般的开发。搞的所有人的黯然神伤。
如果可以我希望是这样的:有一个人专门负责需求分析,这个人不但要了解老板的需求,要了解产品达成的目标,产品内部操作的流程,产品的结构,需要开发完成的时间。对于每一个可能出现的问题、每一个步骤、每一个模块,都去询问。要知道需求少问了一句,就可能对整个开发时间带来误差,对开发进度有着很大的影响。
对于某些后来新加的需求,尽量不进行开发,等到产品开发完成之后,再进行新需求的开发。如果非要加上新的需求,请先让相关人员负上一定责任,是客户的问题?那就多付钱,是需求分析的问题?开除或者记过吧。
2 原型开发
以直接上线为目标的开发导致产品的大量修改,而且浪费了大量的时间。应该知道,客户是会变的,老板是会变的,唯一不变的就是:别人要变,你就要改。
不如做一个原形开发,先给客户或者老板使用,对于这个原形提出意见,然后做第二次需求分析,从原型上继承,继续开发,就算不能继承,那改动也是相对会小很多的。
3 时间管理
没有产生一个时间线,每天做什么没有详细的规定,当然需求都不明确,也就根本就不能规划出需要多少时间。老板和客户都在催,截止时间摆在那里,如果真的搞出一套时间表来,估计谁都会骂街,根本不可能完成。老板需要快,但是开发是要有周期的,缩短时间就相当于降低质量。对于降低的质量想要弥补回来需要花的时间会更多。
4 人员管理
没有人负责文档,没有人负责需求分析。需求分析上面讲到过了,没有人负责文档带来的结果就是一天无数次电话、邮件、MSN、QQ,都在和项目负责人沟通,或者直接跨过项目负责人和老板或客户沟通,沟通完了之后又不能形成后续文档,在合作开发或者测试的时候又会无根可查,还要去沟通。这种沟通,证明不了你的团队合作能力,相反的只能证明文档的匮乏,管理的混乱。
另外还要提出一点,就是从业人员一定要很专业,高素质的人带来效率上的提高是很明显的。
5 测试
测试过程中总能发现大量的新需求,大量的bug。
需求定义不明确,做出来的东西当然不会符合客户和老板的要求,当然就算需求定义的明确了,一个软件产品还是会被提出来很多的新需求。
bug大部分是由单元测试没做好造成的。为什么单元测试时不做好呢?不要把问题推到没有时间上来,再紧的时间,宁可拖长开发时间,也不要把错误的代码直接使用。
还有测试过程是举步为艰,没有相应的文档来解释说明,连要测试什么内容都没有,你说这样的测试能有效果吗?
6 bug管理
可能是习惯了email沟通,可能是因为bug系统使用复杂。从程序员到测试人员再到客户和老板没有人在用bug系统。
要知道bug系统是会节约时间,并且对bug是可以追溯跟踪的。来来回回乱七八糟的邮件,混乱的像蜘蛛网一样的沟通网,极其低下的工作效率,到最后某些bug根本没有修正,有的功能根本没有开发,N个人一起修正一个bug带来人员浪费。
7 用户体验
对于用户体验,这个真的不太好掌握,张三说这样用户体验好,李四说那样用户体验好,是全部ajax,还是模仿windows,是拥有自己的使用模式,还是抄录一部分目前流行的模式。别费劲想了,找个专门负责用户体验的来干这事吧,最好是有那种可以反驳老板意见能力的人,坚持自己的观点,并且有强有力的论据来证明自己是正确的,自己的想发是用户体验最好的。
附:一个网站开发案例分析 - 摘自程序员杂志
2月18日:项目启动,开始整体规划
在我加入金环天朗的时候,这个网站就已经存在了,而最开始的计划也只是对原有的网站进行局部改版。但是等我深入了解后,大吃一惊:
u 规划/需求:原有网站没有经过认真规划就匆忙上马,只有部分的简单示意图,对于每个页面具体区域的功能描述和逻辑过程还是依赖口头沟通。没有独立的后台管理,依赖于WAP业务的后台,内容展示力不从心。
u 页面设计:美工因为还有其它工作所以有一定程度的拖延,没有时间观念,整个设计方案没有经过整体评估,导致后来许多细节没有按照计划实现,页面设计先后由两人分头独立完成,导致部分风格不一致。
u 开发:技术实现一直处在救火的状态,没有规划,没有步骤,没有主次之分,没有时间观念。代码的结构非常散乱,没有可用的文档查询,开发人员走了,给以后接手的人带来极大的麻烦。代码没有规范、没有注释。归结起来就是可读性很差。
u 测试:没有任何测试,开发人员简单试一试就直接上线了!
u 内容:网站内容维护没有专人负责,逐渐处于无人答理的状态。
总之,原来的网站有太多不尽人意之处,和同类网站比起来差距较大,市场人员无法推广,技术人员很难维护,动不动就出错。只能另起炉灶,推倒重做一个全新的网站。
后来的网站重新制作一共花费了4个月的时间,其中大概2个月的时间都在做规划、需求分析、开发计划制定,文档编写。剩下2个月的开发过程以设计,编码,测试并行的方式进行。
值得庆祝的日子到来了。6月15日凌晨我正式向全公司同事报告这个网站正式上线。这是我自己主持研发的第二个网站,也是我非常用心管理的一个项目。我想留下一个参考样板,为公司其他项目的管理摸索经验。我认为这是一个成功的项目是因为:
ü 做出来的网站符合最初的规划和需求定义;
ü 按照需求定义完成的时候(4月12日)确定的进度向前推进,6月15日上线是两个月前就确定的;
ü 整个项目执行过程中,规划、需求、开发、测试等环节均按照预定轨道前进,没有出现大的纰漏。

分享到:
评论

相关推荐

    软件工程课程总结.pdf

    课程总结 题 目 《软件工程》课程总结 学生姓名 学 号 学 院 专业班级 指导教师 职 称 教授 2014 年 11 月 《软件工程》课程总结 一、学习目标 通过系统的学习,了解软件开发从项目确定到需求分析,再到概要 及详细...

    软件工程课程总结.doc

    课程总结 "题 目 "《软件工程》课程总结 " "学生姓名 " " "学 号 " " "学 院 " " "专业班级 " " "指导教师 " " "职 称 "教授 " "2014 "年"11" 月" 《软件工程》课程总结 一、学习目标 通过系统的学习,了解软件开发...

    GIS软件工程——课程总结

    GIS软件工程课结课,C# AE二次开发,从成果系统中抽取一部分代码块做出简单介绍,能够提供一些AE开发的编程思路,比较适合有些AE基础的朋友学习。涉及WebBrowser访问网页,GDB文件加载方法,openfiledialog使用,shp...

    软件工程知识点

    因此,对软件的维护也可以看成为对软件的再一次开发。在这个时期,对软件的维护主要涉及三个方面的任务,即改正性维护、适应性维护和完善性维护。 2.瀑布模型 瀑布模型诞生于20世纪70年代,是最经典的并获得最广泛...

    软件工程思想

     软件工程主要讲述软件开发的道理,基本上是软件实践者的成功经验和失败教训的总结。软件工程的观念、方法、策略和规范都是朴实无华的,平凡之人皆可领会,关键在于运用。我们不可以把软件工程方法看成是诸葛亮的...

    软件工程课程设计总结.docx

    软件工程课程设计总结 我们所选择的图书管理系统的课程设计对我们是新的挑战和尝试的过程,利用所学习的软件设计知识并制作一个关于图书管理系统,在具体的设计与实施中,我们看到并感受到了一个管理系统的具体分析...

    软件工程pk项目的总结1

    需求分析的时候,用例简单,但第一次忘记加用例分析,领域建模很重要(虽然这样说,但是在一个小时之前的软件工程考试中,我觉得我领域建模错了,思维定势,都不会分析了,

    软件工程小组第四周第一次例会记录1

    软件工程小组第四周第一次例会记录时间:2019年3月31日星期日 地点:A-405 记录人:高天一缺席人员:无会议内容:本周工作总结初步确定项目的需求分析和数

    软件工程思想 (林锐)

    软件工程主要讲述软件开发的道理,基本上是软件实践者的成功经验和失败教训的总结。软件工程的观念、方法、策略和规范都是朴实无华的,平凡之人皆可领会,关键在于运用。我们不可以把软件工程方法看成是诸葛亮的...

    软件工程课程设计学生信息管理系统.doc

    软件工程课程设计任务书 "课题 "学生信息管理系统 " "名称 " " "设计 "本课程设计的目的就是通过实践使学生经历一个软件系统开发的全过程并" "目的 "受到一次综合的训练,以便能较全面地理解、掌握与综合运用所学的...

    信息系统管理工程师下午试题背诵总结(本人62分)

    信息系统管理工程师下午试题背诵总结(本人62分) 知识点均为本人精心归纳,下午题仅准备一周便一次性通过

    ASP.NET软件工程师

    随用随讲:对于部分技能,第一次讲解时只介绍基本的,常用的技术细节,其他技术细节将在案例、项目中需要时再进行讲解 3、以实际案例为主线组织教学内容: 采用实际案例组织技术内容一个案例几乎贯穿整门课程 4、以...

    软件工程大作业-基于家政服务预约小程序系统的设计(期末)

    软件工程大作业是指在软件工程课程中,学生...完成一个软件工程大作业对于学生来说是一次宝贵的实践机会,可以使他们更好地掌握软件开发的过程和方法,为将来的职业发展打下基础。 完整版还在书写,书写完将会继续上传

    软件工程其摸复习资料

    期末复习,让考试不在烦恼,总结借鉴,就当是一次练习。

    软件测试工程师的工作总结[2]

    在公司里也逐渐受到同事领导的重视,一次针对公司的新的软件功能进行测试的时候,像往常一样“随手”测试出了几个Bug,然后“仔 软件测试工程师的工作总结[2] 软件测试 第二招学会动手 参加软件测试工作后,随着...

    PSP-塑造世界一流的专业软件工程师

    引言WattsHumphrey作为8000个工程师的编码主管,在IBM长达27年的工作期间,亲身经历过无数次软件项目开发的成功与失败,总结出一系列宝贵经验。在美国国防部的赞助下,他于1986年开始研究并于1991年提出能力成熟度...

    基于架构的软件设计方法

    卡内基梅隆大学软件工程研究所本世纪初曾提出了基于架构的设计(Architecture Based Design)方法,本文着重从软件系统设计方面阐述基于架构的软件设计方法,用于产品线及长生命系统的高层软件架构设计,同时也为项目开发...

    软件测试经典面试题 (超实用)

    73、请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。 23 74、您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。 23 75、你对测试最大的兴趣在...

Global site tag (gtag.js) - Google Analytics