java项目管理经验总结
2015-05-04 02:46
344 查看
以下内容为原创,转载请注明出处,版权必究。
以下内容持续更新中。。。
【项目中用到的各项技术/工具汇总】
项目/bug管理:禅道
缓存:memcache/阿里云ocs
消息总线:activemq
持续集成:jenkins
代码检查:pmd/checkstyle/findbug
ws测试平台:soapui
web服务器:jboss/tomcat/weblogic
数据库:oracle/mysql
远程通讯:mina
文本编辑器:kindeditor
富客户端框架:easyui
数据证书:x.509,可用于class文件加密
java开源论坛:jforum
java监控:jconsole
测试工具:loadrunner,jmeter
图表工具:highcharts
json格式工具地址:
http://tools.jb51.net/tools/json/json_editor.htm http://jsonlint.com/
【关于项目经理】
我个人认为,一个好的项目经理应该是可以很好的把控项目的质量与进度,在项目出现危机时,他是临危不乱的,他不会遇到大事小情都往领导那反馈, 因为他知道,什么事情都要领导来handle,他的价值就无法体现,他的价值就是体现在他到底能抗住多少事儿。
他对于团队的组员的协调以及同事关系处理上,完全没问题。他有人格魅力,要能很好的沟通能力与理解能力,同时还得会做人。
项目的成功与失败,与他密不可分。项目出现任何问题,他都有解决方案来对应。并且他是团队里最负责的。
他的控制能力要很好,能把项目玩弄于鼓掌之间。
就像马云说过,宁可让一流的项目经理做三流的项目,也不让三流的项目做一流的项目。前者会做成二流甚至一流的项目,而后者只能做成三流的项目。
【关于责任】
团队中的每个人都需要是有责任感的,否则一条鱼会腥一锅汤。
1.责任感很重要,不能说发现了一个问题,不是我负责的,我就不管了,要通知到当前责任人,使用打电话的方式,不要丢到那就不管了。
有歧义的时候,主动打电话,不要这个事情不是你的责任,你就不通知了,不要发短信,微信,QQ的形式,因为对方可能看不到,直接打电话效率最高。
要把这种思想,传达给每个组员。
2.给组员灌输集体荣辱观,一荣俱荣,一损俱损。大家都是一条船的。好好干!塑造共同目标。
【关于私活】
如果有时间和精力,并且不怕累的话,那么完全可以接私活。不过随着收入的提高,你的压力也跟着上来了。
1.谈完钱之后,这件事儿就与钱无关了,大家的一致目标就是把这个活干完,干好。别干到一半的时候跟我提钱太少,活太多的屁话。
2.接私活主要是看组员是否有足够的时间、精力、能力来投入这件事情。三者缺一不可,我们之前就经常被坑。
3.时刻要记住,钱不是一个人挣的,要适当的放权,放钱,不要把自己的压力搞那么大。
4.关于组员的选择,必须要听话的,别我说一句,您那边有十句等着反驳我,事儿多的人,再厉害也不能用。听话,拿钱,干活,验收,走人。就这样简单。
5.前期跟组员说明白,需求,编码规范,进度,赏罚制度等等,先小人,后君子。爱干干,不爱干,滚。
【关于小弟】
无论什么项目,人,都是项目的唯一生产力。需要爱惜他们。
1.告诉组员,千万不要无脑编程,在开发的时候多思考,站在用户的角度上去思考问题,一定要定期做代码评审工作,
等到最后一定会吃大亏。
2.对于进度慢或者事儿多的组员,尽快换掉,换更能胜任本项工作的人,一定要多准备备胎,有备无患(备胎是私活情况)。
3.对不熟悉的组员,不要听他说自己多么牛,其实有狗屁不是,耽误进度。
4.对于新人,无论他的能力是高是低,都先分给一个小模块给他去试水,之后再做定夺。不要刚上来就分给他一个大的,最后坑死你。
【关于需求】
软件项目的重中之重。
1.需求调研,整个项目的重中之重,需求做不好,后续都是坑,一定会失控!
项目的领导者必须要全身参与进来,否则你无法控制整个项目,
项目失控才是最可怕的。千万不要等项目进行中,或者项目中后期还有一些最原始的需求搞不清。
要坚决杜绝这件事情的发生。在做之前,先想想怎么完成,宁可在前期多花一些时间,也总比在后期花大把的时间与精力去改代码强百倍,
其实真正coding的工作没多少,前期需求做好,比什么都强。等到大量返工工作量出现的时候,也是体现出你无能的时候。
2.需求文档的编写,是一门学问,编写完成后,需要组内会议,看看是否描述的有歧义点,导致以后的问题隐患。
3.前期是甲方在把控需求,中期是乙方在把控需求。乙方要掌握需求的主导权,不要甲方让你干什么你就干什么,不然会被玩死。
引用乔布斯一句话:“客户在没有使用产品之前,他们也不知道想要什么”。
4.把前期需要注册审批的东西都罗列出来,开小会碰,提前申请,不要等项目中期时再申请,卡进度,因为审批需要时间。
5.在项目的需求阶段,要跟合伙人把每个细节都过一遍,不用具体的实现,只是过一遍,预估一下是否会有瓶颈,以及风险评估,坑等问题。
6.需求分析并非一日之寒,需要多次与甲方进行沟通,此处需要整理出《需求分析文档》,让用户邮件确认。
7.最好派个BSE去甲方现场,有可能的话尽量常驻,在现场跟用户零距离的沟通。这样甲乙双方都踏实。
8.甲方都是外行,不让他看到UI,他自己也不知道是怎么回事。所以乙方描述的需求,和甲方真正想要的需求,是存在歧义的。
【关于控制】
项目经理的主要职责就是搞定项目的质量与进度。
1.真正项目开始之前,要制定好自己团队的编码规范等等文档,来约束组员,否则后续会有很多坑,
对于拉完屎没开屁股的同事,改他们的代码会很艰难。
2.别告诉手底下的人真正验收的日期,把这个日期提前一段时间(1-3周), 这1-3个星期作为缓冲期,这样整个项目压力会小很多,定好每个模块完成的时间,
小时间要卡住,卡准,不行就加班,如果不卡的话,顺延到最后会拖垮整个项目。如果按你定的时间完成任务,其实属于提前完成,你可以申请项目奖金。
否则也属于正常进度,你跟team说现在项目已经延期了,需要再加把劲。(其实是正常工期)
这种善意的欺骗对项目管理者来说,压力会小很多。deadline是项目进度最强推动力。
3.代码评审机制,一定要有,而且是在开发阶段的前期就要做,并且所有开发人员都要参加,我们之前吃过亏,前期没有代码评审,后面全是bug和隐患。
4.在项目初期-需求调研阶段,就要对风险点做预判,要有预见性,不要等到了那步再做决策,提前做决策。
各位leader自己来识别自己团队内的风险点,类似于第三方登录或者地图相关的地方,
打好提前量,准备充裕的时间以及人力资源做好调研以及相关的准备工作。
5.每天开例会,碰进度等,需要组员编写日报。项目经理编写周报。
6.必须要使用项目管理软件,例如持续集成+bug管理+进度管理+质量管理等,推荐禅道。
7.开发过程中,如果发现有攻坚问题或者技术壁垒,一定要给自己设置一个时间节点,过了这个节点,如果没有结果,
也先PASS,不要卡住,其他功能都开发完之后,再回过头来处理。把这个思想传达给组员。
8.小时间要卡住,卡准,不行就加班或填人,如果不卡的话,顺延到最后会拖垮整个项目。
9.管理者不要参与开发工作,因为整个项目必须有一个人是站在最高的位置上,审视全局,这样才能控制好项目的总体。
说白了,你就是船长,要负责船的大方向,把握好宏观的度。
10.强调代码注释,并且要强调不是代码的功能开发完毕之后才叫做完了一个功能,而是测试通过后,才算OK。
您传说中做完的功能,一测试发现20多个bug,亲那不叫做完了。依然是没做完,并且这种人可以考虑踢出团队了。
11.需要引入专业测试人员进行白盒,黑盒测试,并且与开发组同步,需要前期编写出测试文档,包括测试点,测试计划等等。
测试力度不够,会直接影响你的项目的健壮性。这里说的测试不单单是功能测试,还有性能测试。通过专业的测试工具,例如loadrunner
或jmeter等等。
12.前期制定项目计划的时候,别定的那么紧张,把你的兄弟们都累死了,对你也没有什么好处,需要人性化一些。
13.项目经理尽可能的参加每一个会议,这样你才能够更有把握控制好项目。
14.项目大的话,需要放权给组员,让组员来管理某些模块。不要让两个组员的管理权限有交集。
【关于失控】
项目经理制定的工作计划以及工期安排,不知不觉中,项目经理失去了对项目的控制,就像开车的时候刹车失灵一样。
1.及时总结失控原因,对风险点的把控,一定要有预见性,且头脑一定要冷静,浮躁/吐槽/抓狂等是无法解决问题的。
2.如果是工作量估算错误,则需要不断的往项目里填人。
3.及时与管理者商讨对策,亡羊补牢,为时不晚。
4.不要悲观,因为悲观情绪是可以传染的,尤其是对于leader来说。 你可以假装,但是一定要让团队里的人看到,你们是积极向上的。
【其他】
杂七杂八的经验点积累,再多一点经验,就可以升级穿魔法长袍了。
1.穷人学技术,富人学管理。
2.如果您是自己创业开软件公司,您一定要接收一个现实,那就是甲方有可能不会给您结尾款,无论项目成功与否。
3.如果您选择了创业,您一定要记得,创业是一件非常痛苦的事情,成功也是非常痛苦的事情,可能会天天不睡觉,您确定是否要创业? 并且选择创业后,您将得到什么?又将失去什么?都应该好好想一想。
4.作为一个领导者,知识面一定要广,或者人脉广,不然在项目进行中时会捉襟见肘。
5.如果功能是对的外网,那么后台校验一定要加,前台的判断可以绕过去。
6.记住,钱不是一个人赚的,要学会分享。
7.以后的项目中,页面与类都不要写重名,不然用ctrl+shift+r的时候会很费劲,例如所有页面都叫find.ftl。
---------------------------------------------------------------------------------
下面是总结出来的APP项目开发流程:
项目流程:
0.初期需求调研
1.需求文档制定(粗粒度)
2.反馈给甲方需求文档(粗粒度)
3.签合同,制定项目计划,周期,进度安排等
4.与甲方连续碰UI,出UI迁移图(先)+UI效果图(后)让甲方拍板
4.需求文档完善(细粒度)
4.数据库设计(ER图+数据字典)
5.UI切图
5.预估风险点与技术壁垒,前行技术调研(无论是客户端还是服务端)。
5.开接口会议,制定接口(按照需求文档+UI+数据库设计)
6.接口开发+接口文档编写(做好单体测试web页面)
7.客户端进行开发(接口文档+UI切图+UI迁移图完善后,接口要优先于客户端开发完成)
8.客户端与接口联调测试
9.内部团队测试
10.甲方验收测试
11.修改bug以及代码评审
12.结项+部署+上线+运营维护
以下内容持续更新中。。。
【项目中用到的各项技术/工具汇总】
项目/bug管理:禅道
缓存:memcache/阿里云ocs
消息总线:activemq
持续集成:jenkins
代码检查:pmd/checkstyle/findbug
ws测试平台:soapui
web服务器:jboss/tomcat/weblogic
数据库:oracle/mysql
远程通讯:mina
文本编辑器:kindeditor
富客户端框架:easyui
数据证书:x.509,可用于class文件加密
java开源论坛:jforum
java监控:jconsole
测试工具:loadrunner,jmeter
图表工具:highcharts
json格式工具地址:
http://tools.jb51.net/tools/json/json_editor.htm http://jsonlint.com/
【关于项目经理】
我个人认为,一个好的项目经理应该是可以很好的把控项目的质量与进度,在项目出现危机时,他是临危不乱的,他不会遇到大事小情都往领导那反馈, 因为他知道,什么事情都要领导来handle,他的价值就无法体现,他的价值就是体现在他到底能抗住多少事儿。
他对于团队的组员的协调以及同事关系处理上,完全没问题。他有人格魅力,要能很好的沟通能力与理解能力,同时还得会做人。
项目的成功与失败,与他密不可分。项目出现任何问题,他都有解决方案来对应。并且他是团队里最负责的。
他的控制能力要很好,能把项目玩弄于鼓掌之间。
就像马云说过,宁可让一流的项目经理做三流的项目,也不让三流的项目做一流的项目。前者会做成二流甚至一流的项目,而后者只能做成三流的项目。
【关于责任】
团队中的每个人都需要是有责任感的,否则一条鱼会腥一锅汤。
1.责任感很重要,不能说发现了一个问题,不是我负责的,我就不管了,要通知到当前责任人,使用打电话的方式,不要丢到那就不管了。
有歧义的时候,主动打电话,不要这个事情不是你的责任,你就不通知了,不要发短信,微信,QQ的形式,因为对方可能看不到,直接打电话效率最高。
要把这种思想,传达给每个组员。
2.给组员灌输集体荣辱观,一荣俱荣,一损俱损。大家都是一条船的。好好干!塑造共同目标。
【关于私活】
如果有时间和精力,并且不怕累的话,那么完全可以接私活。不过随着收入的提高,你的压力也跟着上来了。
1.谈完钱之后,这件事儿就与钱无关了,大家的一致目标就是把这个活干完,干好。别干到一半的时候跟我提钱太少,活太多的屁话。
2.接私活主要是看组员是否有足够的时间、精力、能力来投入这件事情。三者缺一不可,我们之前就经常被坑。
3.时刻要记住,钱不是一个人挣的,要适当的放权,放钱,不要把自己的压力搞那么大。
4.关于组员的选择,必须要听话的,别我说一句,您那边有十句等着反驳我,事儿多的人,再厉害也不能用。听话,拿钱,干活,验收,走人。就这样简单。
5.前期跟组员说明白,需求,编码规范,进度,赏罚制度等等,先小人,后君子。爱干干,不爱干,滚。
【关于小弟】
无论什么项目,人,都是项目的唯一生产力。需要爱惜他们。
1.告诉组员,千万不要无脑编程,在开发的时候多思考,站在用户的角度上去思考问题,一定要定期做代码评审工作,
等到最后一定会吃大亏。
2.对于进度慢或者事儿多的组员,尽快换掉,换更能胜任本项工作的人,一定要多准备备胎,有备无患(备胎是私活情况)。
3.对不熟悉的组员,不要听他说自己多么牛,其实有狗屁不是,耽误进度。
4.对于新人,无论他的能力是高是低,都先分给一个小模块给他去试水,之后再做定夺。不要刚上来就分给他一个大的,最后坑死你。
【关于需求】
软件项目的重中之重。
1.需求调研,整个项目的重中之重,需求做不好,后续都是坑,一定会失控!
项目的领导者必须要全身参与进来,否则你无法控制整个项目,
项目失控才是最可怕的。千万不要等项目进行中,或者项目中后期还有一些最原始的需求搞不清。
要坚决杜绝这件事情的发生。在做之前,先想想怎么完成,宁可在前期多花一些时间,也总比在后期花大把的时间与精力去改代码强百倍,
其实真正coding的工作没多少,前期需求做好,比什么都强。等到大量返工工作量出现的时候,也是体现出你无能的时候。
2.需求文档的编写,是一门学问,编写完成后,需要组内会议,看看是否描述的有歧义点,导致以后的问题隐患。
3.前期是甲方在把控需求,中期是乙方在把控需求。乙方要掌握需求的主导权,不要甲方让你干什么你就干什么,不然会被玩死。
引用乔布斯一句话:“客户在没有使用产品之前,他们也不知道想要什么”。
4.把前期需要注册审批的东西都罗列出来,开小会碰,提前申请,不要等项目中期时再申请,卡进度,因为审批需要时间。
5.在项目的需求阶段,要跟合伙人把每个细节都过一遍,不用具体的实现,只是过一遍,预估一下是否会有瓶颈,以及风险评估,坑等问题。
6.需求分析并非一日之寒,需要多次与甲方进行沟通,此处需要整理出《需求分析文档》,让用户邮件确认。
7.最好派个BSE去甲方现场,有可能的话尽量常驻,在现场跟用户零距离的沟通。这样甲乙双方都踏实。
8.甲方都是外行,不让他看到UI,他自己也不知道是怎么回事。所以乙方描述的需求,和甲方真正想要的需求,是存在歧义的。
【关于控制】
项目经理的主要职责就是搞定项目的质量与进度。
1.真正项目开始之前,要制定好自己团队的编码规范等等文档,来约束组员,否则后续会有很多坑,
对于拉完屎没开屁股的同事,改他们的代码会很艰难。
2.别告诉手底下的人真正验收的日期,把这个日期提前一段时间(1-3周), 这1-3个星期作为缓冲期,这样整个项目压力会小很多,定好每个模块完成的时间,
小时间要卡住,卡准,不行就加班,如果不卡的话,顺延到最后会拖垮整个项目。如果按你定的时间完成任务,其实属于提前完成,你可以申请项目奖金。
否则也属于正常进度,你跟team说现在项目已经延期了,需要再加把劲。(其实是正常工期)
这种善意的欺骗对项目管理者来说,压力会小很多。deadline是项目进度最强推动力。
3.代码评审机制,一定要有,而且是在开发阶段的前期就要做,并且所有开发人员都要参加,我们之前吃过亏,前期没有代码评审,后面全是bug和隐患。
4.在项目初期-需求调研阶段,就要对风险点做预判,要有预见性,不要等到了那步再做决策,提前做决策。
各位leader自己来识别自己团队内的风险点,类似于第三方登录或者地图相关的地方,
打好提前量,准备充裕的时间以及人力资源做好调研以及相关的准备工作。
5.每天开例会,碰进度等,需要组员编写日报。项目经理编写周报。
6.必须要使用项目管理软件,例如持续集成+bug管理+进度管理+质量管理等,推荐禅道。
7.开发过程中,如果发现有攻坚问题或者技术壁垒,一定要给自己设置一个时间节点,过了这个节点,如果没有结果,
也先PASS,不要卡住,其他功能都开发完之后,再回过头来处理。把这个思想传达给组员。
8.小时间要卡住,卡准,不行就加班或填人,如果不卡的话,顺延到最后会拖垮整个项目。
9.管理者不要参与开发工作,因为整个项目必须有一个人是站在最高的位置上,审视全局,这样才能控制好项目的总体。
说白了,你就是船长,要负责船的大方向,把握好宏观的度。
10.强调代码注释,并且要强调不是代码的功能开发完毕之后才叫做完了一个功能,而是测试通过后,才算OK。
您传说中做完的功能,一测试发现20多个bug,亲那不叫做完了。依然是没做完,并且这种人可以考虑踢出团队了。
11.需要引入专业测试人员进行白盒,黑盒测试,并且与开发组同步,需要前期编写出测试文档,包括测试点,测试计划等等。
测试力度不够,会直接影响你的项目的健壮性。这里说的测试不单单是功能测试,还有性能测试。通过专业的测试工具,例如loadrunner
或jmeter等等。
12.前期制定项目计划的时候,别定的那么紧张,把你的兄弟们都累死了,对你也没有什么好处,需要人性化一些。
13.项目经理尽可能的参加每一个会议,这样你才能够更有把握控制好项目。
14.项目大的话,需要放权给组员,让组员来管理某些模块。不要让两个组员的管理权限有交集。
【关于失控】
项目经理制定的工作计划以及工期安排,不知不觉中,项目经理失去了对项目的控制,就像开车的时候刹车失灵一样。
1.及时总结失控原因,对风险点的把控,一定要有预见性,且头脑一定要冷静,浮躁/吐槽/抓狂等是无法解决问题的。
2.如果是工作量估算错误,则需要不断的往项目里填人。
3.及时与管理者商讨对策,亡羊补牢,为时不晚。
4.不要悲观,因为悲观情绪是可以传染的,尤其是对于leader来说。 你可以假装,但是一定要让团队里的人看到,你们是积极向上的。
【其他】
杂七杂八的经验点积累,再多一点经验,就可以升级穿魔法长袍了。
1.穷人学技术,富人学管理。
2.如果您是自己创业开软件公司,您一定要接收一个现实,那就是甲方有可能不会给您结尾款,无论项目成功与否。
3.如果您选择了创业,您一定要记得,创业是一件非常痛苦的事情,成功也是非常痛苦的事情,可能会天天不睡觉,您确定是否要创业? 并且选择创业后,您将得到什么?又将失去什么?都应该好好想一想。
4.作为一个领导者,知识面一定要广,或者人脉广,不然在项目进行中时会捉襟见肘。
5.如果功能是对的外网,那么后台校验一定要加,前台的判断可以绕过去。
6.记住,钱不是一个人赚的,要学会分享。
7.以后的项目中,页面与类都不要写重名,不然用ctrl+shift+r的时候会很费劲,例如所有页面都叫find.ftl。
---------------------------------------------------------------------------------
下面是总结出来的APP项目开发流程:
项目流程:
0.初期需求调研
1.需求文档制定(粗粒度)
2.反馈给甲方需求文档(粗粒度)
3.签合同,制定项目计划,周期,进度安排等
4.与甲方连续碰UI,出UI迁移图(先)+UI效果图(后)让甲方拍板
4.需求文档完善(细粒度)
4.数据库设计(ER图+数据字典)
5.UI切图
5.预估风险点与技术壁垒,前行技术调研(无论是客户端还是服务端)。
5.开接口会议,制定接口(按照需求文档+UI+数据库设计)
6.接口开发+接口文档编写(做好单体测试web页面)
7.客户端进行开发(接口文档+UI切图+UI迁移图完善后,接口要优先于客户端开发完成)
8.客户端与接口联调测试
9.内部团队测试
10.甲方验收测试
11.修改bug以及代码评审
12.结项+部署+上线+运营维护
相关文章推荐
- IT人必备:实用项目管理系列订餐系统实例化教学(Java版,10年IT经验总结,涉及测试
- 项目管理心得:一个项目经理的个人体会、经验总结
- 项目管理心得:一个项目经理的个人体会、经验总结
- volvo平台管理系统项目经验总结
- java项目开发经验总结,值得收藏!绝对有用!
- 项目管理心得:一个项目经理的个人体会、经验总结
- SSH中的java项目经验一些总结
- 项目管理心得:一个项目经理的个人体会、经验总结
- java项目开发经验总结,值得收藏!绝对有用
- java项目开发经验总结,值得收藏!绝对有用
- java项目开发经验总结,值得收藏!绝对有用
- java项目开发经验总结,值得收藏!绝对有用
- java项目开发经验总结,值得收藏!绝对有用
- 一个公司管理之十 项目管理半年来的经验总结
- 对于项目管理半年来的经验总结 贴的回复
- 软件项目管理经验总结
- 项目管理心得:一个项目经理的个人体会、经验总结(转)
- 项目管理中的项目组成员间的信息交流经验总结
- 项目管理经验总结(2009-9-28)
- 20100712-16 考核项目之操作工培训管理系统 代码经验总结