您的位置:首页 > 编程语言 > Java开发

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.结项+部署+上线+运营维护
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: