成功都一样,失败各不同;失败的项目也许值得你警醒

目录

先来听一个故事:

二战期间,英国国防部发现参战的飞机难免挨上高射机枪的枪子儿,受限于飞机重量和成本,他们只能在一处安装装甲增强防御力。但是在位置选择上犯了难:应该把装甲装在什么位置?

数学家对战斗中返回的战机作了一项统计,发现39%的弹孔在机翼上,60%在机身,1%在发动机部位。于是他们给出答案:装在发动机部位。

国防部官员们不得其解:不该是弹孔最多的机身上吗?数学家说,统计已经很清楚了,发动机中弹的飞机,大部分都飞不回来了。个人认为成功不可复制,失败或可避免;所有的成功都不是必然的;成功都一样,失败各不同;失败的项目也许值得你警醒。

不久前遇到一个比较棘手的软件项目,为公司带来很大的麻烦,为了避免大家也重蹈覆辙,现在将个人心得与经验教训总结如下:

一、团队建设

1.1、注意高效的研发团队建设

不在多,在精,在强,每个人能独当一面,以人为本;智力密集型工作单个人的水平比劳动密集型工作更加突出。

1.2、稳定的团队

避免过快的人员更迭,反省公司制度。

1.3、PM非常关键

软件开发团队要稳定发展,他们的成功依赖于高效的信息传递和领导能力。精进高效的团队是公司最宝贵的财富。避免外行管理内行。

二、规范过程

2.1、合理的安排工作计划

有目的有计划的做事情,项目管理者监控项目计划进度,进度的把控比制定工作计划更难。项目计划做出详细合理的进度表,提高项目经理的计划意识,采用进度和计划严格一致,加强对计划、进度进行有效的评估。做出进度滞后的应对办法,把握主次。不要为计划而计划,把握粒度。

2.2、开发前制订开发规范

如功能设计思路、类的命名、窗体命名、变量命名、数据库命名、注释、风格、主色彩、辅助色彩等。

2.3、项目完成时注重归纳总结

勤于整理代码与文档,复用;对于开发者来说复用是终极目标,复用的最大敌人是变化。

2.4、使用源代码管理器

如git,开源免费的有coding.net、阿里云等。

2.5、制定项目失败计划

世界上没有任何事情是绝对成功的,要做好项目失败的准备,做最坏的打算,尽最大的努力。

2.6、使用一体化项目管理软件

含需求、设计、编码、测试、进度管理等功能。

2.6.1、项目管理工具能完成的功能

1. 需求管理:项目的需求变更,跟踪,控制

2. 资源管理: 项目的可利用的资源(人力,物力,财力)

3. 计划管理: 包括成员管理和权限分配,日程排定,工作时间管理,里程碑设置

4. 进度管理: 日历,工作流,项目路线图和Gantt甘特图

5. 测试管理: 项目软件缺陷Bug状态跟踪,反馈

6. 文档管理: 发布文档文件,存储文件,集成源代码管理与git,svn

7. 信息管理: 活动统计报表,项目报表的导入和导出功能,信息筛选,预警和邮件提示

8. 共享管理:技术分享,团队新闻,Wiki和论坛等功能

2.6.2、IT项目管理常用工具

0、ZenTaoPHP          轻量级的PHP项目管理开发框架,以开源的项目管理软件     

                 官网:http://www.zentao.net/

                 下载:http://www.zentao.net/download

1.Dotproject             基于php 免费开源

                 官网:http://www.dotproject.net/

2.Redmine                 基于Ruby和Rails框架 免费开源           
                      官网:http://www.redmine.org/
                        在线演示站点:http://demo.redmine.org/

3.Trac                       基于Python  代表有FogBugz   免费和商业 
                    官网:http://trac.edgewall.org/

4.MS Project           微软项目 C/S架构 项目单一,功能少        
                     官网:http://www.microsoft.com/project/en/us/default.aspx

5.Jira + Confluence      基于Java 收费模式 包含Bug追踪和Wiki      
                     官网:http://www.atlassian.com/software/jira/
                   在线演示站点:http://jira.fangwai.net/secure/Dashboard.jspa

6.ActiveCollab             基于php 曾经开源                        
                   官网:http://www.activecollab.com/

7.Basecamp               基于商业运作模式 曾经项目管理界老大       
                        官网:http://basecamphq.com/

8.BugFree                  国产软件 ,使用MS的软件开发流程规范

9.XPlanner                 采用极限编程开发(XP)流程                
                        官网:http://www.xplanner.org/

三、定位与需求

3.1、尽量做产品

不要做前后没有联系的项目(也就是公司没有任何可以复用的资源)、谨慎被多次转包的项目、小而精的项目、与现金、人事有关的项目。

3.2、抽象出项目的核心

对于大而全的项目把握住用户的痛点,找出系统的核心需求,分期,分批开发; 关键需求与用户共同画出产品原型。

3.3、采用多种收集需求的方式

