惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
Schneier on Security
Schneier on Security
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Webroot Blog
Webroot Blog
Project Zero
Project Zero
Google Online Security Blog
Google Online Security Blog
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
Hacker News: Ask HN
Hacker News: Ask HN
PCI Perspectives
PCI Perspectives
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News | PayPal Newsroom
Help Net Security
Help Net Security
The Hacker News
The Hacker News
H
Heimdal Security Blog
O
OpenAI News
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 叶小钗
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security Affairs
P
Proofpoint News Feed
S
Secure Thoughts
腾讯CDC
Google DeepMind News
Google DeepMind News
量子位
罗磊的独立博客

博客园 - 风满袖

如何进行有效的沟通(二) 如何进行有效的沟通(一) SOA——概念 (转)Locale 详解 A XMLBean Tip 在Weblogic8.1.4服务器上安装Alphablox8.4 BI相关的术语 开源BI系统简述 如何收集项目需求 Prefactoring——Guidelines Prefactoring——Introduction Create C++ Object Dynamically MVP——Model-Viewer-Presenter AJAX Secutiry and AJAX Applications Accessible -- Many Tutorials and Articles A NHibernate Helper Kit Apache——Config WebDAV 3D Desktop Some Funny Development Methodologies -- XXX Driven Development Why I hate Web 2.0/AJAX? Here are some reasons...
Success/Failure Criteria for Software Projects
风满袖 · 2006-07-07 · via 博客园 - 风满袖

Success/Failure Criteria for Software Projects

Introduction

什么是软件项目成功或失败的标准?对此,可能每个人都有自己的观点。一个软件项目如何才能成功?需要具备哪些要素?比如出色的开发者,正规的开发流程、细致的需求、UML、有效的风险管理、周全的计划、明确的商业目标、频繁的评估和回顾。记得以前看《软件工艺》的时候,为书中新颖独特的观点所深深吸引,虑及自己所经历的项目,发现很多地方印证了书中的观点。软件工艺强调人的作用,不过,它似乎并没有改变大多数人心中软件工程的地位。很多PM还是在对制定“计划”乐此不疲,费尽心机想导入某种正规的“Process”,想尽办法去进行“风险管理”,强调“明确需求”;很多设计人员整日抱着UML,画着各种“Diagram”……可是现实世界发生的事情可能令我们感到困惑甚至吃惊。

A Study

有位澳大利亚的教授研究了400个美国、澳大利亚和智利的软件项目后,得出一些惊人的结论,大致如下(斜体部分是我的看法):

1、  大多数没有进度表的项目最后成功了。

这的确令人感到惊讶,没有进行计划安排的项目居然能成功,要么是组员比较优秀,要么项目比较小,容易达成目标。

2、  需求对于项目的成功是需要的,但是在项目早期并非必须的。

通常我们期望需求得到得越早越好……

3、  没有明确的需求,项目常常也能成功地继续开展下去。

就我的经历而言,没有明确的需求是很正常的事情,特别是做产品的时候,往往还不知道最后的产品应该具有哪些特性。如果是做具体的项目,我则期望需求越明确越好。但是需求总是会变化,team需要对客户的反馈有能力作出及时的调整。

4、  需求方法论的选择并不重要,UML没有什么帮助。

我是UML的热爱者,喜欢使用UML来表达我的想法,表达设计,和组员进行交流。不过事实表明,UML只是一部分人(喜欢可视化的图表的人)的工具。对于表达需求来说,UML的确没有什么用,Use-Case Diagram就是几个用例(椭圆、连线和角色),看了之后你能对需求了解多少呢?还是看文字描述的Use-Case比较直接和准确。但我相信使用UML表达设计是很好的做法。

5、  使用某开发方法论是成功的要素,特别是它适合我们的应用的时候。

的确如此,适合我们的过程就是最好的过程。国内有很多企业都使用CMM/CMMI6SigmaRUP甚至XP,不过大多数的软件企业还是没有progress。即使有些企业获得了CMM/CMMI的认证,执行中也常常是留于表面。

6、  很少有项目使用风险管理,而且这些项目也很少管理其风险。

事实如此,但并不说明风险管理不值一提,它还是很重要的。公司要规避风险,项目当然要规避风险。

7、  很少有能坚持进行频繁地评估和回顾的,几乎总是在成功的项目中才做到了。

我认为进行评估是规避风险的一个具体做法。比如对架构设计进行评估,就是为了从技术上尽量降低项目失败的可能性。但这个评估和回顾应当是在良好的气氛中进行,适时变化。

8、  ……

该研究还提出了一些预见(似乎是众所周知的):

  • Success comes from a culture that investigates and deals with problems

最赞同的一点。

  • The vision for the project (its business goals) must be shared among all project personnel, especially the project manager
  • Project managers should be involved in the estimation activity
  • Project managers should be good at customer and developer communication; they need not be good at the technology

这点可能会有争议,项目经理到底有无必要精通技术?

更多内容请看原文