其实做一个项目经理真不是一个好的职业,它需要太多的千锤百炼才能修炼出来。这不仅需要反复经历“失败-总结-再失败”的轮回,而且需要有一颗无比坚强的心,能够在无数次经历无比艰难并且令人沮丧的时刻而能坚持不懈、毫不气馁。一个项目经理就像一位将军。将军百战死,而项目经理呢,经历无数项目以后沉淀下来的,更多的是疲惫与沧桑。 但凡一个好的项目经理都是要经过一次又一次项目失败的教训,似乎只有失败才能留给他们更深刻的教训与更巨大的提升。当然,这种失败可大可小。即使一些项目最终是成功了,也只是结果的成功,而项目进行过程中的失误,以及因此带来的成本的提高,过程的曲折,同样是一种失败。项目管理之难,作项目经理之难可见一斑。 项目管理之难,其真正的难处就在于,要将其做好,需要注意的地方实在太多。任何一个方面没有做好,都会造成项目的失败。文章之初提出的软件开发的风险,实质就是软件需求的风险,在项目管理中就是需求管理。需求管理的失败是大多数项目失败的根本原因,这其中包括需求理解的准确性、需求变更的管理,等等。这篇文章讨论迭代式开发,就是给大家需求管理带来一种思路。 而另一个非常重要的方面就是项目进度管理。当项目计划制订出来以后,就必须按照项目计划进行,任何的项目延期都会是一种巨大的风险。如何避免项目延期,是项目成功的关键因素。作为项目经理,如何避免项目延期呢?那就是在项目进行的任何时刻都要清楚地知道“where you are”,让用户清楚地知道“where you are”。 where you are,对于我们来说就是项目进行到什么程度了。我们要随时问我们这个问题,随时评估项目进度的偏差,及时进行调整,才可能使项目如期交付。如何做到这一点呢?我们制订了详细的项目计划,计划中将每一项工作的进行时间都制订出来。这个计划就是我们的航标,将计划与进度比较,就可以随时清楚项目进度的偏差。同时,制作Burn-Down Table,随时关注还有多少工作没有完成,还剩多少时间,就可以从另一个角度直观地认识项目的进度。 当需求发生变更时,必然造成工作量的增加。重新调整我们的项目计划,就如同重新调整我们的航线。这还包括重新调整我们的人员、我们的分工,以及我们的工期,使其符合实际情况。然后我们就可以按照新的航线前进了(以往很多项目的失败,正是因为发生变更以后还是按照原有的航线前进,其风险可想而知)。 完成项目计划修改的同时,不要忘了我们的Burn-Down Table。我们要重新评估我们的剩余工作量和剩余时间,绘制到当前的时间上。只有这样,我们才能随时知道“where you are”,才能有效地监控项目进程。 那么,为什么要让用户清楚地知道“where you are”呢?一个软件项目的进行其实不光是我们自己的事情,也是客户的事情。项目一旦进行,其实客户与我们是绑在一根树上的蚂蚱。让客户知道我们的进度,能增加客户对我们的信任感;让客户知道我们的难处,会让客户与我们共同想办法去解决问题,去规避项目风险。这样做,其实对大家都有好处,何乐而不为呢? 所以,迭代式开发对有效避免软件开发的风险,作用是巨大的。但问题是,如何在项目中实际运用起来,挑战也是巨大的,很多难题需要解决,我们只有不断上下而求索,总结、总结、再总结••••••
- 浏览: 146007 次
- 性别:
- 来自: 广州
最新评论
-
lvliang169:
码农通常会被亲戚、家人、朋友认为是修电脑的
深有同感啊、、、、 ...
关于程序猿,你不知道的15件事
相关推荐
以下是关于JAVA设计模式中提及的四种模式——工厂模式、代理模式、迭代器模式以及责任链模式的详细说明。 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建...
迭代器模式 迭代器模式是23种设计模式之一,属于行为型模式。它提供了一种访问聚合对象元素的方式,而不需要暴露该对象的内部实现。迭代器模式的主要目的是让开发者能够轻松地遍历聚合对象中的元素,而不需要关心...
迭代模式是一种行为设计模式,它允许我们通过统一的接口遍历集合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,迭代器模式被广泛使用,尤其是在集合类库中,如ArrayList、LinkedList等。下面我们...
迭代器模式(IteratorPattern)是设计模式中的一种行为模式,它提供了一种顺序访问聚合对象元素的方法,同时又不暴露其底层表示。这种模式允许我们遍历集合对象的元素,而无需暴露其内部结构。在Java、C#等面向对象...
迭代器模式是一种设计模式,它在软件工程中扮演着重要的角色,特别是在处理集合或容器类对象的遍历操作时。这种模式提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,...
迭代器模式是软件设计模式中的一种行为模式,它在编程中扮演着重要的角色,尤其是在处理集合数据时。迭代器模式的核心思想是提供一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式使得用户可以在不...
迭代器模式是软件设计模式中的一种行为模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以方便...
迭代器模式是软件设计模式中的一种行为模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以方便...
在这个主题中,我们主要探讨了如何利用组合模式(Composite Pattern)构建二叉树,并通过迭代器模式(Iterator Pattern)来实现对树的遍历,包括前序、中序和后序遍历。这些是设计模式中的经典应用,对于理解和掌握...
总结来说,迭代器模式是一种强大的工具,它为遍历聚合对象提供了一种灵活且解耦的方式。通过理解和应用迭代器模式,开发者可以编写出更易于维护和扩展的代码,同时保持代码的整洁和模块化。在“设计模式之迭代器模式...
迭代器模式是一种设计模式,属于行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以...
迭代器模式是一种行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象编程语言中,迭代器模式被广泛应用于集合类库,如ArrayList、LinkedList等。这个"迭代器模式demo...
10. **技术债务**:迭代总结还会关注技术债务,即为了短期目标而牺牲长期维护性和扩展性的做法。团队需要计划如何偿还这些债务,以确保产品的可持续发展。 11. **数据驱动决策**:总结可能会包含关键绩效指标(KPIs...
### (行为型模式) Iterator 迭代器模式 #### 概述 在软件工程领域,设计模式被广泛应用于解决常见的编程问题。其中,“迭代器模式”作为一种行为型设计模式,在处理集合类对象时发挥着重要作用。本文将详细介绍...
迭代器模式是一种行为设计模式,主要目的是在不暴露集合内部结构的情况下,允许外部代码遍历集合的所有元素。这种模式将遍历操作从集合类中分离出来,实现了数据结构和遍历机制的解耦。在大多数编程语言中,迭代器...
迭代器模式是软件设计模式中的一种行为模式,它在C#等面向对象编程语言中有着广泛的应用。这个模式的主要目标是允许用户遍历一个聚合对象(如数组、集合或列表)的所有元素,而无需了解底层的实现细节。下面将详细...
迭代器模式是一种行为设计模式,它提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式允许我们遍历集合中的每个元素,同时保持集合本身抽象,不需了解其内部结构。 在Java、C#等面向对象语言...
迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...