`
fangang
  • 浏览: 875600 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
311c4c32-b171-3767-b974-d26acf661fb2
谈谈用例模型的那些事儿
浏览量:38566
767c50c5-189c-3525-a93f-5884d146ee78
一次迭代式开发的研究
浏览量:68730
03a3e133-6080-3bc8-a960-9d915ed9eabc
我们应当怎样做需求分析
浏览量:409611
753f3c56-c831-3add-ba41-b3b70d6d913f
重构,是这样干的
浏览量:91042
社区版块
存档分类
最新评论

一次迭代式开发的研究:Where you are

阅读更多
其实做一个项目经理真不是一个好的职业,它需要太多的千锤百炼才能修炼出来。这不仅需要反复经历“失败-总结-再失败”的轮回,而且需要有一颗无比坚强的心,能够在无数次经历无比艰难并且令人沮丧的时刻而能坚持不懈、毫不气馁。一个项目经理就像一位将军。将军百战死,而项目经理呢,经历无数项目以后沉淀下来的,更多的是疲惫与沧桑。

但凡一个好的项目经理都是要经过一次又一次项目失败的教训,似乎只有失败才能留给他们更深刻的教训与更巨大的提升。当然,这种失败可大可小。即使一些项目最终是成功了,也只是结果的成功,而项目进行过程中的失误,以及因此带来的成本的提高,过程的曲折,同样是一种失败。项目管理之难,作项目经理之难可见一斑。

项目管理之难,其真正的难处就在于,要将其做好,需要注意的地方实在太多。任何一个方面没有做好,都会造成项目的失败。文章之初提出的软件开发的风险,实质就是软件需求的风险,在项目管理中就是需求管理。需求管理的失败是大多数项目失败的根本原因,这其中包括需求理解的准确性、需求变更的管理,等等。这篇文章讨论迭代式开发,就是给大家需求管理带来一种思路。

而另一个非常重要的方面就是项目进度管理。当项目计划制订出来以后,就必须按照项目计划进行,任何的项目延期都会是一种巨大的风险。如何避免项目延期,是项目成功的关键因素。作为项目经理,如何避免项目延期呢?那就是在项目进行的任何时刻都要清楚地知道“where you are”,让用户清楚地知道“where you are”。

where you are,对于我们来说就是项目进行到什么程度了。我们要随时问我们这个问题,随时评估项目进度的偏差,及时进行调整,才可能使项目如期交付。如何做到这一点呢?我们制订了详细的项目计划,计划中将每一项工作的进行时间都制订出来。这个计划就是我们的航标,将计划与进度比较,就可以随时清楚项目进度的偏差。同时,制作Burn-Down Table,随时关注还有多少工作没有完成,还剩多少时间,就可以从另一个角度直观地认识项目的进度。

当需求发生变更时,必然造成工作量的增加。重新调整我们的项目计划,就如同重新调整我们的航线。这还包括重新调整我们的人员、我们的分工,以及我们的工期,使其符合实际情况。然后我们就可以按照新的航线前进了(以往很多项目的失败,正是因为发生变更以后还是按照原有的航线前进,其风险可想而知)。

完成项目计划修改的同时,不要忘了我们的Burn-Down Table。我们要重新评估我们的剩余工作量和剩余时间,绘制到当前的时间上。只有这样,我们才能随时知道“where you are”,才能有效地监控项目进程。

那么,为什么要让用户清楚地知道“where you are”呢?一个软件项目的进行其实不光是我们自己的事情,也是客户的事情。项目一旦进行,其实客户与我们是绑在一根树上的蚂蚱。让客户知道我们的进度,能增加客户对我们的信任感;让客户知道我们的难处,会让客户与我们共同想办法去解决问题,去规避项目风险。这样做,其实对大家都有好处,何乐而不为呢?

所以,迭代式开发对有效避免软件开发的风险,作用是巨大的。但问题是,如何在项目中实际运用起来,挑战也是巨大的,很多难题需要解决,我们只有不断上下而求索,总结、总结、再总结••••••

一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(全文终)
分享到:
评论
5 楼 lwqenter 2012-04-10  
如果楼主能提供项目估算表,项目进度表和剩余工作量表的案例给我们,大家就能更好理解啊,
4 楼 fangang 2012-04-10  
以前在主页上就有,现在被iteye改没了,

http://fangang.iteye.com/blog/pdf
3 楼 lwqenter 2012-04-09  
楼主的文章很好很强大,小弟再次膜拜

这篇文章我已经制作成电子书放在“我的书籍”中方便大家下载

-----在哪里下载啊,没找到“我的书籍”,可以给个连接吗
2 楼 enjoyaday 2012-02-15  
经验之谈,好文章,收藏慢慢看!
1 楼 fangang 2011-11-11  
这篇文章我已经制作成电子书放在“我的书籍”中方便大家下载

相关推荐

    RUP迭代式开发全中文资料

    RUP迭代式开发全中文资料---强烈推荐

    NEWTON.zip_matlab牛顿迭代_matlab迭代程序_site:www.pudn.com_牛顿迭代_牛顿迭代求解

    1. **牛顿迭代法基础**:牛顿法基于函数在某一点的切线与x轴的交点作为下一次迭代的近似解。设我们要找的是函数f(x)的根,即f(x)=0。在点x_n处,我们有泰勒展开的第一阶近似: f(x) ≈ f(x_n) + f'(x_n)(x - x_n) ...

    迭代软件开发流程.pdf

    整个迭代过程包含了需求、设计、实施(编码)、部署、测试等各种类型的开发活动,迭代完成之后需要对迭代完成的结果进行评估,并以此为依据来制定下一次迭代的目标。 迭代软件开发流程具有以下特点: 首先,迭代...

    迭代化软件开发

    每个阶段性目标(即一次迭代)都包含了一系列开发活动,如需求分析、设计、编码、测试等。每个迭代结束后都会对完成的结果进行评估,以便为下一次迭代提供反馈和调整方向。 迭代化开发的主要特点包括: 1. **允许...

    迭代软件开发作业流程.doc

    2. 逐步集成元素:在迭代式方法中,集成能够说是连续不停,每一次迭代全部会增量式集成部分新系统功效,要集成元素全部比过去少得多,所以工作量和难度全部是比较低。 3. 尽早降低风险:迭代化开发关键指导标准就是...

    迭代式迭代式

    迭代式迭代式迭代式

    Rational迭代化软件开发

    Rational迭代化软件开发强调将整个项目分解为一系列小的、可管理的迭代周期,每个周期都包含计划、设计、实现、测试和评估等关键阶段。这种方法的核心思想是通过逐步完善来构建软件,而不是一次性完成所有工作。 ##...

    迭代软件开发流程.doc

    整个迭代过程包含了需求、设计、实施(编码)、部署、测试等各种类型的开发活动,迭代完成之后需要对迭代完成的结果进行评估,并以此为依据来制定下一次迭代的目标。 与传统的瀑布式开发模型相比较,迭代化开发具有...

    软件工程中的迭代开发方法.pptx

    ### 软件工程中的迭代开发方法 #### 第一章:软件工程概述 - **软件工程定义**: - 软件工程是一种系统化的、规范化的、可度量化的方法论,旨在指导软件的开发、维护及运行过程。 - 其目标在于提升软件的质量、...

    C语言实现 求二项式各项系数(迭代,递归)

    本文将围绕“C语言实现求二项式各项系数(迭代,递归法)”这一主题,深入探讨如何利用C语言通过迭代和递归两种方法来计算二项式系数,这不仅体现了C语言的强大功能,也展示了编程中不同算法的运用与对比。...

    牛顿迭代法求一元三次方程

    牛顿迭代法是一种高效求解方程根的数值方法,尤其适用于解决一元高次方程。该方法基于切线逼近的思想,通过不断迭代来逐步接近方程的实根。在处理一元三次方程时,牛顿迭代法能够找到所有可能的实根,而不仅仅是其中...

    产品迭代开发流程图

    ### 产品迭代开发流程详解 #### 一、项目立项与规划 在进行任何具体工作之前,首先要明确项目的立项。这一步骤通常涉及到对项目背景、目标、预期成果以及潜在风险等因素的综合考量。项目立项阶段完成后,需要进一步...

    RUP迭代开发过程

    RUP迭代开发过程,喜欢研究面向对象的软件开发模式的朋友可以看看。

    牛顿迭代法求二元一次方程C++代码及其软件

    在本项目中,我们采用C++编程语言,并结合Qt库来实现对二元一次方程的牛顿迭代法求解,同时通过图形化界面展示迭代过程。以下是关于这个项目的关键知识点: 1. **牛顿迭代法**: 牛顿迭代法是基于切线近似的思想,...

    软件工程中的迭代与增量开发模型.pptx

    迭代与增量开发模型是软件工程中常用的开发方法之一,通过多次迭代和逐步增加新功能的方式来完成项目。这种模型适用于需求不明确或需求频繁变化的项目,也适用于大型项目的分阶段开发。 迭代与增量开发模型的具体...

Global site tag (gtag.js) - Google Analytics