为期8个月的项目,已经接近尾声,在此我仅对项目期间出现的问题,进行总结,为以后的项目减少此类错误,让我自
勉,也提供一些经验,让新加入的攻城狮们,分享~.~欢迎提议,请别喷我!
项目背景:此项目是一个财务系统的分支,主要为了完成项目的详细费用的预计,项目产生费用明细数字,让财务和
领导监控项目进度,以及项目的费用,以便于统计该项目的完成情况和收支情况。
开发模式:由于该系统数据会依赖于另外的系统,客户对该系统的详细需求也不明确,只说明了一些主要的功能模块,因此,选择的迭代开发的模型。
开发系统:ubuntu 11.04
开发工具:eclipse 3.0
开发框架:本公司自己的 基于SSH 框架
开发数据库:mysql 5.1
开发团队:12个developer,1个business,3个test, 1个teamLeader,1个manager
1.关于需求:
由于该系统需求细节不明确,导致数据库,以及后面的设计扩展性不够。其次对另一系统的数据不很了解,加之项目
催得比较紧,草率开工,没有相对精确的计划,以及可能发生问题的一些措施,为后面的开发埋下了隐患。
1.1改进方案:
对用户的需求需要多进行沟通,对为他们考虑,而不仅仅是为需求而做项目,我们立足点应该放在用户身上,假设你
是用户,拿这些模块干什么用?怎么用着方便,多沟通。
2.团队确认:
需求拿到之后,经过主要人员的分析和简单设计,然后进行团队的确认以及分工,由于大部分人员都是新人,对需求
了解不够,对该系统或者该模块到底要做成什么样子,具体程度不够,导致对个模块的设计,以及数据库的确认,以及人天的估计都不准确,也为后面的开发造成困难。
2.1改进方案:
首先拿到需求设计之后,要对各个模块进行详细的分析,和确定,尽量的考虑全面,并且留下改动的余地,既然
是迭代开发,还要涉及到我们不熟悉的系统,那么对人天估计上就要稍微延后,留下一定的缓冲时间。其次,对需要做的模块,站在用户的角度去考虑,想清楚这模块到底是为了干什么,怎么做让用户用的方便,这样设计是否合理,是否以后扩展方便等等。不能一味的用户说什么就做什么,甚至有时候连用户都模糊的知道需要什么,然后面不停的改动,造成了很多不便。
3.关于开发:
理论上说,一个好的项目,代码开发时间应该是较少的,但是我们这个项目的coding 时间很长。原因:1.需求精确度
不够,导致设计不够详细,设计文档的实用性不够。2.开发人员欠缺经验,盲目的仅为完成功能,对变化,以及人天估计,以及coding 经验不够,设计混乱,一旦需求变化,改动很大。3.对整个开发团队的实力估计稍高,导致有延期现象。
3.1改进方案:
1.需求明确,设计文档应该更加详细,多为初级程考虑一些开发细节,这样能对模块和代码进行严格的控制,这样的文
档才具有实际意义,文档是为了指导和为后面维护做基础,而不是面子工程,是先于开发,而不是开发了再去补文档,这样只会浪费时间和人力。2.其次,对于初程(junior programmer)来说,多考虑程序的变化,不要只为了完成当前功能而写死板的代码,也要学会设计代码,提升自己,多和需求人员沟通,反馈问题,不然会做很多无用功。要有思想的去工作,而不是为工作而工作。3.对团队实力和团队人员性格多了解,多沟通,尽量让每个人都做自己合适的东西,高效,保质的完成。
4.关于测试:
测试这里我就谈两个方面,1.开发人员的Test:对自己模块的测试,以及写的测试用例覆盖面不全,只是测试了主要
的功能,对一些边界,以及一些异常情况没做测试,或者根本没做处理,所以当数据发生异常的时候,页面经常报错。对于
异常数据来说,由于以前的系统已经运行7年了,人都换了几批,数据不完整等等问题,是很有可能了。2. 测试人员的Test:
相对来说,他们更加全面和详细,但是由于经验原因,测试点不够,甚至连测试用例都没走完,当然有些特殊模块测试点非常多,时间和人员配备不够,也是一方原因,但是经过测试的的点的边界,以及异常都应该测试到位。
4.1 改进方案:
1.开发人员对自己的程序要有足够的了解,测试不光是正常数据的测试,更多的是异常情况,对各类型容错要有清晰的
思路,对测试过程中出现的错误,一看就能知道是什么问题,这表示对自己程序的把握,以及错误的处理比较到位。2.测试人员同样,不光正常流程,还需要对异常情况进行处理,压力,环境,浏览器等各种情况进行判定,测试用力例尽量详细,即使多花时间都行,一般来说测试时间应该比开发时间要长。
5.关于沟通:
相信项目开始,团队之间的交流是非常频繁的,大家都说已经沟通过了,也很即时了,但是我认为很多沟通不到位。
比如:团队中出现业务人员拿需求给开发人员,然后开发人员开始进行,没有经过太多的思考,知道需要完成什么功能,而不知道为什么需要完成这个功能,这个功能是否可行?是否合理?是否有变通,或者更好的方式去实现等等,都需要多次,反复的着业务人员,找客户进行商定。结果沟通不到位,导致后面开发过程中发现很多问题,有些业务不明确,有些功能点是否需要,这样多到底对不对? 等等 各种问题,耽误项目周期,改动也比较麻烦,反复反复,很不好。
5.1改进方案:
沟通是必要的,也没有人不会的,但是关键在与“会”,至于会与不会,就看沟通的技巧,以及沟通之后能不能达到你需
要的结果。沟通一般是多人的,所以要对对方的性格性情 有一定了解,可能有些人性格内向,你就需要多主动去交流。有的人性格火爆,那么语气你就不能也火爆吧,那沟通和吵架也没分别了。也许有的人当天心情不好,那就多体谅,等等。也许有人觉得我说的不属于项目开发里面,但是我认为这是团队沟通很重要的一环,人与人和睦了,才能把事情说好,不然一切都是空谈。
6.关于合作
团队合作方面,一个项目肯定会分很多模块,模块肯定有一个人或者多个人完成,模块与模块之间的耦合,或者同一
模块之间的处理等等,都需要合作才能完成。项目期间经常会出现:当需求来了,需要A B (C) 完成,但是A觉得这个让
B去处理好,B 觉得让C 去处理,我这边处理不了,然后就出现了分歧,时间就会拖延。另一方面:当A的任务完成了,B正在不知何去何从的时候,A 就休息玩儿去了,最后B 发现有些问题和A 的模块关联很深,只能从A那边解决,这又耽搁了时间。
6.1解决方案
团队合作,要明白其意义,我们是一个团队,有一个共同的目标(将项目做好),而不简单的是完成自己的任务,一
切以团队目标为重。在任务分配出现分歧的时候,要分析谁做能做好,花的时间最少,并且要有足够的时间,而不是单方面的想,这个不应该我做,或者我不想做。其次,队员实力肯定有一定差异的,先完成的人可以帮助还没完成的人,提供一些方法或者经验建议,不然到时候项目没完成,最后还是会分摊到团队上,也许还是会由你完成,相互帮助相互学习,也能更好促进团队氛围,加强交流。记住:你们的目标是社呢么。
7.关于心态
项目期间发生了很多问题,有人是感情上的问题,有人是身体上的问题,有人是家庭朋友的问题。有些问题可以避免
,但是有些问题必然会影响项目,这里我只能说要调节。比如:男女朋友闹矛盾了,和父母关系闹僵了,尽量不要把情绪带到工作上来。如果确实比较严重,那么可以请假休息2天,我相信你的上司也不是那种很XX的人。(如果没有人性化,建议就别干了~.~)。其次在项目期间,出现了由于任务没完成好,受领导批评的事情,甚至这件事情根本不是你的问题,这时候也不用一天抱怨,处理好心态,至于如何做,我也不细说,每个人都有自己的方法,我相信对于初入该行业的人来说,这种事情经常发生。你要明白一件事情,领导没那么多时间关心细节,他只会关心这个东西做好,还没做好。那么请你汲取教训,下次做好不就行了,对自己要有信心。其他的事情,我就不举例了,心态能决定大部分事情的发展。
8.关于基础
我是搞JAVA,目前发现SSH 使用很广,但是很多仅限于会使用上,对里面的90%的东西都不明白,这样的对你来说有
意义吗?你仅仅想做一个只会使用工具的程序员吗?那么我再问一句:OOP 和OOD 你确定了解了吗?MVC 和三层架构 这些都知道并且会用吗? Math.round()正负值为什么结果不同吗?这点我没资格说什么,因为我对这方面也谈不上精通,但是我知道基础的重要行。对我来说软件开发,实际上是思想的开发,或者展示,先要拥有了基础和理论知识才能去创造,而不是一个仅仅会使用工具的程序员。只有当你基础打好之后,那些所谓的高深武学到你手里,你会发现不过如此,甚至都创造武学。(这是从小说里面领悟到的)
9.关于提升
关于程序员的提升,我没多少发言权,但是我想说的是:对于自己的目标一定要明确,你是想做个混饭吃的程序员,
还是想做一个受人膜拜的大师,有或者你仅仅是做两年,想还工作?对自己的目标清楚的人,我相信会找到自己的路,无论任何行业,只要你目标,敢想敢做,将基础打扎实,总会有功法自然的一天,这是技能上的提升。关于其他:比如自己的素质,品格方面的,这些我就不多说了,但是我认为是很重要的。还有就是自己的眼界和思想,不要仅陷于某一个小领域,比如软件行业的发展,技术前沿,未来的一些走向,也要多关注。老师有云:“你可以不会,但你不可以不知道!”知道了,你才有会的可能。
10.关于健康
我们的健康一直是很大的问题,身体健康,心态健康。google 为什么有那么好的环境? 因为他相信他的员工能为他创
造更多的价值。同样的,我们拥有更好的身体,才能创造更多的价值。很多程序员30岁就不行了,太劳累了,但是30岁我认为正是我们的高峰期,这时候垮掉对不好啊。也别告诉我30岁不能当程序员,可能你的职位变了而已,我相信一直走在编程路上的人,才真正是软件行业人才。
11.关于未来
现在程序员感觉到很累,身体累,心里也累,每月还挣不了什么钱,很迷茫,不知道路在何方...
就我而言,做一个行业,就必须爱上一个行业。就像女人一样,如果你确定要和她生活在一起,但你觉得没你的初恋或者梦中情人好,一味的反感她,那你的生活会美好吗? 好吧,如果你确实反感,那么请你还一个就行了,何必纠结呢。爱上了,事情就简单了,做事就有动力了,有目标了,就会有方向了,所以还是先问问你的心吧。
对于程序员的未来,未经历,也不好多谈,有的人说转管理,有的人说做技术牛人,做管理我还是觉得不能忘记代码,做技术的我认为还得会管理,但在我看来能真正做好的很少,必然是有爱好,有智慧,有天赋,肯努力的人。而其他部分更多的是为了钱而去的,光为了钱,没有爱好和兴趣,没有对该行业的的理想,你能干的幸福,做的好吗?
所以,对于迷茫的人啊,还是想清楚自己到底想干什么? 多了解行业的发展动态,相信总会有适合自己的。
分享到:
相关推荐
**总结** 总而言之,参与开源项目并非难以逾越的高峰,关键在于找到合适自己的切入点,持续学习和积累经验。开源项目的多样性和包容性为不同水平的技术爱好者提供了广阔的发展空间。无论是为了提升个人技能,还是...
在编写项目工作总结时,我们需要按照一个清晰的结构来组织内容,确保全面地涵盖项目的各个方面。以下是对这个提纲的详细解读: 一、项目来源 这部分需要介绍项目的起源,包括立项的依据,通常涉及市场需求、政策...
在IT行业中,项目总结是项目生命周期的最后一个重要环节,它为团队、管理层乃至整个组织提供了对项目执行情况的全面回顾。这份"项目总结模板"旨在帮助我们系统化地记录项目的关键信息,提炼经验教训,以便于未来项目...
项目开发总结报告是软件开发过程中的重要文档,它详尽记录了项目的整个生命周期,包括从需求分析、设计、实现、测试到上线维护等各个阶段的关键活动、遇到的问题、解决方案以及项目成果。以下是对项目开发总结报告...
网上订餐系统课程设计系列文档之-项目总结和个人总结 MyEclipse开发,Spring-Struts-Hibernate框架,MySql数据库 特别声明:文档是项目总结和我个人的原创总结,个人总结,个人总结,个人总结哦~并不含团队其他成员...
项目总结报告模板.pdf 本资源是一个项目总结报告模板,用于记录和总结项目的执行情况和结果。下面是该资源的详细知识点解析: 一、项目总结报告的重要性 项目总结报告是项目管理中的一個重要组成部分,它扮演着...
项目验收工作总结和技术总结是项目执行过程中的重要环节,它们是对项目执行情况的全面回顾和评估,旨在总结经验、吸取教训,为未来的工作提供指导。在撰写这类总结时,需遵循一定的文体要求和格式规范。 首先,项目...
作为一名项目经理,总结多年的经验至关重要,因为这有助于提升个人在项目管理中的能力,降低风险,并确保项目的成功执行。以下是一些核心知识点和实践经验: 1. **理解项目本质**:项目经理首要任务是深入理解项目...
项目总结报告的编写旨在提升未来项目开发的定制化能力,为团队提供规范开发过程和提高开发效率的依据,以创造更多公司效益。通过总结,可以识别出在项目执行期间的优点和不足,以便进行必要的调整和优化。 2. **...
**项目总结报告的目的** 项目总结报告是项目执行完毕后,对整个项目进行全面回顾和分析的重要文档,其目的是确保项目的经验和教训得以记录和传承,以便为未来的项目提供宝贵的参考。通过对项目的目标达成、成果产出...
本文将以《华为项目管理模板之10 项目总结表》为切入点,深入探讨华为项目管理的有效实践及对未来的指导意义。 首先,项目基本情况是任何项目管理的起点。华为在模板中明确要求记录项目名称、编号、主要人员及其...
【软件项目总结报告模板】 软件项目总结报告是项目完成后对整个开发过程的全面回顾和评估,旨在记录项目的关键信息,分析项目的执行情况,以及总结经验教训。以下是对报告各部分的详细说明: 1. **引言** 引言...
在IT行业中,项目总结是项目生命周期中的重要环节,它标志着项目的结束,并对整个项目过程进行回顾、分析和提炼。"项目总结模板PPT"是一种工具,帮助项目经理和团队有效地整理和呈现项目成果、经验教训以及未来改进...
项目开发总结报告是项目开发过程中的重要文档,用于记录项目的全过程,包括开发、设计、测试和维护等各个环节的总结,以便于团队回顾经验,找出不足,为后续项目提供参考。以下是对报告各部分的详细说明: 1. **...
做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!
【软件工程模版-项目开发总结报告】 在软件开发过程中,编写项目开发总结报告是至关重要的一步,它能够全面地回顾整个项目的进展、成果、挑战和经验教训,为未来的项目提供参考和借鉴。以下是根据标题和描述内容所...
【项目实施后评价总结报告】 在信息技术领域,项目实施后的评价总结报告是至关重要的,它不仅反映项目的执行情况,还提供了宝贵的反馈,用于优化未来的工作流程和决策。本报告将详细探讨项目实施的过程、结果以及...
"项目总结复盘报告.pdf" 本文将对项目总结复盘报告进行详细的分析和总结,并对其中的重要知识点进行解释和详细说明。 一、项目管理的重要性 在项目管理中,项目经理的能力和项目团队的建设是一项关键的因素。项目...
《软件项目开发总结报告》是一份详实记录软件开发过程及其成果的重要文档,它涵盖了项目的整个生命周期,包括从启动到结束的各个阶段。本报告由作者XXXXX在2009年12月完成,旨在对进销存管理系统的开发进行回顾与...
### 软件工程项目总结报告的关键知识点 #### 一、项目总结报告的结构与内容 在软件工程领域,项目总结报告是项目完成后的一个重要文档,它不仅总结了项目的执行情况,还提供了对未来项目的指导意义。从给定的部分...