华为高管项目管理经验谈

上传人:xzh****18 文档编号:41397155 上传时间:2018-05-29 格式:DOC 页数:5 大小:38.50KB
返回 下载 相关 举报
华为高管项目管理经验谈_第1页
第1页 / 共5页
华为高管项目管理经验谈_第2页
第2页 / 共5页
华为高管项目管理经验谈_第3页
第3页 / 共5页
华为高管项目管理经验谈_第4页
第4页 / 共5页
华为高管项目管理经验谈_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《华为高管项目管理经验谈》由会员分享,可在线阅读,更多相关《华为高管项目管理经验谈(5页珍藏版)》请在金锄头文库上搜索。

1、 华为高管项目管理经验谈软件工程目标:质量和效率一、讲述软件开发中的三种基本策略:“复用”、“分而治之”、“优化折衷”。二、落后于进度表原因:(1)上级领导主管臆断,制定了不现实的期限。项目经理与程序员们被迫按照不合理的进度表开展工作。(2)客户的需求发生了变化,但没有对进度表作出相应的修改。(3)低估了项目的规模与难度,导致投入的人力和物力不足。(4)并未预见到存在难以克服的技术障碍。(5)并未预见到开发人员会发生问题,如生病,辞职等等。(6)开发人员之间不能很好的交流、协作,导致各阶段任务难以如期完成。三、进度表制作建议:(1)制定进度表的人最好就是项目负责人,他最了解项目和开发人员。进度

2、表要经过开发小组的讨论,在得到大部数人的支持后才能实施。避免出现一厢情愿的局面。(2)进度安排并不见得一定要符合逻辑顺序。应尽可能地先做技术难度高的事,后做难度低的事。也就是辛苦在前,轻松在后。(3)开发一个大的软件项目,应该将进度表分为若干个里程碑。一个里程碑之内的多个任务可以同步进行。程序员极容易沉迷于技术,要么乐不思蜀,要么焦头烂额。里程碑就象心灵的灯塔,使忙碌的人群不混乱,不迷失方向。(4)进度表中必须留有缓冲时间,并将缓冲时间用到不确定的事情上。因为人们对即将要做的事情知之甚少,所以要留一些时间以防不测。Microsoft公司的一些开发小组甚至制定了“50% 缓冲规则”Cusuman

3、o 1996。对许多项目经理而言,容忍进度表中存在缓冲时间,不啻为观念上的一个飞跃。(5)如果发现项目应交付的期限非常不合理,就要跟领导或跟客户据理力争,请求放宽期限、调整进度。当客户的需求发生变化时,就要对进度表作出相应的修正。不要觉得修改进度表很困难很麻烦,不修改才会产生真真的麻烦四、“零缺陷”质量管理至少有两个核心内容:一是高目标,二是可执行的规范。目标要高,质量是各个工作人员的质量之积。只有都是一,质量才是一。五、“运行正确”的程序不见得就是高质量的程序。这个程序也许运行速度很低并且浪费内存;也许代码写得一塌糊涂,除了开发者本人谁也看不懂也不会使用。正确性只是反映软件质量的一个因素而已

4、。六、以下是人们经常采用的软件质量检查措施:(1)事先把检查的主要内容制成一张表,使检查活动集中在主要问题上。(2)只评审工作,不评审开发者。评审的气氛应该是融洽的。存在的错误应该被有礼貌地指出来,任何人的意见都不应被阻挠或小看。(3)建立一个议事日程并遵循它。检查过程不能放任自由,必须排照既定的方向和日程进行。(4)不要化太多的时间争论和辩驳。(5)说清楚问题所在,但不要企图当场解决所有问题。(6)对检查人员进行适当的培训。七、那些对你的产品说恭维话的人并不见得就是要买货的人,俗话说“嫌货才是买货人”。当你没碰到一个挑刺的人而感觉这产品好得会让你发大财时,就要做好会破产的心理准备。八、有几种