制定有效的沟通制度,提高沟通意识,采取多方面的沟通方法,不要单一的口头沟通,采取有效的书面沟通,比如邮件、文件传递等方式,对于未及时收取邮件造成的损失责任归属。除了邮件外,重要文件需要电话提醒和回执等。与客户谈需求时可以录音、录视频、拍照等多种手段

3.4、不要过度收集需求

有时客户并不知道自己要什么,把可以分析出解决办法后让客户选择

3.5、尽量选择大项目

麻雀虽小五脏俱全,小项目谨慎选择

3.6、小步快跑做产品

完成一部分、测试一部分、验收一部分;迭代。。。迭代。。。

3.7、更换收费模式

可卖服务,卖产品,卖技术,卖运维等,换一种挣钱的思路

四、技术提升

4.1、注重技术提升

项目不忙时组织学习,写自己的技术博客,分享知识,关注各大技术论坛,如博客园,csdn,javaeye;有博客的程序员一般都不会太差;要实实在在的技术,不要被一些线下的活动拖累,名头很大的人不一定适合你。

4.2、打造公司的通用平台

系统中包含基础功能;简单功能应该通过平台自动生成,加快项目进度

4.3、积累源代码

关注开源社区,如github,oschina,codeplex,尽量让项目去匹配公司现有的资源,警惕白手起家的项目

4.4、不要盲目的选择新技术

更换系统架构,但也不推荐天天吃老本,建议隔代升级。不要跟风,技术选择项是不要考虑现在流行什么,而要考虑需要什么,适合什么。 一般的客户对你用什么技术实现是不关心的。

4.5、提高执行力

天下功夫唯快不破

4.6、学习英语提升开发能力

请猛击:《一种绝对提高开发水平的方法》

4.7、利用在线教育平台

http://www.maiziedu.com/

http://www.imooc.com/

http://www.jikexueyuan.com/

https://ke.qq.com/

4.8、技术分享

轮流、30分钟、每个人都有份、先准备并整理成博客笔记、分享干货

五、失败的教训

5.1、项目管理环境问题

5.1.1、不合适的项目组织结构

包括团队成员的配备问题、项目计划控制和协调机制生搬硬套PMP,不符合公司企业文化和体制机制、团队总是关注项目的忙碌而不是项目的成果、组织没有明确的授权,权责不匹配、喜欢照搬过去的项目经验来管理现在的项目,忽视了项目的唯一性、缺乏高层领导的支持和投入;

5.2、项目管理过程中问题

5.2.1、不胜任的项目经理

包括项目经理不具备业务知识,行业知识和项目知识,缺乏软技能,面对压力无法做出关键决策,无法看到问题的本质,无法从全局提出系统性解决方案从而推动项目的发展,不能随时就环境做出调整等;

5.2.2、漠视或者无视项目的本质

包括没有整体思路、对项目各个组成部分以及他们之间的联系没有整体把握、软硬件无法进行整体的思考、考虑问题经常是头疼医头,脚疼医脚、人为的把项目进行分段,从而没有预见项目的整体性风险等;

5.2.3、项目管理被滥用或者错误运用

脱离项目实际,滥用各种管理工具、过分重视工具而忽视团队的建设、为了管理而管理忽视项目成果、项目经理不关注项目人员的心理素质和能力而一味强调管理技巧和工具、用到的管理太复杂或者太简单而不适合具体的项目、总是认为项目管理是一成不变,企图一套流程打天下的、只关注项目报告而无视项目的实际情况;

5.3、计划过程中的问题

5.3.1、没有良好的沟通渠道设计;

5.3.2、不主动去激发用户参与项目的热情;

5.3.3、靠主观感觉盲目制定项目计划;

5.3.4、在不了解项目具体情况下对项目盲目下定义;

5.3.5、计划资源把一切想的太美好,主观性强;

5.3.6、靠个人感觉来分派工作而不是客观的评估每个人的能力匹配程度;

5.3.7、对变更没有实质管理,更多是体现在文档上而不是实际工作中;

5.3.8、胡乱控制项目节点,而不是从项目特点本身出发;

5.3.9、缺乏对项目失败的定义以及评估失败风险;

5.3.10、项目已经失败的客观现实面前缺乏终止项目的管理机制;

5.3.11、过分看重项目的当前经济价值,利令智昏;应该注意项目的附加值,复用价值等。

5.3.12、项目开发周期多数情况被低估

六、总结

总之如果您加强项目管理意识、注意团队建设,规范开发过程、找准个人与公司的定位、不断提升开发技术与积累资源、善于总结失败教训,这样将大大提高您项目的成功率。

成功不可复制,失败或可避免;

逃避不一定躲得过,面对不一定可怕;

时间花在哪里,你的成就就在哪里;

当然,项目管理在现实中存在多样性与复杂性,我说的也许有些不对,欢迎大家补允,我随时添加,谢谢!

原文:http://www.cnblogs.com/best/p/6859733.html

时间: 2024-11-10 22:42:47

成功都一样,失败各不同;失败的项目也许值得你警醒的相关文章

Linux下,Tomcat启动成功,发现ip:8080访问失败

