为期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. **理解项目本质**:项目经理首要任务是深入理解项目...
《华为项目管理模板之10 项目总结表》是一份详尽的项目管理文档,旨在对项目的全过程进行回顾和总结,以提炼出宝贵的经验和教训,为未来项目的成功执行提供指导。以下是根据模板内容解析出的关键知识点: 1. **项目...
项目总结报告的编写旨在提升未来项目开发的定制化能力,为团队提供规范开发过程和提高开发效率的依据,以创造更多公司效益。通过总结,可以识别出在项目执行期间的优点和不足,以便进行必要的调整和优化。 2. **...
**项目总结报告的目的** 项目总结报告是项目执行完毕后,对整个项目进行全面回顾和分析的重要文档,其目的是确保项目的经验和教训得以记录和传承,以便为未来的项目提供宝贵的参考。通过对项目的目标达成、成果产出...
【软件项目总结报告模板】 软件项目总结报告是项目完成后对整个开发过程的全面回顾和评估,旨在记录项目的关键信息,分析项目的执行情况,以及总结经验教训。以下是对报告各部分的详细说明: 1. **引言** 引言...
在IT行业中,项目总结是项目生命周期中的重要环节,它标志着项目的结束,并对整个项目过程进行回顾、分析和提炼。"项目总结模板PPT"是一种工具,帮助项目经理和团队有效地整理和呈现项目成果、经验教训以及未来改进...
项目开发总结报告是项目开发过程中的重要文档,用于记录项目的全过程,包括开发、设计、测试和维护等各个环节的总结,以便于团队回顾经验,找出不足,为后续项目提供参考。以下是对报告各部分的详细说明: 1. **...
做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!
【软件工程模版-项目开发总结报告】 在软件开发过程中,编写项目开发总结报告是至关重要的一步,它能够全面地回顾整个项目的进展、成果、挑战和经验教训,为未来的项目提供参考和借鉴。以下是根据标题和描述内容所...
"项目总结复盘报告.pdf" 本文将对项目总结复盘报告进行详细的分析和总结,并对其中的重要知识点进行解释和详细说明。 一、项目管理的重要性 在项目管理中,项目经理的能力和项目团队的建设是一项关键的因素。项目...
《软件项目开发总结报告》是一份详实记录软件开发过程及其成果的重要文档,它涵盖了项目的整个生命周期,包括从启动到结束的各个阶段。本报告由作者XXXXX在2009年12月完成,旨在对进销存管理系统的开发进行回顾与...
### 软件工程项目总结报告的关键知识点 #### 一、项目总结报告的结构与内容 在软件工程领域,项目总结报告是项目完成后的一个重要文档,它不仅总结了项目的执行情况,还提供了对未来项目的指导意义。从给定的部分...
【腾讯项目总结报告模板】是项目管理中一个重要的工具,尤其在IT行业中,它能够帮助团队高效地回顾项目过程,提炼经验教训,并为未来的项目提供参考。这份资源包含了一系列可以直接套用的报告模板,旨在提升工作效率...
“软件项目总结报告.pdf” 本报告为软件项目总结报告,旨在总结软件项目的执行情况、项目信息、项目说明、软件开发和管理过程、开发工具和环境、风险管理、估计偏差率、规模、工作量等方面的信息。 项目信息 项目...