现在的位置: 首页 > 综合 > 正文

避免软件失败的7个关键实践——来自项目管理群的讨论

2013年08月25日 ⁄ 综合 ⁄ 共 3921字 ⁄ 字号 评论关闭



避免软件失败的7
个关键实践

 

避免软件失败的7
个关键实践

实践
1.
邮件列表:把邮件列表作为主要的团队交流途径

实践
2.
配置管理:

实践
3.
需求管理:持续地整理、记录和跟踪用户的需求

实践
4.
编码规范:遵循基本的编码规范书写代码

实践
5.
缺陷跟踪系统(
BTS
):使用
jira

mantis

butterfly

clearquest
等工具来管理测试中的缺陷

实践
6.
计划和周进度会议:制定计划并每周审查本周的成果和课题

实践
7.
书面表述:准确完整地描述需求,成果和课题

 

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

今天先和大家分享避免软件失败的
7
个关键实践,富士通的一个专家题目

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

首先,问问大家,软件失败如何定义

hz_wm-
上海说
:

失败就是没满足客户需求

BoardPang-IT-PL-
苏州说
:

软件失败没有满足主要干系人的期望

BoardPang-IT-PL-
苏州说
:

不一定是客户

胡勇光说
:

失败就是没有为公司创造利润

hz_wm-
上海说
:

没有达到预期目的

flytoegg-
技术主管
-TIANJIN

:

我觉得软件失败得分技术失败还是需求失败
~~
!!

一点红
-pm-it-shanghai

:

是没有达到预期目标

晓波
-
失业
-
上海说
:

失败?就是无法达到项目的目标

flytoegg-
技术主管
-TIANJIN

:

,同意没有达到项目预期的

BoardPang-IT-PL-
苏州说
:

我们的客户只在乎进度,不在乎进度和成本

只在乎质量

flytoegg-
技术主管
-TIANJIN

:

需求随时的变,也是造成失败的原因

flytoegg-
技术主管
-TIANJIN

:

我这就有架构设计缺陷导致项目失败的

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

所谓“失败”是相对的定义,至少在中国是这样

我们没有
100%
满足干系人需求,不一定代表失败

有时候,至少能够“糊弄一下”,不出大问题

有时候,至少能够“抵挡一时”,能勉强使用

项目并不像产品一样,并不需要达到非常高的品质

【税务、银行系统项目除外】

有时候,并不需要完美地实现所有的功能

这样一来,我们有两个朦胧概念

1
、需求要尽力而为,如有偏差要做好沟通,包括变更

2
、做好客户关系

这里说的需求是各类需求

那么,作为技术人员的
PM
和团队,如果在这个过程中避免项目失败呢

富士通的蔡总,有
7
个实践

架构设计更是自己的事情了,对客户而言只有需求

实践1.
邮件列表:把邮件列表作为主要的团队交流途径

前提是:摒弃仅以口头为主的交流方式,要用邮件备忘

口头的东西,有以下的缺陷:

容易产生误解;

容易遗忘;

无法对成果进行确认;

让我们:

白纸黑字,将功能(
Feature
),约定(
Commitment
),日程(
Deadline
)明确地写下来吧;

其中,
Wiki

BBS
等也是辅助的共享的手段。既是交流,也是证据。

好记性不如烂笔头

实践2.
配置管理:

对代码
/
测试程序和文档使用
CVS
管理

一般的公司对代码会有版本管理,但对文档就差一些了,而文档的版本恰恰是分歧的关键

CVS
配置管理的重要性,有哪些?很显然,

各归其位,变更有序;

清晰显示团队开发的所有代码;

实现测试数据管理自动化;

无需担心文件版本,文件名称的变更

但真正做到的很少

特别是,文档、测试数据的版本管理

例如,你提交的项目客户不认可,你的场景测试数据却不是原来的

谁都不会认同你

这里提及的
7
个实践都是最基本,但却做不好的地方

实践3.
需求管理:持续地整理、记录和跟踪用户的需求

这个说的简单,什么是客户需求

真实准确地把握客户的需求很难

例如,
UI
每个人的看法还不一样的

尽量做到,“以客户为中心”,真实准确“抽引”出需求;

工具是辅助的也是必须的,但核心是执行

可以使用需求管理工具
(ExcelorMantisorDoors)

Mantis
是开源的

还有
IBM

ClearQuest

商业的都比较昂贵

实践4.
编码规范:遵循基本的编码规范书写代码

编码规范很基础,但有的公司编码规范有
50
条,基本不可执行了、太复杂、人记不住的

通常编码规范容易被忽视

要避免源程序当做“草稿”

源程序生命周期高于开发周期的,要尝试让他人阅读你的源程序

以免自己也像后浪骂前浪一样,写得是狗屎啊

拿一份印度的代码,高中生的,中国的程序员基本都会汗颜

对于前人太烂的代码,可以考虑敏捷的一些方法,尝试一下“代码重构”的方法

MartinFowler
是重构的鼻祖,很实践的方法,大家可以从书店找到他的书