Linux下,Tomcat启动成功,发现ip:8080访问失败 Chasel_H 2018.04.23 20:47* 字数 195 阅读 566评论 0喜欢 3 相信很多人都和我一样,在Linux环境下安装Tomcat并成功启动却没法通过ip:8080却没有访问成功,其实原因是因为Linux防火墙默认是关闭的. 若想成功访问,有两种方法:一是关闭防火墙,另外就是让防火墙开放这个端口. (1)关闭防火墙: 在终端执行  service iptables stop  命令 ,但我们不推荐使用此方式

Linux OpenCV读取视频失败,cvCreateFileCapture失败的解决

背景: 最近想在嵌入式平台上开发QT+Opencv,无料PC机上编写的OpenCV程序老是打不开视频. 开始提示:OpenCV Error: Bad argument (Array should be CvMat or IplImage) in cvGetSize 但是没有用错.考虑到可能没有打开视频,以作为cvGetSize的参数. 以前程序运行没有问题,最近电脑进行了一些FFMPEG/ZLIB等的交叉编译,就不能运行了. 解决方法: 网上搜索,发现是因为ffmpeg没有编译到opencv里.

致首次创业者:如果做到了这三点,想不成功都难(转)

致首次创业者:如果做到了这三点,想不成功都难 2015-12-27 21:14 24人阅读 评论(0) 收藏 举报 分类: 互联网(2) 创业(4) 编者按:Rob Hayes 是 First Round 的合伙人,主要负责投资早期创业项目.经过十几年投资创业项目和自己创业的经历,他对创业有了深入的认识.他在这篇文章中给那些首次创业的创业者们分享了 有关创业的三点经验:全心投入招聘,积极融资.确保公司有足够多的现金流,确保公司有一个长远的目标. Aoron Patzer 曾经走到了事业的十字口路

创业不只有风险 创业成功都是有原因的

对于每个人的人生来讲创业是必然的吗?显然,这个逻辑是荒谬的,一方面不是每个人都适合创业,另一方面大多数创业项目都是失败的. 好友子超在搜狐IT组织了一次关于创业的沙龙,因为时间关系我没能参加,但是我这里也经常有人在微信上问我互联网创业的方向或者什么项目好,在现在这个互联网趋势下自然是在移动互联网方面创业在将来更有价值.创业是没有问题,有项目也没有问题,只是很多刚毕业的小伙伴们说创业就创业,有没有考虑创业的风险,或者创业失败又当如何呢? 是以,今天这篇文章,本想说说移动互联网移动创业趋势方面的,现

Java 快速失败( fail-fast ) 安全失败( fail-safe )

原文:http://www.cnblogs.com/ygj0930/p/6543350.html 快速失败( fail-fast ):当你在迭代一个集合的时候,如果有另一个线程正在修改你正在访问的那个集合时,就会抛出一个ConcurrentModification异常. 在java.util包下的都是快速失败. 安全失败( fail-safe ):你在迭代的时候会去底层集合做一个拷贝,所以你在修改上层集合的时候是不会受影响的,不会抛出ConcurrentModification异常. 在java

Java笔记-快速失败and安全失败

参考资料:http://blog.csdn.net/chenssy/article/details/38151189 快速失败 fail-fast 安全失败 fail-safe java.util包下面的所有的集合类都是快速失败的 java.util.concurrent包下面的所有的类都是安全失败的 快速失败的迭代器会抛出ConcurrentModificationException异常 安全失败的迭代器不会抛出ConcurrentModificationException异常. 快速失败 是

7.2 hadoop失败:任务失败、application master 失败、节点管理器失败、资源管理器失败

1.1  失败 1.1.1         任务失败 Map和reduce任务失败:Map或者reduce任务有缺陷,抛出异常,JVM会会向applicationmaster 发出错误报告,applicationmaster将任务标记为failed,将错误报告写入用户日志,释放资源. Stream任务失败:Streaming任务以非零状态码退出,则标记为失败,属性stream.non.zero.exit.is.failure属性设置为true,才会触发. Jvm失败:Jvm软件缺陷突然退出,节点

同样是学编程,别人成功转行Python,你却失败选择放弃,问题在哪?

随着互联网这几天不断的发展,Python也跟着火了起来,Python是一门简洁易学的一门编程技术,比其他的编程语言来说门槛比较低.而且Python工程师的薪酬比较高,一般Python实习生月薪5-7K,有了2年工作经验,月薪就1W出头了.所以很多人开始学Python,然后投入Python行业.一般应届生月薪¥7-9k,1-3年月薪¥1-3W,3-5年月薪¥3-5w,5-10年月薪¥5-8w,10年以上月薪¥8-10w左右,所以很多人开始学Python,然后投入Python行业. 目前信息化产业发

Java的快速失败和安全失败

一:快速失败(fail-fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除.修改),则会抛出Concurrent Modification Exception. 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量.集合在被遍历期间如果内容发生变化,就会改变modCount的值.每当迭代器使用hashNext()/next()遍历下一个元素之前,都会检测modCount变量是否为expectedmodCount值,