5、原因使需求分析变得困难:(1 户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。九、如何进行需求分析(1)应该了解什么?(2)通过什么方式去了解?十、在写需求说明书时还应该注意两个问题:(1)最好为每个需求注释“为什么”,这样可让程序员了解需求的本质,以便选用最合适的技术来实现此需求。(2)需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。十一、系统设计的四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计:(1)体系结构就如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。(2

6、)模块就如同人的器官,具有特定的功能。人体中最出色的模块设计之一是手,手只有几种动作,却能做无限多的事情。人体中最糟糕的模块设计之一是嘴巴,嘴巴将最有价值但毫无相干的几种功能如吃饭、说话、亲吻混为一体,使之无法并行处理,真乃人类之不幸。(3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出“啊”“呜”的声音,等于丧失了说话的功能(所以聋子天生就是哑巴),可人们却又能用手势代替说话。人体的数据结构与算法设计真是十分神奇并且十分可笑。(4)用户界面就如

7、同人的外表,最容易让人一见钟情或一见恶心。十二、体系结构是软件系统中最本质的东西:(1)体系结构是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。(2)体系结构在一定的时间内保持稳定。只有在稳定的环境下,人们才能干点事情,社会才能发展。良好的体系结构意味着普适、高效和稳定十三 、模 块 设 计模块设计优劣的三个特征因素:“信息隐藏”、“内聚与耦合”和“封闭开放性”。如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内容耦合。十四、数据结构与算法设计一般说来,数据结构与算法就是一类数据的表示及其相关的操作(这里算法不是

8、指数值计算的算法)。(1)每一种数据结构与算法都有其时间、空间的开销和收益。当面临一个新的设计问题时,设计者要彻底地掌握怎样权衡时空开销和算法有效性的方法。(2)与开销和收益有关的是时间空间的权衡。通常可以用更大的时间开销来换取空间的收益,反之亦然。时间空间的权衡普遍地存在于软件开发的各个阶段中。(3)程序员应该充分地了解一些常用的数据结构与算法,避免不必要的重复设计工作。(4)数据结构与算法为应用服务。Quake 的设计师 Michael Abrash:“所有真正杰出的设计一旦被设计好,看起来都是那么的简单和显而易见。但是在获得杰出设计的过程中,需要付出令人难以置信的努力。十五:维护与再生工

9、程如果希望提高已有软件的质量并且提高商业竞争力,却又无法靠维护来实现,只好对已有软件进行全部或者部分的改造,这种活动叫再生工程(Reengineering)。再生工程的三种类型:重构(Restructure)、逆向工程(Reverse Engineering)和前向工程(Forward Engineering)。以下一些因素将导致维护工作变得困难:(1)软件人员经常流动,当需要对某些程序进行维护时,可能已找不到原来的开发人员。只好让新手去“攻读”那些程序。(2)人们一般难以读懂他人的程序。在勉强接受这类任务时,心里不免嘀咕:“我又不是他肚子里的虫子,怎么知道他如何编程。”(3)当没有文档或者文

10、档很差时,你简直不知道如何下手。(4)很多程序在设计时没有考虑到将来要改动,程序之间相互交织,触一而牵百。即使有很好的文档,你也不敢轻举妄动,否则你有可能陷进错误堆里。(5)如果软件发行了多个版本,要追踪软件的演化非常困难。(6)维护将会产生不良的副作用,不论是修改代码、数据或文档,都有可能产生新的错误。(7)维护工作毫无吸引力。高水平的程序员自然不愿主动去做,而公司也舍不得让高水平的程序员去做。带着低沉情绪的低水平的程序员只会把维护工作搞得一塌糊涂。影响维护代价的非技术因素主要有:(1)应用域的复杂性。如果应用域问题已被很好地理解,需求分析工作比较完善,那么维护代价就较低。反之维护代价就较高

11、。(2)开发人员的稳定性。如果某些程序的开发者还在,让他们对自己的程序进行维护,那么代价就较低。如果原来的开发者已经不在,只好让新手来维护陌生的程序,那么代价就较高。(3)软件的生命期。越是早期的程序越难维护,你很难想像十年前的程序是多么的落后(设计思想与开发工具都落后)。一般地,软件的生命期越长,维护代价就越高。生命期越短,维护代价就越低。(4)商业操作模式变化对软件的影响。比如财务软件,对财务制度的变化很敏感。财务制度一变动,财务软件就必须修改。一般地,商业操作模式变化越频繁,相应软件的维护代价就越高。重构重构一般是指通过修改代码或数据以使软件符合新的要求。重构通常并不推翻原有软件的体系结构,主要是改造一些模块和数据结构。重构的一些好处如下:(1)使软件的质量更高,或使软件顺应新的潮流(标准)。(2)使软件的后续(升级)版本的生产率更高。(3)降低后期的维护代价。要注意的是,在代码重构和数据重构之后,一定要重构相应的文档。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号