实践5.
缺陷跟踪系统(BTS
):使用jira
mantis
butterfly
clearquest
等工具来管理测试中的缺陷

避免
BUG
反复出现;

快速及时找到
BUG

管理测试生命周期中各种烦心事

特别是客户提的问题,一定要反馈到这个系统上

用项目交付后的
bug
率来考核测试人员,用测试
bug
率考核开发人员,一切质量问题都迎刃而解

有的公司我知道,例如华为,一个客户反馈的
bug
,从一线到项目负责都会直接扣
500
以上的工资

实践6.
计划和周进度会议:制定计划并每周审查本周的成果和课题

避免失败的基本要素:

过分的乐观是
IT
开发早期的致命伤;

当心小偏差造成大问题;

时刻关注潜在的风险和危机;

每周一次的自我检查和诊断(
5W2H

whatwherewhenwhyhow
。。。

要细致
review
不是简单的例会问一遍

实践7.
书面表述:准确完整地描述需求,成果和课题

程序员可以不注重文档,项目经理必须把文档当做基本功

重视文档的技术含量

需求文档、设计文档、阶段点的文档汇报等都体现的功底

将长句简化为短句,不要双重否定

文档就是用于理解的,而我们经常看到的文档是一段都是逗号,最后一个句号。

给评审人、领导设置障碍啊,呵呵

以上我们提了避免失败的
7
个实践,我们从正面谈持续成功的策略有哪些?

1)
开发的过程化

2)
标准化和分工

3)
自动化方法:自动化测试
/
自动
build
环境

4)
知识总结:留下知识和数据。

5)
人员能力的训练:不仅仅是过程

6)
经验的持续积累:强大的体制力量

ok
以上就是这个话题的分享结果

大家交流

 

晓波
-
失业
-
上海说
:

强大的体制力量?

这个是说?

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

系统以往成功经验

[
晓波
-
失业
-
上海
]
这个持保留意见

说说

晓波
-
失业
-
上海说
:

有的公司我知道,例如华为,一个客户反馈的
bug
,从一线到项目负责都会直接扣
500
以上的工资

对于这个例子的保留

如果公司不允许犯错,

个人成长就太困难了

刚才有为朋友说失败了四个项目

要是在华为,不知道是什么样的惩罚了。

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

通常压力没有正想反馈,是不足以推动的

kingship-dz-tj

:

好像移动那些客户肯本就不会反应
BUG
,看看移动,联通,网通的网站就知道了,根本就没
QA

QC

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

客户考核的是测试是否全面,开发人员有连带责任

flytoegg-
技术主管
-TIANJIN

:

,华为的管理肯定是严格的
~~

richard_tl_sh

:

上面好像没有讲teambuilding

hz_wm-
上海说
:

我还是赞同华为的做法的

wangxuesen@yahoo.com.cn(E-mailAddressNotVerified)

:

移动的人不管东西好坏反正做好了他们就有奖金,坏的话找供应商就好

it01-
假冒
pm-huabei

:

我也赞同但是要上头去推动

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

不同企业不一样,国字号的就不要提了

hz_wm-
上海说
:

而且客户反映的那个
bug
肯定也是给客户带来损失的

wangxuesen@yahoo.com.cn(E-mailAddressNotVerified)

:

管理太严对进度和工程师的积极性有影响

一点红
-pm-it-shanghai

:

如果
bug
从客户方面反馈
,
那么团队必须都要负责任

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

要辩证看,项目的正向激励更大

晓波
-
失业
-
上海说
:

richard_tl_sh

:

上面好像没有讲teambuilding

眼光很独到

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

例如进度提前了,奖金是上万的

晓波
-
失业
-
上海说
:

日企有这个文化吗?不知道

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

奖多罚少,不能仅看局部

没有客户的反馈作为考核,客户满意是不现实的

teambuilding

1)
开发的过程化

2)
标准化和分工

3)
自动化方法:自动化测试
/
自动
build
环境

4)
知识总结:留下知识和数据。

5)
人员能力的训练:不仅仅是过程

6)
经验的持续积累:强大的体制力量

晓波
-
失业
-
上海说
:

客户反馈很重要。不过更重要的是来反思中间的问题

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

4

5

6
都涉及

晓波
-
失业
-
上海说
:

也就是通过
qa
做持续改进

目标是消灭缺陷,

手段比较直接了。

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

当然,这
7
点是蔡总最看重的,不一定成熟。他们是
CMMI5
早期企业

hz_wm-
上海说
:

目标应该是消灭缺陷发生的原因

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

持续改进不受影响,两条腿走路么

chinamath(
海茶
)-Sr.SE-
北京说
:


7
个实践总结的挺好,我们公司还真就是这么做的,所以项目控制的都还好,目前还没有出现失败的项目。我几年前参与过一个失败的项目,现在回想,当时还真没有按这
7
个实践做。

pharos
【谷雨霖】
-cto-
北京【招聘
java
工程师】说
:

不能因噎而费食

也不能没

抱歉!评论已关闭.