Java™å¹ç›®å¼€å‘过½E‹ä¸åQŒç”±äºŽå¼€å‘äh员的¾l验ã€Javaä»£ç ¾~–写ä¹?f¨¤n)惯åQŒä»¥å?qi¨¢ng)缺ä¹ç»Ÿä¸€çš„æ ‡å‡†å’Œ½Ž¡ç†‹¹ç¨‹åQŒå¾€å¾€å¯ÆD‡´æ•´ä¸ª™å¹ç›®çš„代ç è´¨é‡è¾ƒå·®ï¼Œéš¾äºŽ¾l?护,需è¦è¾ƒå¤§çš„‹¹‹è¯•投入和周期ç‰é—®é¢˜ã€‚这些问题在一个项目组åˆå¾ã€éœ€æ±‚和设计å‡å…·æœ‰ä¸å®Œå…¨å¯é¢„期性和完备性的全新™å¹ç›®ä¸å°†ž®¤äØ“(f¨´)½H出ã€?/p>
如图1所½Cºï¼Œæ•æ·å¼€å‘过½E‹ç»åŽ†éœ€æ±‚è°ƒç ”ï¼Œç”¨ä¾‹åˆ†æžå’Œç”¨ä¾‹åˆ†è§£ï¼Œ˜q›å…¥å¼€å‘è„P代阶ŒDüc(di¨£n)€‚在æ¯ä¸ª˜q代˜q‡ç¨‹ä¸ï¼Œå¯ä»¥é‡‡ç”¨ä»¥ä¸‹æ¥éª¤æ¥ä¿è¯å’Œæé«˜æ•´ä¸ª™å¹ç›®çš„代 ç è´¨é‡ï¼š(x¨¬)¾lŸä¸€¾~–ç 规范ã€ä»£ç æ ·å¼?é?r¨´n)æ€ä»£ç 分æž?staticcodereview);å•å…ƒ‹¹‹è¯•;æŒç®‹é›†æˆ;代ç è¯„å®¡å’Œé‡æž?(Review&Refactor)。下文将针对æ¯ä¸ªæ¥éª¤å’Œå…¶æ‰€ä½¿ç”¨çš„工兗÷€æ–¹æ³•进行详¾l†æ˜q°ã€?/p>
å›?.æ•æ·å¼€å‘ä¸çš„Java代ç è´¨é‡ä¿è¯æ¥éª¤
æ¥éª¤ä¸€åQšç»Ÿä¸€¾~–ç 规范ã€ä»£ç æ ·å¼?/strong>
规范¾lŸä¸€çš„ç¼–ç 会(x¨¬)å¢žåŠ ™å¹ç›®ä»£ç çš„å¯è¯ÀL€§å’Œå¯ç»´æŠ¤æ€§ï¼Œä½†å®žé™…情况往往是项目组内的Java代ç å¼€å‘äh员的¾~–ç é£Žæ ¼å¸¸å¸¸å„ä¸ç›¸åŒåQŒè¿™å¯èƒ½æ˜¯ç”±äºŽä¸å?çš„ç»éªŒä¹ (f¨¤n)惯或者缺ä¹ç¼–ç 规范方é¢çš„å¦ä¹ (f¨¤n)é€ æˆçš„ã€‚è¿™æ ·ä¸€æ¥ï¼Œå…¶ä»–™å¹ç›®æˆå‘˜æˆ–者维护äh员在阅读™å¹ç›®ä»£ç 时就需è¦èбè´ÒŽ(gu¨©)›´å¤šçš„æ—‰™—´æ¥ç†è§£ä»£ç 作者的æ„图åQŒæ‰€ä»¥åˆ¶å®?òq‰™‡‡å–统一的编ç 规范就昑־—很é‡è¦ã€‚ç¼–ç 规范主è¦åº”包å«ä»¥ä¸‹å‡ 个斚w¢åQ?/p>
â—†ä¸€èˆ¬è§„åˆ™å’Œæ ¼å¼è§„范。例如代ç 羃˜q›ã€ç¨‹åºå—è§„èŒƒã€æ¯è¡Œæœ€å¤§ä»£ç 长度ç‰ã€?/p>
◆命å规则。例如包åã€ç±»åã€å˜é‡ã€æ–¹æ³•ã€æŽ¥å£ã€å‚æ•°ç‰å‘½å规范
◆文档规范。例如类文äšg头声明ã€ç±»æ³¨é‡Šã€æˆå‘˜å˜é‡å’Œæ–ÒŽ(gu¨©)³•注释½{‰è§„范ã€?/p>
◆编½E‹è§„范。例如异常ã€åƈå‘ã€å¤š¾U¿ç¨‹½{‰æ–¹é¢çš„å¤„ç†æ–¹å¼ã€?/p>
â—†å…¶ä»–è§„èŒƒã€‚ä¾‹å¦‚æ—¥å¿—æ ¼å¼ã€å±žæ€§æ–‡ä»¶æ ¼å¼ï¼Œ˜q”å›žå€¼å’Œæ¶ˆæ¯æ ¼å¼ã€?/p>
™å¹ç›®çš„ç¼–ç 规范å¯ä»¥å‚考已有的一些Java¾~–程规范书ç±å’Œå…¶ä»–相兌™µ„æ–™åÆˆ¾l“则å¹ç›®çš„æœ¬íw«æ¥åˆ¶å®šåQŒå¯ä¾›å‚è€ƒçš„ä¹¦ç±æœ‰ã€ŠJava¾~–ç¨‹é£Žæ ¼ã€?英文ä¹?å䨓(f¨´)åQšTheElementsofJavaStyle)。编ç 规范è¦å½¢æˆæ–‡æ¡£åQŒè€Œä¸”è¦ç®€‹z明äº?ji¨£n),òq¶ç»„¾l‡é¡¹ç›®æˆå‘˜ä¸€èµ·å¦ä¹?f¨¤n),¼‹®ä¿æ‰€æœ‰æˆå‘˜æ£¼‹®ç†è§£æ‰€æœ‰æ¡ç›®ã€?/p>
一旦编ç 规范确定,ž®±å¯ä»¥åˆ©ç”¨Eclipse自èínæä¾›çš„åŠŸèƒ½æ¥æŽ§åˆ¶ä»£ç æ ·å¼å’Œæ ¼å¼ã€‚å…·ä½“åšæ³•是åQŒç‚¹å‡»Eclipseçš?Windows->Preferenceèœå•™å¹ï¼Œåœ¨æ‰“开的Preferenceså¯¹è¯æ¡†çš„左侧æ 䏿‰‘Öˆ°Java节点下的å项CodeStyle(如图2)åQŒè¯¥™å?和它的å™å¹å…许æ?zh¨¨n)¨å¯¹Java代ç çš„æ ·å¼è¿›è¡ŒæŽ§åˆ¶ã€?/p>
å›?.Eclipseä»£ç æ ·å¼è®„¡½®½H—å£
例如åQŒäØ“(f¨´)äº?ji¨£n)ä‹Éç”¨è‡ªåŠ¨æ ¼å¼åŒ–工具åQŒå¯ä»¥åœ¨Eclipseæä¾›çš„é»˜è®¤ä»£ç æ ¼å¼é…¾|®çš„基础上å¾ç«‹è‡ªå®šä¹‰çš„æ ¼å¼ã€‚在Formatter颿¿ä¸ï¼Œç‚¹å‡» NewåQŒè¾“入新的åå—åÆˆé€‰æ‹©ä¸€ä¸ªé»˜è®¤çš„é…ç½®ä½œäØ“(f¨´)åˆå§‹åŒ–æ ¼å¼ï¼Œå¦‚图3所½Cºã€?/p>
å›?.åˆ›å¾æ–°çš„ä»£ç æ ¼å¼é…ç½®
å•击OKåŽå°±å¯ä»¥åœ¨æ–°æ‰“开的窗å£ä¸˜q›è¡Œä¿®æ”¹å®šåˆ¶è‡ªå·±éœ€è¦çš„æ ¼å¼ã€‚如å›?所½Cºã€?/p>
å›?.åˆ›å¾æ–°çš„ä»£ç æ ¼å¼é…ç½®
修改完æˆåŽç‚¹å‡»Applyä¿å˜æ‰€ä½œä¿®æ”V€‚åŒæ—¶å¯ä»¥ç‚¹å‡»Exportž®†å½“å‰çš„æ ¼å¼å®šä¹‰å¯¼å‡ºæˆä¸€ä¸ªXMLæ–‡äšgåQŒè¿™æ ·é¡¹ç›®ç»„的其他æˆå‘˜å°±å¯ä»¥å¾ˆæ–¹ä¾‰K€?˜q‡ç‚¹å‡Õd›¾3ä¸çš„Import按钮æ¥å¯¼å…¥è¯¥XMLæ–‡äšgæ¥ä‹É用åŒä¸€ä¸ªä»£ç æ ¼å¼å®šä¹‰ã€?/p>
˜q™æ ·æ¯æ¬¡åœ¨æäº¤ä»£ç 到版本控制æœåŠ¡å™?/span>å‰å°±å¯ä»¥é€šè¿‡Eclipse界é¢é‡Œçš„Source->Formatèœå•æ¥å¯¹ä»£ç ˜q›è¡Œæ ¼å¼åŒ–,从è€?使整个项目的代ç å…ähœ‰ç›¸åŒçš„æ ¼å¼ã€‚åŒæ ·å¯ä»¥é€šè¿‡å¯¹CodeStyle下的其他™å¹ç›®˜q›è¡Œè®„¡½®æ¥å¸®åЩ坹Java代ç çš„æ ·å¼è¿›è¡ŒæŽ§åˆ¶ã€‚å°†æ‰€æœ‰è¿™äº›æ ·å¼æ–‡ä»¶å¯¼å‡ºæˆ XMLæ–‡äšgåŽï¼ŒåŒç¼–ç 规范一起归档,供所有项目æˆå‘˜ä‹É用ã€?/p>
æ¥éª¤äºŒï¼š(x¨¬)é?r¨´n)æ€ä»£ç 分æž?/strong>
åœ¨å®Œæˆæºä»£ç 的开å‘以åŽï¼Œä¸‹é¢è¦è¿›è¡Œçš„工作ž®±æ˜¯å®¡è§†å’Œæµ‹è¯•代ç 。除äº?ji¨£n)通过˜q行‹¹‹è¯•ä»£ç æ¥æ£€æŸ¥åŠŸèƒ½ä¹‹å¤–ï¼Œ˜q˜èƒ½åˆ©ç”¨ä¸€äº›é™(r¨´n)æ€åˆ†æžå·¥å…äh¥å¿«é€Ÿã€ç›´æŽ¥åœ° æé«˜ä»£ç è´¨é‡ã€‚é™(r¨´n)æ€ä»£ç 分æžå·¥å…·åƈä¸éœ€è¦è¿è¡Œä»£ç ,å¯ä»¥ç›´æŽ¥å¯¹Javaæ–‡äšgå’ŒClassæ–‡äšg˜q›è¡Œåˆ†æžåQŒé€šè¿‡ä¸€äº›æ£€æŸ¥æ¡ä»¶çš„讄¡½®åQŒå¿«é€Ÿæ‰¾åˆîC»£ç ä¸çš„错误和æ½?在缺陗÷€‚现在的é?r¨´n)æ€åˆ†æžå·¥å…·å¾ˆå¤šï¼Œæœ‰FindBugsã€PMDã€IBMRationalToolåQŒç‰½{‰ã€‚在˜q™é‡ŒåQŒé€‰æ‹©FindBugsä½œäØ“(f¨´)é?r¨´n)æ€ä»£ç 分æžå·¥ å…—÷€‚FindBugså¯ä»¥å’Œæ—¥å¸¸å¼€å‘工具Eclipse˜q›è¡Œé›†æˆåQŒåœ¨å¼€å‘过½E‹ä¸åQŒå°±å¯ä»¥æ–¹ä¾¿çš„开始é™(r¨´n)æ€ä»£ç çš„‹‚€(g¨¨)查。通过‹‚€(g¨¨)查Classæ–‡äšg或者JARæ–?ä»Óž¼Œž®†å—节ç 和一¾l„缺é™äh¨¡å¼è¿›è¡Œå¯¹æ¯”,æ¥å‘现å¯èƒ½å˜åœ¨çš„代ç 问题。在Eclipse的开å‘环境ä¸åQŒç”¨æ’äšg安装的方å¼å®‰è£…了(ji¨£n)FindbugsåŽï¼Œåœ?Eclipse的酾|®é€‰é¡¹ä¸å°±ä¼?x¨¬)多出æ¥FindBugs的酾|®é€‰é¡¹ã€‚å¯ä»¥å¯¹è‡ªå·±çš„项目进行酾|®ï¼Œé€‰æ‹©éœ€è¦çš„Detector‹‚€(g¨¨)查代ç ã€?/p>
å›?.FindBugs的酾|®é€‰é¡¹
讄¡½®å¥½è‡ªå·Þqš„规则åŽï¼Œåœ¨éœ€è¦æ£€æŸ¥çš„ä»£ç æ–‡äšg夹上点击å³é”®åQŒå°±å¯ä»¥å¯åЍFindBugs‹‚€(g¨¨)查。代ç å¯ä»¥æ˜¯ä¸€ä¸ªé¡¹ç›®ï¼Œä¹Ÿå¯ä»¥åªæ˜¯å‡ 个文件ã€?/p>
å›?.˜q行FindBugs
‹‚€(g¨¨)查完毕åŽåQŒä¼š(x¨¬)出现FindBugs视图åQŒæŠŠæ‰€æœ‰æ£€æŸ¥çš„¾l“æžœæ ÒŽ(gu¨©)®é”™è¯¯åˆ†ç»„展示。点å‡È»“果里é¢çš„æ¯ä¸€ä¸ªé”™è¯¯ï¼Œä¼?x¨¬)自动打开对应的代ç 。当æ ÒŽ(gu¨©)®è§„则æ”?æ£äº†(ji¨£n)所有的错误åQŒæˆ–者说潜在错误åQŒè¿™äº›ä»£ç 也ž®±é€šè¿‡äº?ji¨£n)é?r¨´n)æ€ä»£ç 检查。FindBugs的检查结果å¯ä»¥æ˜¯XMLæ–‡äšgåQŒä¹Ÿå¯ä»¥æ˜¯æ–‡æœ¬æ–‡ä»Óž¼Œä¾¿äºŽ™å¹ç›®çš„集æˆç®¡ç?和检查ä¿å˜ã€?/p>
å›?.FindBugs‹‚€(g¨¨)查结æž?/p>
æ¥éª¤ä¸‰ï¼š(x¨¬)å•å…ƒ‹¹‹è¯•
å•å…ƒ‹¹‹è¯•用例设计和评å®?/strong>
å•å…ƒ‹¹‹è¯•是èÊYä»¶å¼€å‘过½E‹ä¸é‡è¦çš„è´¨é‡ä¿è¯çŽ¯èŠ‚ï¼Œåœ¨æ¤çŽ¯èŠ‚ä¸ï¼Œè®¾è®¡å’Œè¯„审对于ä¿è¯æ•´ä¸ªå•元测试过½E‹çš„完整性和有效性æ¥è¯´å分é‡è¦ã€‚设计阶ŒDµéœ€è¦å…· 体考虑è¦å¯¹å“ªäº›ä»£ç å•å…ƒ˜q›è¡Œ‹¹‹è¯•åQŒè¢«‹¹‹å•元之间的关系åQŒæµ‹è¯•ç–略,以åŠ(qi¨¢ng)å•å…ƒ‹¹‹è¯•用例设计½{‰ï¼Œòq¶æœ€¾lˆè¾“出《å•å…ƒæµ‹è¯•ç”¨ä¾‹è®¾è®¡ã€‹æ–‡æ¡£ï¼Œç”¨æ¥æŒ‡å¯¼å…·ä½“çš„å•元测è¯?执行。在用例设计ä¸ï¼Œé€šè¿‡å¯¹ä»£ç å•元输入和期待输出的定义æ¥ä¿è¯è¯¥å•元的功能æ£ç¡®æ€§ï¼Œè¾¹ç•Œå€¼çš„‹¹‹è¯•和异常测试éžå¸”R‡è¦ã€‚åŒæ—¶ä¹Ÿé…刋¹‹è¯•用例和功能å—的匹é…?æ–ÒŽ(gu¨©)³•æ¥è¡¡é‡ç”¨ä¾‹è®¾è®¡çš„完整性ã€?/p>
在用例设计完æˆä¹‹åŽï¼Œä¸‹ä¸€æ¥çš„工作ž®±æ˜¯˜q›è¡Œ‹¹‹è¯•用例的评审。个人的ç†è§£å’Œç»éªŒå§‹¾lˆæ˜¯æœ‰é™çš„,用例评审å¯ä»¥å€Ÿé›†ä½“之力,对用例设计进入查æ¼è¡¥¾~ºï¼Œ ˜q›ä¸€æ¥ä¿è¯æµ‹è¯•用例的有效性。由于å•元测试属于白盒测试范ç•ß_(d¨¢)¼Œå®ƒä¸»è¦é€šè¿‡å¯¹ä»£ç 的逻辑¾l“æž„˜q›è¡Œåˆ†æžæ¥è®¾è®¡æµ‹è¯•ç”¨ä¾‹ï¼Œå› æ¤åQŒè¯„审员的选择最好以ç†è§£ä»£ç 逻辑 ¾l“æž„ä¸ºå‰æï¼Œå¦‚æžœè¯„å®¡å‘˜æ¥è‡ªç›¸å…?a class="fllink" target="_blank">模å—åQŒè¿˜èƒ½å¤Ÿæœ‰æ•ˆçš„å‘现模å—相å…Ïx€§å’Œä¾èµ–性所带æ¥çš„问题ã€?/p>
模拟对象技�/strong>
在实际项目ä¸åQŒå¼€å‘äh员自å·Þqš„代ç 往往需è¦å’Œå…¶ä»–çš„ä»£ç æ¨¡å—或¾pÈ»Ÿ˜q›è¡Œäº¤äº’åQŒä½†åœ¨æµ‹è¯•çš„˜q‡ç¨‹ä¸ï¼Œ˜q™äº›éœ€è¦è¢«è°ƒç”¨çš„真实对象常常很难被实例化,æˆ?者这些对象在æŸäº›æƒ…å†µä¸‹æ— æ³•è¢«ç”¨æ¥‹¹‹è¯•åQŒä¾‹å¦‚ï¼ŒçœŸå®žå¯¹è±¡çš„è¡Œä¸ºæ— æ³•é¢„‹¹‹ï¼ŒçœŸå®žå¯¹è±¡çš„行为难以触å‘,或者真实对象的˜q行速度很慢。这时候,ž®±éœ€è¦ä‹É用模拟对 象技æœ?Mock)åQŒåˆ©ç”¨ä¸€ä¸ªæ¨¡æ‹Ÿå¯¹è±¡æ¥æ¨¡æ‹Ÿæˆ‘ä»¬çš„ä»£ç æ‰€ä¾èµ–的真实对象,æ¥å¸®åŠ©å®Œæˆæµ‹è¯•,æé«˜?g¨°u)¹‹è¯•覆盖率,从而æé«˜ä»£ç è´¨é‡ã€‚模拟对象技术利用了(ji¨£n)在é¢å?接å£çš„ç¼–½E‹ä¸åQŒç”±äºŽä»£ç 直接对接壘q›è¡Œè°ƒç”¨åQŒæ‰€ä»¥ä»£ç åÆˆä¸çŸ¥é“引用的是真实对象还是模拟对象,˜q™æ ·ž®±å¯ä»¥é¡ºåˆ©çš„完æˆå¯¹ä»£ç çš„‹¹‹è¯•åQŒæ¨¡æ‹ŸæŠ€æœ¯æœ‰å¾ˆå¤š¿U,å¦?jMockåQŒEasyMockåQŒMockitoåQŒPowerMock½{‰ç‰ã€‚å…¶ä¸Mockito消除äº?ji¨£n)对期望行äØ?f¨´)的需求,é¿å…äº?ji¨£n)这些代ç 的大é‡åˆå§‹åŒ–ã€?/p>
å›?.Mockito½CÞZ¾‹
在模拟对象过½E‹ä¸åQŒå…ˆæ¨¡æ‹Ÿä¸€ä¸ªéœ€è¦è°ƒç”¨çš„List对象LinkedListåQŒå†è®‘Ö®š˜q™ä¸ªå¯¹è±¡çš„行为,当调用get(0)的时候,˜q?å›?#8221;first”ã€‚è¿™æ øP¼Œ‹¹‹è¯•ä»£ç ž®±å¯ä»¥åˆ©ç”¨è¿™ä¸ªå¯¹è±¡æ¥‹¹‹è¯•我们的功能代ç ,需è¦è°ƒç”¨å’Œ˜q”回值的时候,å¯ä»¥™åºåˆ©çš„得到模拟对象的˜q”回倹{€‚也需è¦å¯¹æ¨¡æ‹Ÿå¯¹è±¡ ˜q›è¡Œé”™è¯¯æƒ…况的模拟,ä¿è¯ä»£ç 寚w”™è¯¯çš„处ç†çš„æ£¼‹®æ€§ã€?/p>
‹¹‹è¯•覆盖率分æž?/strong>
ä¸ÞZº†(ji¨£n)è¡¡é‡å•å…ƒ‹¹‹è¯•的质é‡å’Œè¦†ç›–的范å›ß_(d¨¢)¼Œéœ€è¦å¯¹å•å…ƒ‹¹‹è¯•的代ç 进行测试覆盖分æžã€‚常用的衡釋¹‹è¯•è¦†ç›–çŽ‡çš„æŒ‡æ ‡ä¸»è¦æœ‰è¯å¥è¦†ç›–率ã€åˆ†æ”¯è¦†ç›–率ã€èµ\å¾?è¦†ç›–çŽ‡ã€æ¡ä»¶è¦†ç›–率和方法覆盖率½{‰ã€‚å…·ä½“é‡‡ç”¨å“ªäº›æŒ‡æ ‡å¯ä»¥æ ¹æ®é¡¹ç›®çš„实际情况æ¥å®šåQŒä»¥é¿å…å› è¿‡é«˜çš„æŒ‡æ ‡å¢žåŠ äº?ji¨£n)代ç å¼€å‘äh员的工作é‡è€Œåª„(ji¨£ng)å“了(ji¨£n)™å¹ç›®æ•´ä½“的进 度ã€?/p>
EMMA是一‹Æ¾æ¯”较æµè¡Œçš„å¼€æºJava‹¹‹è¯•覆盖率分æžå·¥å…øP¼Œæ”¯æŒ¾c…R€æ–¹æ³•ã€ä»£ç 行ã€åŸºæœ¬ä»£ç å—½{‰å¤š¿U类型的‹¹‹è¯•覆盖率分æžï¼Œæ”¯æŒž®†è¦†ç›–率分枾l?果导å‡ÞZØ“(f¨´)å¤šç§æ ¼å¼çš„æŠ¥å‘Šï¼Œòq‰™‡‡ç”¨å¤š¿U颜色æ¥é«˜äº®æ˜„¡¤ºä¸åŒçš„覆盖率状æ€ã€‚EclEmma是一‹Æ‘ÖŸºäºŽEMMAçš„Eclipseæ’äšgåQŒæ–¹ä¾¿åœ¨ EclipseIDEä¸è¿›è¡Œæµ‹è¯•覆盖率分æžã€‚如å›?åQŒåœ¨‹¹‹è¯•用例写好åŽï¼Œå¯ä»¥åœ¨å³é”®ç‚¹å‡?y¨¢n)Lµ‹è¯•ç±»åQŒé€‰æ‹©CoverageAs->JUnitTestã€?/p>
å›?.˜q行‹¹‹è¯•覆盖分æž
å•å…ƒ‹¹‹è¯•跑完åŽï¼ŒCoverage视图ä¸ä¼š(x¨¬)昄¡¤ºæ‰€é€‰æ‹©çš„æµ‹è¯•的覆盖率。åŒå‡?y¨¢n)L‰“å¼€æŸä¸€å…·ä½“的类åŽï¼Œå¯ä»¥çœ‹åˆ°é«˜äº®æ˜„¡¤ºçš„覆盖分æžç»“果,如图10所 ½Cºã€‚红色代表测试没有覆盖到该行åQŒé»„色表½Cºéƒ¨åˆ†è¦†ç›–,¾l¿è‰²çš„行表示该行在本‹Æ¡æµ‹è¯•ä¸è¢«è¦†ç›–到ã€?/p>
å›?0.查看‹¹‹è¯•覆盖分枾l“æžœ
在Coverage视图ä¸å¯ä»¥é€šè¿‡ç‚¹å‡»é¼ æ ‡å³é”®ž®†æµ‹è¯•覆盖分æžçš„¾l“果导出æˆéœ€è¦çš„æ ¼å¼åQŒä¾‹å¦‚HTMLã€?/p>
å›?1.导出‹¹‹è¯•覆盖分枾l“æžœ
å›?2昄¡¤ºäº?ji¨£n)导出的reportã€?/p>
å›?2.‹¹‹è¯•è¦†ç›–åˆ†æžæŠ¥å‘Š
ä¸ÞZº†(ji¨£n)ä¿è¯å•å…ƒ‹¹‹è¯•的有效性和质é‡åQŒå¯ä»¥è§„定一个测试覆盖率的下é™ï¼Œä¾‹å¦‚所有的包和¾cÈš„覆盖率必™å»è¾¾åˆ?0%以上。丘q‡å€¼å¾—注æ„的是åQŒä¸è¦å•¾U¯è¿½ 求高覆盖率,è¦åŒæ—¶æ³¨æ„测试用例的质é‡åQŒå¦‚果测试用例本íw«å°±å†™çš„æœ‰é”™è¯¯ï¼Œé‚£ä¹ˆå³ä‹É‹¹‹è¯•覆盖率很高也没有æ„义ã€?/p>
æ¥éª¤å››ï¼š(x¨¬)æŒç®‹é›†æˆ
æŒç®‹é›†æˆ(ContinuousIntegration)是利用一¾pÕdˆ—çš„å·¥å…øP¼Œæ–ÒŽ(gu¨©)³•和规则,åšåˆ°å¿«é€Ÿçš„æž„å¾å¼€å‘代ç ,自动的测试化åQŒæ¥æé«˜å¼€å?代ç 的效率和质é‡ã€‚åˆ©ç”¨è‡ªåŠ¨æž„å»ºå·¥å…øP¼Œéšæ—¶éƒ½èƒ½æŠŠæäº¤çš„ä»£ç æž„å¾å‡ºæ¥åQŒæä¾›ä¸€ä¸ªå¯ä»¥æµ‹è¯•ä‹É用的版本åQŒè®©ç”¨æˆ·å’Œå¼€å‘ähå‘˜åŒæ—¶çœ‹åˆ°ç›¸åŒçš„功能åQŒå°½æ—©çš„å‘现问题 和错误,也å¯ä»¥å°½å¿«çš„得到‹¹‹è¯•人员和用æˆïL(f¨¥ng)š„å馈ã€?/p>
è¦åšåˆ°æŒ¾l集æˆï¼Œž®Þp¦åˆ©ç”¨ä¸€¾pÕdˆ—工具åQŒæŠŠå¼€å‘过½E‹ä¸çš„é‡å¤å·¥ä½?a class="fllink" target="_blank">自动åŒ?/a>。æå»ø™‡ªåŠ¨çš„æž„å¾æœåŠ¡å™?/a>åQ?自动的进行å•元测试和å‘布新版本,一个集æˆçš„æœåŠ¡å™¨å¯ä»¥æä¾›æž„廸™¿‡½E‹çš„¾l“果报告åQŒè‡ªåŠ¨é€šçŸ¥å¼€å‘äh员构建结果,òq¶ä¸”ä¿å˜åކ岿•°æ®ã€?IBMRationalTeamConcert(RTC)å¯ä»¥æä¾›å·¥ä½œä»ÕdŠ¡çš„ç®¡ç†ï¼Œ™å¹ç›®è®¡åˆ’的安排,代ç 版本½Ž¡ç†æŽ§åˆ¶åQŒè‡ªåŠ¨æž„å»ºå¯ç”¨ç‰ˆæœ¬ï¼Œç”Ÿæˆæž„å¾¾l“æžœæŠ?告。这些过½E‹æž„æˆäº†(ji¨£n)™å¹ç›®çš„æŒ¾l集æˆè¿‡½E‹ï¼Œå…¶ä¸åQŒç‰ˆæœ¬çš„自动构å¾å’Œä»£ç 的自动å•å…ƒ‹¹‹è¯•是挾l集æˆçš„关键˜q‡ç¨‹åQŒRTC在这些过½E‹ä¸Šæä¾›äº?ji¨£n)有力的支æŒã€?/p>
RTCæä¾›äº?ji¨£n)buildengineæ¥è´Ÿè´£æž„建buildåQŒé¦–选,å¯åЍbuildengineåQŒåƈ和RTCæœåС噍å¾ç«‹äº†(ji¨£n)˜qžæŽ¥ã€‚å†åˆ›å¾™å¹ç›®çš?build定义。在˜q™ä¸ªå®šä¹‰ä¸ï¼Œéœ€è¦è®¾å®šç¼–译哪äº?a class="fllink" target="_blank">模å—的代ç ,需è¦èŸ©åŠ¨å“ªä¸ªANTæ–‡äšgæ¥å¯åŠ¨ç¼–è¯‘ï¼Œå’Œä¸€äº›ç¼–è¯‘è¿‡½E‹ä¸çš„傿•°çš„è®?定。当˜q™äº›éƒ½å‡†å¤‡å¥½äº?ji¨£n),¾~–译对于™å¹ç›®è€Œè¨€åQŒå°±å˜æˆä¸€ä¸ªç®€å•的事情ã€?/p>
å¯ä»¥çœ‹åˆ°åQŒé€šè¿‡åœ¨build定义上,点击è¯äh±‚æž„å¾åQŒå°±å¯ä»¥è§¦å‘一‹Æ¡æž„廸™¿‡½E‹ã€‚选择需è¦çš„æž„å¾å‚æ•°åQŒè¿™ä¸ªè¿‡½E‹å°±ä¼?x¨¬)在åŽå°˜q行。æ¯ä¸€ä¸ªå¼€å‘äh员,å?äº?ji¨£n)ç¨è®¸çš„ä»£ç æ”¹å˜å’Œæäº¤ï¼Œéƒ½å¯ä»¥è§¦å‘æ–°çš„æž„å»ø™¿‡½E‹ï¼Œæ¥ä¿è¯æˆ‘们代ç 的有效性。申请一个新的构建的˜q‡ç¨‹å¦‚图13ã€å›¾14所½Cºã€?/p>
å›?3.甌™¯·ä¸€ä¸ªæ–°çš„æž„å»?/p>
å›?4.æž„å¾ç”Œ™¯·ç•Œé¢
当构建结æŸåŽã€‚RTCæœåŠ¡å™¨ä¼š(x¨¬)æä¾›æž„å¾¾l“果报告。开å‘äh员å¯ä»¥æŸ¥è¯¢åˆ°˜q™æ¬¡æž„å¾çš„详¾l†ä¿¡æ¯ã€?/p>
å›?5.构徾l“æžœ
整个开å‘过½E‹ä¸åQŒæž„建版本的˜q‡ç¨‹åº”è¯¥æ˜¯æ— æ•°æ¬¡çš„ï¼Œé€šè¿‡æ¯æ¬¡æž„å¾åQŒéƒ½å¯ä»¥å¾—到当时代ç 的编译情况,òq¶ä¸”å¯ä»¥å¾—到一个寘q行的èÊY件版本。在构å¾å®šä¹‰ 上,RTC支æŒè®„¡½®æž„å¾è®¡åˆ’。定时自动的触å‘一‹Æ¡æž„建ã€?/p>
å›?6.æž„å¾å®šä¹‰
自动å•å…ƒ‹¹‹è¯•
æž„å¾å¯ä»¥è‡ªåЍäº?ji¨£n),é‡ç‚¹æé«˜ä»£ç è´¨é‡çš„å•元测试呢åQŸå¦‚æžœæ¯ä¸€å¤©çš„代ç åQŒæ¯ä¸€ä¸ªç‰ˆæœ¬çš„代ç åQŒéƒ½å·²ç»é€šè¿‡äº?ji¨£n)我们的å•å…ƒ‹¹‹è¯•åQŒè¿™æ ähˆ‘们就能对代ç 的质é‡?有了(ji¨£n)基本的ä¿è¯ã€‚在构å¾è„šæœ¬çš„è‡ªåŠ¨è°ƒç”¨è¿‡½E‹ä¸åQŒé€šè¿‡ANT的脚本,å¯ä»¥åŠ ä¸ŠJUnitåQŒEMMAåQŒFindBugsçš„ANT脚本调用åQŒæ¯ä¸€‹Æ¡çš„æž„å¾åQŒéƒ½å?以把˜q™äº›‹‚€(g¨¨)查工作自动的˜q›è¡Œä¸€é测试。这些测试都è¦ç”Ÿæˆæµ‹è¯•结果报告,RTCä¸èƒ½æä¾›˜q™äº›æŠ¥å‘Šçš„展½Cºï¼Œž®±å¯ä»¥åˆ©ç”¨Hudson˜q™ä¸ªå¼€æºå·¥å…øP¼Œé›†æˆ‹¹‹è¯•报告 æ¥æ–¹ä¾¿æŸ¥é˜…ã€?/p>
å›?7.自动‹¹‹è¯•报告
æ¥éª¤äº”:(x¨¬)代ç è¯„å®¡å’Œé‡æž?/strong>
代ç 评审(CodeReview)是Java™å¹ç›®å¼€å‘过½E‹ä¸çš„一个é‡è¦æ¥éª¤ï¼Œä»£ç 评审å¯ä»¥å¸®åŠ©å‘现é?r¨´n)æ€ä»£ç 分æžè¿‡½E‹ä¸æ— 法å‘现的一些问题,例如 代ç 的编写是å¦ç¬¦åˆç¼–ç 规范,代ç 在逻辑上或者功能上是å¦å˜åœ¨é”™è¯¯åQŒä»£ç åœ¨æ‰§è¡Œæ•ˆçŽ‡å’Œæ€§èƒ½ä¸Šæ˜¯å¦æœ‰éœ€è¦æ”¹˜q›çš„地方åQŒä»£ç 的注释是å¦å®Œæ•´æ£ç¡®åQŒä»£ç 是å¦å˜åœ?冗余和é‡å¤ã€‚代ç 评审还å¯ä»¥å¸®åŠ©æ–°è¿›å…¥é¡¹ç›®ç»„çš„æˆå‘˜å¿«é€Ÿå¦ä¹?f¨¤n)和了(ji¨£n)è§£™å¹ç›®åQŒä¿ƒ(j¨©)˜q›ç»éªŒåˆ†äº«ï¼ŒåŒæ—¶ä¹Ÿèƒ½ä¿è¯™å¹ç›®æˆå‘˜çš„良好沟通。代ç 评审主è¦åŒ…括两¿UåÅžå¼ï¼ŒåŒçñ” 评审(PeerReview)和尾l„评å®?GroupReview)。匾U§è¯„å®¡ä¸»è¦æŒ‡™å¹ç›®æˆå‘˜é—´çš„互相评审åQŒå°¾l„评审是指通过å¬å¼€è¯„审ä¼?x¨¬)è®®åQŒé¡¹ç›®æˆå‘˜ä¸€èµ?寚w¡¹ç›®ä»£ç 进行评审ã€?/p>
ä¸ÞZº†(ji¨£n)æé«˜ä»£ç 评审的有效性和效率åQŒå¯ä»¥å€ŸåŠ©ä¸€äº›å¤–éƒ¨å·¥å…øP¼Œæ¯”较常用的代ç 评审工å…ähœ‰Jupiterå’ŒCodeStriker。Jupiteræ˜?一‹Æ‘Ö¼€æºçš„Eclipseæ’äšgåQŒå…许æˆå‘˜å°†è¯„审æ„è§å®šä½åˆ°çœŸå®žä»£ç 的具体行,ç”׃ºŽä»£ç 评审的结果以XMLæ–‡äšgçš„åÅžå¼ä¿å˜ï¼Œæ‰€ä»¥å¯ä»¥æŠŠ¾l“æžœæäº¤åˆ°ç‰ˆæœ¬ç®¡ç?a class="fllink" target="_blank">æœåŠ¡å™?/a>˜q?行共享。图18昄¡¤ºäº?ji¨£n)ä‹É用Jupiter˜q›è¡Œä»£ç 评审的界é¢ã€?/p>
å›?8.Jupiter代ç 评审界é¢
在代ç 评审ä“Q务创建åŽåQŒJupiterž®†ä»£ç 评审分æˆä¸‰ä¸ªé˜¶ŒDµï¼Œä¸ªäh评审阶段(IndividualPhase)ã€å›¢é˜Ÿè¯„审阶ŒD?(TeamPhase)和问题修å¤é˜¶ŒD?ReworkPhase)。在个äh评审阶段åQŒè¯„审æˆå‘˜å°†å‘现的代ç 问题或者缺陯‚®°å½•下æ¥ï¼Œæ¯ä¸ªé—®é¢˜éƒ½ä¼š(x¨¬)ä½œäØ“(f¨´)一个记 录ä¿å˜åœ¨è¯„å®¡è¡¨æ ¼ä¸ã€‚在团队评审阶段åQŒå›¢é˜Ÿçš„全部或者部分æˆå‘˜ä¼š(x¨¬)一起对个äh评审阶段å‘现的问题进行定性,如果问题¼‹®å®žå˜åœ¨åQŒå°±ž®†è¯¥é—®é¢˜åˆ†é…¾l™æŸä¸ªæˆå‘˜åŽ»è§?冻I¼Œòq¶åœ¨Jupiterä¸å°†è¯¥é—®é¢˜è®¾¾|®æˆç›¸åº”的状æ€ã€‚在问题修å¤é˜¶æ®µåQŒå›¢é˜Ÿæˆå‘˜ä¼š(x¨¬)ä¿®å¤å±žäºŽè‡ªå·±çš„问题,òq¶å°†ç›¸åº”的记录设¾|®æˆå·²è§£å†³ç‰æ£ç¡®çš„状æ€ã€?/p>
Codestriker是一‹Æ‘ÖŸºäºŽWeb的常用代ç è¯„å®¡å·¥å…øP¼Œå¯¹ä»£ç 的评审å¯ä»¥é’ˆå¯¹æŸä¸€å…·ä½“行,也å¯ä»¥é’ˆå¯ÒŽ(gu¨©)•´ä¸ªä»£ç æ–‡ä»Óž¼Œè¯„审æ„è§ä¼?x¨¬)被ä¿å˜å?a class="fllink" target="_blank">æ•°æ®åº?/a>ä¸ã€‚评审äh员å¯ä»¥åŒæ—¶çœ‹åˆ°å…¶ä»–äh的评论,代ç 作者也å¯ä»¥é’ˆå¯¹æŸä¸€å…·ä½“的评 论回å¤ã€‚Codestriker支æŒé‚®äšg通知åQŒè¿˜å¯ä»¥åŒç‰ˆæœ¬æŽ§åˆ¶æœåС噍˜q›è¡Œé›†æˆåQŒä»¥è·Ÿè¸ªå’Œæ˜¾½Cºæ–‡ä»¶å†…容的改å˜ã€‚图19昄¡¤ºäº?ji¨£n)Codestriker的界 é¢ã€?/p>
å›?9.Codestriker报告界é¢
在实践ä¸å¯ÒŽ(gu¨©)‰€æœ‰ä»£ç 进行尾l„评审会(x¨¬)比较è´ÒŽ(gu¨©)—¶åQŒæ‰€ä»¥å¯ä»¥æ ¹æ®å®žé™…情冉|¥æŒ‘é€‰ä¸€äº›æ ¸å¿?j¨©)代ç 进行尾l„评审,或者在™å¹ç›®çš„剿œŸå®‰æŽ’较多的ž®ç»„评审åQŒç‰™å?目组的æˆå‘˜å¯¹ä»£ç è¯„å®¡çš„æ ‡å‡†å’Œè¦æ±‚有较好的ç†è§£åQŒè¿›è¡Œä»£ç 评审的¾l验æé«˜åŽï¼Œž®±å¯ä»¥é€æ¸å‡å°‘ž®ç»„评审的次敎ͼŒä»Žè€Œè¾¾åˆ°å¤§éƒ¨åˆ†ä»£ç å³ä‹Éåªè¿›è¡ŒåŒ¾U§è¯„å®¡ä¹Ÿèƒ½ä¿ è¯å¾ˆå¥½çš„è´¨é‡ã€?/p>
通过代ç 评审å‘现的问题è¦é€šè¿‡ä»£ç 釿ž„å?qi¨¢ng)时解决掉,较å°çš„䏿¶‰å?qi¨¢ng)多äh代ç çš„é‡æž„å¯ä»¥ç”±™å¹ç›®æˆå‘˜è‡ªå·±å€ŸåŠ©Eclipseçš„é‡æž„功能完æˆï¼Œä¸åŒ™å¹ç›® æˆå‘˜å†™çš„实现相åŒåŠŸèƒ½çš„ä¸åŒä»£ç è¦é€šè¿‡è®¨è®ºæ•´åˆæˆå…¬å…Þqš„¾cÀLˆ–è€…æ–¹æ³•ã€‚æ¯”è¾ƒå¤æ‚çš„æˆ–è€…æ¯”è¾ƒé«˜å±‚æ¬¡çš„é‡æž„工作,例如整个™å¹ç›®å±‚é¢çš„代ç 组¾l‡åÅžå¼çš„æ”¹å˜éœ€è¦ç”±æ•?个项目组共åŒè®¨è®ºå®Œæˆã€?/p>
¾l“论
软äšg开呿²¡æœ‰ä¸€æˆä¸å˜ã€ä¸‡èƒ½é€šç”¨çš„æµ½E‹å’Œæ–ÒŽ(gu¨©)³•åQŒå¸Œæœ›å¤§å®¶èƒ½ä»Žæœ¬æ–‡å¾—到å¯å‘和收益åQŒç»“åˆæ?zh¨¨n)¨çš„实际项目特点,实践以上æ¥éª¤å’Œæ–¹æ³•,òq¶åŠ ä»¥å®Œå–„å’Œæ”?˜q›ï¼Œå…±åŒæ‰“é€ é«˜æ•ˆé«˜è´¨é‡çš„Java代ç åQŒäØ“(f¨´)æ‚(zh¨¨n)¨çš„™å¹ç›®æˆåŠŸå¥ å®šåšå®žçš„基¼‹€ã€?/p>
错误一åQšé”™è¯¯çš„éœ€æ±‚è°ƒç ”é˜¶ŒDµï¼Œå¯ÆD‡´å¾ˆå¤š™å¹ç›®æ°¸è¿œæ— 法¾l“æŸ!
在èÊY件行业,在界é¢è®¾è®¡æ²¡æœ‰æ£å¼å±•现给客户之å‰åQŒæ‰€æœ‰çš„å·¥ä½œéƒ½å¤„äºŽéœ€æ±‚è°ƒç ”é˜¶ŒDüc(di¨£n)€‚其实徽{‘行业已¾l给我们åšå¥½äº?ji¨£n)先例ï¼?x¨¬)客户买房å之剿˜¯å…ˆè¦çœ‹çœ‹æ äh¿ 房和模型的,什么都看ä¸åˆ°è¿™æˆ¿åä½ æ•¢ä¹îC¹ˆ?除éžä½ 䏿˜¯è‡ªå·×ƒ½!
而在我们所å¦çš„软äšg工程概念模型ä¸ï¼Œ˜q™æ˜¯ä¸‰ä¸ªé˜¶æ®µåQšéœ€æ±‚è°ƒç ”ã€éœ€æ±‚分æžã€æ¦‚è¦è®¾è®¡ã€?/p>
在客æˆähŠŠä»–ä»¬æƒŒ™¦½Ž¡ç†çš„业务模å—以å?qi¨¢ng)与之相关的业务数æ®åQŒæµ½E‹ï¼Œè¡¨å•äº¤ä»˜ä½ çš„æ—¶å€™ï¼Œä½ åƒä¸‡ä¸è¦æŠŠ˜q™ä¸ªé˜¶æ®µå®šæ€§äØ“(f¨´)需è¦è°ƒç ”结æŸï¼Œå†™å‡ºã€Šéœ€è¦è§„æ ÆD¯´æ˜?书》就å¯ä»¥äº?ji¨£n)。大é‡çš„å®žè·µè¯æ˜ŽåQŒåœ¨æ¦‚è¦è®¾è®¡é˜¶æ®µæ‰€è¡ç”Ÿå‡ºæ¥çš„éœ€æ±‚å·¥ä½œé‡æ˜¯ä¹‹å‰çš„5~10å€ï¼Œç”šè‡³æ›´å¤šåQŒå› 䏸™¿™è¦çœ‹è®¾è®¡äººå‘˜çš„业务沟通能力和建模水åã^ã€?/p>
有实施ç»éªŒæ¯”较丰富的™å¹ç›®½Ž¡ç†äººå‘˜æ€È»“è¯ß_(d¨¢)¼Œåœ¨ä¸å›½å®žæ–½èÊY仉™¡¹ç›®ï¼Œå¿…须以咨询方å¼å±•å¼€åQšè¦æŽ¨å‡ºè‡ªå·±çš„æ–¹æ¡ˆï¼Œè€Œä¸èƒ½å®Œå…¨æŒ‰ç…§å®¢æˆäh¥æéœ€æ±‚作™å¹ç›®ã€‚这是一 ¿U很好的解决æ€èµ\åQŒä½†æ— 法解决所有实施项目的éšùN¢˜ã€‚è¿™¿Uè§£å†Ïx–¹æ¡ˆçš„剿åQŒè¦ä¹ˆé¡¹ç›®å®žæ–½è€…有æˆç†Ÿçš„业务模型,è¦ä¹ˆæœ‰æˆç†Ÿçš„产å“(包å«äº?ji¨£n)æˆç†Ÿçš„业务模åž?åQŒå¦ 则是ä¸å¯èƒ½åšåˆ°çš„。但如果没有3~5òq´åœ¨åŒä¸€è¡Œä¸šåQŒåŒä¸€é¢†åŸŸçš„实施ç»éªŒå’Œç†è®ºæ€È»“åQŒæ²¡æœ‰å“ªå®¶ITä¼ä¸šèƒ½è¾¾åˆ°è¿™æ ïL(f¨¥ng)š„å‰æè¦æ±‚ã€?/p>
其实得出˜q™æ ·¾l“è®ºçš„æ·±å±‚åŽŸå› ï¼Œæ˜¯å› ä¸ºå›½å†…å¤šæ•îC¼ä¸šç®¡ç†æ€æƒ³ä¸æˆç†Ÿï¼Œæ›´è°ˆä¸ä¸Šå®Œå–„的业务模型,所以客æˆïL(f¨¥ng)š„æ€ç»´ä¸€å®šç¨‹åº¦æ˜¯å‘æ•£çš„,˜q˜æœªå½¢æˆ¾pÈ»Ÿã€‚甚臌™¿˜ 有些客户的领å¯û|¼Œè„‘å䏿œ‰å¾ˆå¤šæ–°é²œçš„点å,他都有å¯èƒ½æƒ³åœ¨ä¼ä¸šä¿¡æ¯åŒ–的实施过½E‹ä¸åŠ è¿›æ¥ï¼Œ˜q™å¯¹æŠŠæŽ§™å¹ç›®èŒƒå›´å’Œé¡¹ç›®å®žæ–½æ•ˆæžœæ¥è¯ß_(d¨¢)¼Œéƒ½å¯èƒ½æ˜¯çùNš¾çš„开始ã€?/p>
所以,è¦åšå¥½å®žæ–½é¡¹ç›®ï¼Œå®žæ–½è€…å¿…™åÀLœ‰å¾ˆå¥½çš„ä¸šåŠ¡å¾æ¨¡èƒ½åŠ›ï¼Œå¿«é€Ÿçš„¾l™å®¢æˆ·å±•½Cºåˆç†çš„软äšg原型软äšgDemoã€?/p>
误‚®°ä½ï¼š(x¨¬)软äšg实施™å¹ç›®åQŒä¸€å®šè¦¾l™ç”¨æˆïL(f¨¥ng)œ‹åˆ°æ ·æ¿æˆ¿è½¯äšgDemoåQŒæ‰½Ž—éœ€æ±‚è°ƒç ”ç»“æ?
错误二:(x¨¬)IT技术äh员ä¸éœ€è¦æŽŒæ¡é¡¹ç›®ç®¡ç?/strong>
有这¿U看法的äºÞZ¸åœ¨å°‘æ•°ã€‚æ ¹æ®è§‚察,之所以åÅžæˆè¿™¿U看法,一是对™å¹ç›®çš„çœŸæ£æ¦‚å¿µä¸æ¸…æ™°åQŒäºŒæ˜¯å¯¹½Ž¡ç†çš„æ¦‚å¿ëŠ¥žè¯äº†(ji¨£n)åQŒæŠŠ½Ž¡ç†ç†è§£æˆäº†(ji¨£n)高深莫测åQŒéžä¸€èˆ¬äh 能åšçš„äº‹æƒ…ã€‚é¦–å…ˆæœ‰å¿…è¦æ™®åŠ(qi¨¢ng)一下项目的概念ã€?/p>
寚w¡¹ç›®æœ‰å¾ˆå¤šäºÞZ¸‹˜q‡å®šä¹‰ï¼Œ™å¹ç›®½Ž¡ç†åœ£ç»PMBOK½W¬ä¸‰ç‰?2004ç‰?的定义是åQšäØ“(f¨´)åˆ›é€ æŸä¸ªç‹¬ç‰¹çš„äº§å“æˆ–æœåŠ¡ï¼Œæˆ–å®ŒæˆæŸç‹¬ç‰¹çš„ä“Q务所åšçš„临时性努 力。围¾l•è¿™å¥è¯PMBOKåšäº†(ji¨£n)详细的解释和举例说明åQŒå¾ˆä¸¥è°}åQŒæƒ³äº?ji¨£n)解的请å¦ä¹?f¨¤n)PMBOKã€‚å› ä¸ºéƒ½æ˜¯ç¿»è¯‘è¿‡æ¥çš„定义åQŒç¿»è¯‘å¾—˜q‡äºŽæœ¯è¯åŒ–很å®ÒŽ(gu¨©)˜“把äh¾l•进去,åœ?国内䏿ޒ除已¾l拿到PMP认è¯è¯ä¹¦çš„专业äh士还æžä¸æ¸…楚™å¹ç›®½I¶ç«Ÿæ˜¯ä»€ä¹ˆã€‚笔者在˜q™é‡Œåªæƒ³ç”¨æ±‰è¯æœ€é€šä¿—çš„è¯a€æ¥è¯´æ˜Žä»€ä¹ˆæ˜¯™å¹ç›®å’Œé¡¹ç›®ç®¡ç†ã€?/p>
™å¹ç›®åQŒå°±æ˜¯åœ¨é™å®šçš„æ—¶é—´è¦äººå®Œæˆçš„事。记ä½ä¸‰ä¸ªå…³é”®å—å›_¯æŠŠæ¡åQšähã€æ—¶ã€äº‹ã€?/p>
™å¹ç›®½Ž¡ç†ž®±æ˜¯å‚与者用什ä¹?çŸ¥è¯†ã€æŠ€èƒ½ã€å·¥å…—÷€æ–¹æ³?æ¥åœ†æ»¡åœ°òq²å¥½˜q™äšg事ã€?/p>
明白äº?ji¨£n)è¿™äº›ï¼Œä½ å°±ä¼š(x¨¬)明白从日常生活的åƒå–拉撒到国家½Ž¡ç†åQŒå¤„处都是项目,处处都需è¦é¡¹ç›®ç®¡ç†ï¼Œä¹Ÿå°±èƒ½æ˜Žç™½æ¯ä¸ªäh都需è¦é¡¹ç›®ç®¡ç†ï¼Œä¹Ÿå°±èƒ½ç†è§£å¦ä¼?x¨¬)äº?ji¨£n)™å?目管ç†å°†ä¼?x¨¬)多么å—ç›Šæ— ½IøP¼Œå¨´ç†Ÿ˜q用™å¹ç›®½Ž¡ç†æ€ç»´ž®†æ— å¾€ä¸èƒœ!
ä½†éœ€è¦æé†’å¤§å®¶ä¸€ç‚¹ï¼ŒçŽ°åœ¨çš„PMBOKæ˜¯æŠŠä¼ ç»Ÿåˆ‰™€ 行业ã€å¾½{‘行业ã€IT行业½{‰å¤šä¸ªè¡Œä¸šé¢†åŸŸçš„™å¹ç›®½Ž¡ç†çŸ¥è¯†¾p…åˆåˆîCº†(ji¨£n)ä¸€èµøP¼Œå¤§è€Œå…¨åQŒä½†é’ˆå¯¹æ€§ä¸å¤Ÿå¥½åQ?所以很多äh觉得PMBOKç†è®ºåŒ–太强,å¦å®Œäº?ji¨£n)觉得很多东西没用。现在国际知åçš„å¦å¤–一套项目管ç†è®¤è¯ï¼ŒIPMP是按照工作岗ä½èƒ½åŠ›è¿›è¡Œäº†(ji¨£n)分çñ”åQŒä¹Ÿæ²¡æœ‰é’ˆå¯¹ 行业˜q›è¡Œåˆ†è§£ã€‚æ‰€ä»¥ï¼Œæ— è®ºæ‹¿åˆ°PMP或者IPMPåQŒå¾ˆå¤šäh都会(x¨¬)æœ‰åŒæ ïL(f¨¥ng)š„困惑。æ®äº?ji¨£n)è§£åQŒPMIå·²ç»å‡†å¤‡åšè¿™æ ïL(f¨¥ng)š„æ”¹è¿›åQŒè¿™æ˜¯ä¸€ä¸ªå¾ˆå¥½çš„æ¶ˆæ¯ã€?/p>
错误三:(x¨¬)忘记™å¹ç›®ç›®æ ‡
ä½ çœ‹åˆ°è¿™ä¸ªé¢˜ç›®ä»€ä¹ˆæ„Ÿè§?很多äºÞZ¼š(x¨¬)觉得˜q™æ ·çš„错误怎么ä¼?x¨¬)å‘ç?å‡ ä¹Žæ²¡æœ‰äºÞZ¼š(x¨¬)è®¤äØ“(f¨´)自己犯这个错è¯?忘记™å¹ç›®ç›®æ ‡æœ‰ä¸¤¿U情形:(x¨¬)一是从开始接手项目就没弄 清楚™å¹ç›®çš„ç›®æ ‡æ˜¯ä»€ä¹?二是虽然清楚™å¹ç›®çš„ç›®æ ‡æ˜¯ä»€ä¹ˆï¼Œä½†å´òq²ç€è·Ÿå®Œæˆé¡¹ç›®ç›®æ ‡æ— å…Ÿë€ç”šè‡Ïxœ‰å®³çš„事ã€?/p>
时刻é“è®°™å¹ç›®ç›®æ ‡æ˜¯é¡¹ç›®ç®¡ç†å¾ˆé‡è¦çš„一个æ€ç»´åQŒé¡¹ç›®æ‰€æœ‰çš„‹zÕdŠ¨éƒ½å›´¾l•è¿™ä¸ªå±•å¼€ã€‚å¯æ˜¯éšç€™å¹ç›®çš„逿¥å¼€å±•,ž®¤å…¶æ˜¯å¤æ‚项目:(x¨¬)人多ã€äº‹å¤šã€å‘¨æœŸé•¿åQŒå¾ˆå¤?™å¹ç›®¾lç†ä¼?x¨¬)逿¸å› 䨓(f¨´)个äh喜好而忘è®îCº†(ji¨£n)™å¹ç›®çš„å¤§ç›®æ ‡åQŒæ¯”较典型的有:(x¨¬)技术出íw«çš„™å¹ç›®¾lç†ä¼?x¨¬)沉˜q·äºŽæŠ€æœ¯ç»†èŠ‚ï¼Œå¤§é‡æ—‰™—´èŠ±åœ¨å¦ä¹ (f¨¤n)新技术或者一头闷在解å†ÏxŠ€æœ¯éš¾é¢?ä¸?脾气ç«çˆ†çš„项目ç»ç†ä¼š(x¨¬)å› äØ“(f¨´)很多ä¸å€¼å½“的事情大å‘脾气,把团队æžå¾—乌烟瘴æ°?ž®å¿ƒ(j¨©)眹{€çˆ±é¢å的项目ç»ç†ä¼š(x¨¬)å› äØ“(f¨´)æŸä¸ª¾l„å‘˜æ— æ„的顶撞而怀æ¨åœ¨å¿?j¨©)ï¼Œä»Žæ¤æ€È»™å…?½I¿å°éž‹ï¼Œæžå¾—团队拉帮¾l“æ´¾åQŒæ¯«ä¸å›¢¾l?˜q˜æœ‰æ›´ç³Ÿ¾p•çš„åQŒæ¯”如爱玩游æˆçš„åQŒçˆ±å–å°é…’çš„½{‰ç‰ã€‚æ‰€æœ‰è¿™äº›ï¼Œæ— è®ºåŽŸå› æ˜¯è‡ªíw«ä¸æˆç†ŸåQŒè¿˜æ˜¯ç®¡ç†ç»éªŒã€ç®¡ç†èƒ½åЛ䏑»I¼Œ¾l?æžœéƒ½ä¸€æ øP¼Œé‚£å°±æ˜¯é¡¹ç›®å‡ºé—®é¢˜åQŒç”šè‡›_¤±è´¥ã€?/p>
™å¹ç›®¾lç†æœ€é‡è¦çš„一™å¹ä“Q务就是跟ítªä¸ŽæŽ§åˆ¶åQŒæ—¶åˆÀLŠŠæ¡é¡¹ç›®æ–¹å‘,ä¿è¯™å¹ç›®è®¡åˆ’得以™åºåˆ©æ‰§è¡ŒåQŒåå·®æŽ§åˆ¶åœ¨å¯æŽ§é£Žé™©èŒƒå›´å†…ã€‚ä½†™å¹ç›®æ€ÀL˜¯æœ‰å¤ªå¤šæ„å¤–å› ç´ ï¼Œž®?其是周期长的™å¹ç›®åQŒäh们常用夜长梦多æ¥å½¢å®¹é£Žé™©ä¼?x¨¬)éšæ—‰™—´çš„åšgé•¿è€Œå¢žåŠ ï¼Œæ‰€ä»¥é¡¹ç›®ç»ç†ä¸€å®šæ—¶åˆ»éƒ½è¦ä¿æŒå¤´è„‘清醒,寚w¡¹ç›®æ— 益的事情ä¸åšåQŒå¯¹™å¹ç›®æœ‰é£Žé™©çš„事情 æ›´ä¸èƒ½åšã€?/p>
ä»ÖM½•™å¹ç›®åœ¨å¼€å±•过½E‹ä¸éƒ½ä¼š(x¨¬)䏿–é¢å¯¹æœÞZ¼š(x¨¬)和诱惑,™å¹ç›®¾lç†ä¸€å®šè¦èƒ½æ˜Ž¼‹®é¡¹ç›®å¤§ç›®æ ‡åQŒæ‰èƒ½æ¸…晰地识别哪些是ä‹É™å¹ç›®æˆåŠŸçš„æœºä¼?x¨¬),哪些是ä¼?x¨¬)¾l™é¡¹ç›®å¸¦æ¥é£Žé™©çš„ 诱惑åQŒæ‰ä¼?x¨¬)少走弯路,早日æˆåŠŸã€‚é¡¹ç›®ç®¡ç†è€…è”盟,™å¹ç›®½Ž¡ç†é—®é¢˜ã€?/p>
人是需è¦ä¸æ–被æé†’的,˜q™ç”±äººæ€§å†³å®šã€‚æ™ºæ…§çš„äºø™ƒ½å¤Ÿä¸æ–çš„åçœä»Žè€Œè‡ªæˆ‘æé†’,愚笨的ähä¼?x¨¬)被挫折ã€å¤–界的è¦ç¤ºä¸æ–æé†’åQŒè¿™ž®±åÅžæˆäº†(ji¨£n)æˆåŠŸä¸Žå¤±è´¥çš„å·®å¼‚ã€?/p>
错误四:(x¨¬)计划ä¸èƒ½å?/strong>
æ€Žæ ·æ‰èƒ½ä¿è¯™å¹ç›®æˆåŠŸ?计划åQŒè®¡åˆ’,å†è®¡åˆ’,˜q™æ˜¯™å¹ç›®½Ž¡ç†çš„æœ€ä½?j¨©ng)_®žè·?所以,åšé¡¹ç›®ç®¡ç†çš„一般都知é“如何¾~–制™å¹ç›®è®¡åˆ’åQŒåƈ且很多äh能熟¾lƒçš„使用 Project工具åQŒçŸ¥é?0ž®æ—¶æˆ–è€?0ž®æ—¶æ³•则ã€WBS和关键èµ\径的概念。æ¯ä¸ªé¡¹ç›®ç»ç†éƒ½ä¼?x¨¬)è®°ä½è®¡åˆ’一旦åÅžæˆï¼Œž®×ƒ¸¥æ ¼æŒ‰ç…§è®¡åˆ’去执行åQŒè€Œä¸å—æŸä¸ªähã€?æŸäšg事的影哘q™ä¸ªåŽŸåˆ™åQŒä¹Ÿæ˜Žç™½˜q™æ ·åšä¸ä»…能够凞®‘大é‡èµ„æºçš„‹¹ªè´¹åQŒäñ”å“的质é‡ä¹Ÿèƒ½å¾—到ä¿éšœã€‚所以,很多™å¹ç›®¾lç†æŽ’æ–¥åQŒç”šè‡Ïx‹’¾l改å˜è®¡åˆ’ã€‚åšæŒåŽŸåˆ™ï¼Œ˜q™è²Œä¼?没什么错åQŒä½†çœŸçš„˜q™æ ·ä¹?
è¦å¼„æ¸…æ¥šä¸€ä»¶äº‹æ˜¯å¦æœ‰å¿…è¦åšåQŒé¦–先就得弄清楚两个问题åQšä¸€ã€è¿™ä»¶äº‹ä¸ÞZ»€ä¹ˆè¦å?二ã€åšäº?ji¨£n)有什么好å¤?
那我们首先问一下编制计划的目的是什ä¹?我们知é“计划是项目管ç†çš„æœ€ä½?j¨©ng)_®žè·µï¼Œè®¡åˆ’是ä¿è¯é¡¹ç›®æˆåŠŸçš„ä¸€¿U手ŒDµå’Œæ–ÒŽ(gu¨©)³•åQŒåš˜q™äšgäº‹åªæœ‰ä¸€ä¸ªç›®çš„ï¼Œé‚£å°±æ˜¯äØ“(f¨´) äº?ji¨£n)ä¿è¯é¡¹ç›®æˆåŠŸï¼Œä½†å‰ææ˜¯åQŒè¿™ä»½è®¡åˆ’是周密的ã€å¯è¡Œçš„ã€‚ä¸¥æ ¼æ‰§è¡Œä¸€ä»½å‘¨å¯†å¯è¡Œçš„™å¹ç›®è®¡åˆ’æ‰èƒ½ä¿è¯™å¹ç›®æˆåŠŸã€‚å¾ˆå¤šé¡¹ç›®ç»ç†è®°ä½äº†(ji¨£n)上é¢çš„ä¸¥æ ¼æ‰§è¡ŒåŽŸåˆ™ï¼Œä½†å¿˜è®?äº?ji¨£n)è¿™ä¸ªå¤§å‰æã€?/p>
½W¬äºŒä¸ªé—®é¢˜ï¼Œè®¡åˆ’有什么好å¤?™å¹ç›®½Ž¡ç†çš„è®¡åˆ’æ–¹æ³•ï¼ŒæŠŠé¡¹ç›®æ´»åŠ¨ã€æŒ¾læ—¶é—´ã€æ‰€éœ€èµ„æºæœ‰æœºåœ°ç»“åˆåœ¨ä¸€èµøP¼Œòq¶ä¸”æœ‰ä¸¥æ ¼çš„å…ˆåŽ‹Æ¡åºã€é‡Œ½E‹ç¢‘和关键èµ\径,å?以清晰地æé†’™å¹ç›®æ‰€æœ‰æˆå‘˜åœ¨ä»€ä¹ˆæ—¶é—ß_(d¨¢)¼Œåšä»€ä¹ˆäº‹æƒ…,ä¿è¯æ¯ä¸ª™å¹ç›®ä»ÕdŠ¡éƒ½å¾—ä»¥æ‰§è¡?通过对计划的执行跟踪åQŒé¡¹ç›®ç»ç†å¯ä»¥æ¸…晰地äº?ji¨£n)è§£™å¹ç›®˜q›å±•情况和å差情况, 评估òq¶åŠ(qi¨¢ng)时有效的控制™å¹ç›®é£Žé™©åQŒä»Žè€Œä¿è¯é¡¹ç›®çš„æˆåŠŸã€?/p>
明白äº?ji¨£n)这两点åQŒæˆ‘们冿¥çœ‹IT™å¹ç›®ã€‚对多数IT™å¹ç›®åQŒå°¤å…¶æ˜¯è½¯äšg实施™å¹ç›®åQŒå¯åŠ¨æ—¶éƒ½å˜åœ¨èŒƒå›´ä¸å¤Ÿæ˜Žæ™ŽÍ¼Œéœ€æ±‚丼‹®å®šçš„æƒ…å†üc(di¨£n)€‚åªæœ‰åˆ°è½¯äšgDemo产生åQ?æ‰å¯èƒ½éœ€æ±‚清晎ͼŒèŒƒå›´¼‹®å®šåQŒè¿™äº›æƒ…况就军_®šäº?ji¨£n)IT™å¹ç›®è®¡åˆ’éœ€è¦æ ¹æ®é¡¹ç›®çš„实际情况å?qi¨¢ng)æ—¶˜q›è¡Œä¿®æ£ã€‚如何压¾~©èŒƒå›´ç¡®å®šçš„æ—‰™—´åQŒæ—©æ—¥åˆ¶å®šå‡ºå‘¨å¯†å¯è¡Œçš„计划,是èÊY 仉™¡¹ç›®çš„一个é‡è¦è¯¾é¢˜ã€?/p>
制定一份周密å¯è¡Œçš„计划是项目ç»ç†ä¼˜¿U€èƒ½åŠ›çš„ä½“çŽŽÍ¼Œž®¤å…¶æ˜¯WBSçš„åˆ¶å®šï¼Œå¯¹å¤æ‚项目有很大隑ֺ¦ã€‚在è°?008奥这å¹ç›®çš„管ç†ä½“ä¼?x¨¬)æ—¶åQŒé¡¹ç›®ä¸“家曹蕑ְ± æåˆ°å¥¥è¿ä¼?x¨¬)项目最隄¡š„一点就是WBS的制å®?å‚è§PMU¾|‘ç«™å¯?008奥这å¹ç›®çš„访è°?。è¦ä¿è¯™å¹ç›®çš„æˆåŠŸï¼Œž®Þp¦ä¿è¯™å¹ç›®çš„æ¯ä¸ªæ´»åŠ¨éƒ½èƒ½å¾—ä»¥é¡ºåˆ©æ‰§è¡Œã€‚æ‰€ 以,在项目情况å‘生å˜åŒ–ï¼Œåœ¨åŽŸæœ‰çš„è®¡åˆ’åŸºç¡€ä¸Šæœ‰éœ€æ±‚å˜æ›´æ—¶åQŒå°±è¦æŠŠæ–°çš„ä»ÕdŠ¡è¡¥å……åˆ°è®¡åˆ’ä¸åQŒä¿®æ£è®¡åˆ’,¼‹®ä¿WBS的完æ•ß_(d¨¢)¼Œ¼‹®ä¿è®¡åˆ’周密å¯è¡ŒåQŒä¹‹åŽçš„å·¥ä½œæ‰æ˜¯ ä¸¥æ ¼æ‰§è¡Œã€?/p>
™åÞZ¾¿æä¸€å¥ï¼Œæœ‰äº›™å¹ç›®¾lç†ä¼?x¨¬)èµ°å¦å¤–一个æžç«¯ï¼š(x¨¬)å› äØ“(f¨´)需求丼‹®å®šåQŒæ‰€ä»¥ä¸åˆ¶å®š™å¹ç›®è®¡åˆ’ã€‚è¿™åŒæ ·æ˜¯å¯¹è®¡åˆ’的错误ç†è§£ã€‚å³ä½¿è®¡åˆ’ä¸å¤Ÿå‘¨å¯†ï¼Œä½†å®ƒå¯ä»¥æé†’我们 ™å¹ç›®çš„å¤§ç›®æ ‡æ˜¯ä»€ä¹ˆï¼Œä¿è¯™å¹ç›®å›¢é˜Ÿæ‰€é‡‡å–的行动ä¸å离大方å‘。ä“Q何一™å¹å¤§çš„项目,都å¯ä»¥æ‹†åˆ†æˆå¾ˆå¤šž®é¡¹ç›®ï¼ŒW(xu¨¦)BS的渘q›æ˜Ž¾l†ï¼Œä¹Ÿæ˜¯™å¹ç›®å¿…须完æˆçš„ä“Q务之 一åQŒæ‰€æœ‰ä“Q务的æŒç®‹æ—‰™—´éƒ½æ˜¯è¦ä¼°½Ž—çš„åQŒå³ä½¿ä¸å¤Ÿå‡†¼‹®ï¼Œè‡›_°‘å¯ä»¥ä½œäØ“(f¨´)¾l验累积åQŒäØ“(f¨´)今åŽçš„准¼‹®ä¼°½Ž—åšäº?ji¨£n)å‡†å¤‡ã€‚å› æ¤ï¼Œ™å¹ç›®çš„ä“Q何阶ŒDµéƒ½ä¸€å®šè¦æœ‰è®¡åˆ’ã€?/p>
错误五:(x¨¬)™å¹ç›®ä¸€å®šè¦ç›ˆåˆ©
™å¹ç›®ä¸€å®šè¦ç›ˆåˆ©åQŒè¿™å¥è¯è¢«æ— æ•°IT™å¹ç›®¾lç†å¥‰äØ“(f¨´)真ç†åQŒä¹Ÿž®±æ³¨å®šäº†(ji¨£n)è¦åˆ›é€ 很多æ?zh¨¨n)²å?ä¸ÞZº†(ji¨£n)辑ֈ°˜q™ä¸ªç›®çš„åQŒå¾ˆå¤šIT™å¹ç›®¾lç†ç”šè‡³éƒ½åœ¨æ‚(zh¨¨n)‰å¿ƒ(j¨©)ç ”ç©¶åŽšé»‘å¦ï¼Œå¦ä¹ (f¨¤n) 用什么办法把ž®å¼Ÿæžå¾—çƒæƒ…高涨åQŒæ¯”æ°‘å·¥ç´¯ï¼Œä»Žè€Œç”¨æœ€ä½Žçš„æˆæœ¬åˆ›é€ 最大的利润ã€?/p>
™å¹ç›®½Ž¡ç†ä½œäØ“(f¨´)æˆ˜æœ¯å±‚æ¬¡çš„ç®¡ç†æ‰‹ŒDµï¼Œä¸€å®šè¦æœåŠ¡äºŽæˆ˜ç•¥å±‚‹Æ¡çš„大方å‘。商场如战场åQŒæœ‰èƒœåˆ©ž®×ƒ¼š(x¨¬)æœ‰å¤±è´¥ã€‚äØ“(f¨´)äº?ji¨£n)战略胜利,很多战役è¦è¯±æ•Œæ·±å…¥ï¼Œå¿…须打èÓ|ä»—ã€?败仗ä¸è¦ç´§ï¼Œå…³é”®è¦å¼„清楚败到什么层‹Æ¡ï¼ŒæŸå¤±åˆîC½•¿U地æ¥ï¼Œæ˜Žç¡®æœ¬æ¬¡æˆ˜å½¹çš„çœŸå®žç›®æ ‡ï¼Œå†åŽ»æ‰“è¿™åœºæˆ˜å½¹ï¼Œž®×ƒ¼š(x¨¬)åšåˆ°é©¾è½»ž®Þq†ŸåQŒä»Žè€Œä¸è‡³äºŽåˆ°æœ€åŽåÅžæˆä¸ä»…æŸå…‰|Š˜ ž®†ï¼Œ˜q˜æœªèƒ½è¯±æ•Œæ·±å…¥çš„å±€é¢ã€?/p>
开拓市(j¨¬ng)场ã€å 领市(j¨¬ng)场ã€ç«™½E›_¸‚(j¨¬ng)åœºã€æŒ–掘市(j¨¬ng)场,˜q™æ˜¯æ¯ä¸ªå…¬å¸å‘展必ä¸å¯å°‘çš„æ¥éª¤ã€‚å¾ˆå¤šé¡¹ç›®ï¼Œå¯¹å…¬å¸æ¥è¯´éƒ½æ˜¯äØ“(f¨´)äº?ji¨£n)å 领å¸?j¨¬ng)场,甚至虎å£å¤ºé£Ÿã€‚è¿™æ ïL(f¨¥ng)š„™å¹ç›®åQŒå…¬ 忀»Žæˆ˜ç•¥å±‚é¢é¦–å…ˆè¦æ±‚çš„ç»å¯¹ä¸æ˜¯ç›ˆåˆ©ï¼Œè€Œæ˜¯å¦‚何能把å¸?j¨¬ng)场å 领åQŒç‘ô而站½E»I¼Œ™å¹ç›®¾lç†å¿…须明白˜q™ä¸ªæˆ˜ç•¥æ„图ã€?/p>
òqŒ™¡¡æ˜¯é¡¹ç›®ç®¡ç†æœ€ä¸ºé‡è¦çš„ä¸€ä¸ªæ€æƒ³åQŒä»Ž˜q‡åŽ»çš„åšå¥½è´¨é‡ã€æ—¶é—´ã€æˆæœ¬é¡¹ç›®ä¸‰è¦ç´ çš„åã^衡,到现在满‘³ç›¸å…›_¹²¾pÖMh的需求,所有的最ä½?j¨©ng)_®žè·µå’Œç†è®ºç ”ç©¶æˆæžœåQ?都ç»ä¸ä¼š(x¨¬)æå€¡èµ°æžç«¯åQŒæ€æœºå–å?åˆ©æ¶¦åªæ˜¯™å¹ç›®çš„ä¸€ä¸ªç›®æ ‡ï¼Œòq¶ä¸”ä¸€å®šè¦æ˜Žç™½æœ‰çŸæœŸåˆ©æ¶¦å’Œé•¿æœŸåˆ©æ¶¦ä¹‹åˆ†åQŒè¿‡åˆ†å•一˜q½æ±‚利润的项目注定è¦å¤ÞpÓ|åQŒè¿‡åˆ†è¿½æ±‚利润的å…?忀¹Ÿä¸ä¼š(x¨¬)é•¿ä¹…ã€?/p>
该花的钱ä¸èƒ½çœï¼Œä¸è¯¥èŠÞqš„é’׃¸€åˆ†ä¹Ÿä¸è¦èŠ±ï¼Œ™å¹ç›®¾lç†æŠŠæˆæœ¬æŽ§åˆ¶åœ¨åˆç†çš„预½Ž—范围内åQŒå°±æ˜¯æˆæœ¬æŽ§åˆ¶çš„æˆåŠŸã€‚ä¸‡ä¸‡ä¸å¯äØ“(f¨´)äº?ji¨£n)把一个注定è¦èµ”钱的项目åšå¾—盈 利而想ž®½åŠžæ³•ã€ç»žž®½è„‘æ±åŽ‹¾~©æˆæœ¬ï¼Œä»Žè€Œè®©¾l„å‘˜åŠ çåŠ ç‚¹åQŒçީ命干‹z»ï¼Œåˆ°æœ€åŽï¼Œ™å¹ç›®òq²å®Œäº?ji¨£n),äºÞZ¹Ÿèµ°å…‰äº?ji¨£n),˜q˜æžæœ‰å¯èƒ½å› 䏸™µ¶å·¥å¯¼è‡´é¡¹ç›®è´¨é‡ä¸åˆæ ¼åQŒå®¢æˆ·ä¸æ»¡æ„åQ?那就真的赔了(ji¨£n)夫ähåˆæŠ˜å…?
™å¹ç›®¾l„è¦èƒ½ä¿æŒæ¿€æƒ…高效,ä¸èƒ½æ‡’散拖沓åQŒé¡¹ç›®ç»ç†ä¸€å®šè¦æŠŠæ¡å¥½è¿™ä¸ªåº¦åQŒç»ä¸èƒ½èµ°æžç«¯ã€‚åã^衡是一门艺术,也是展示™å¹ç›®¾lç†èƒ½åŠ›æ°´åã^的一个é‡è¦æ ‡ž®?
错误å…:(x¨¬)è®îC½äº?ji¨£n)ç§‘å¦ï¼Œå¿˜è®°äº†(ji¨£n)有æ?/strong>
å¦ä»¥è‡´ç”¨åQŒå°±æ€•äØ•ç”¨ã€‚æ— è®ºæ˜¯äº§å“ã€æŠ€æœ¯è¿˜æ˜¯ç®¡ç†æ–¹æ³•,都å˜åœ¨äØ“(f¨´)äº?ji¨£n)æ›´å…ˆè¿›ã€æ›´¿U‘å¦è€Œç½”™å„¡Ž°å®žï¼Œç›²ç›®ä¹Þq”¨çš„现象,¾l“果先进和科å¦çš„æŠ€æœ¯ã€å·¥å…·ä¸ä»…未æé«˜ 生äñ”效率åQŒå´æˆäº†(ji¨£n)累赘åQŒè¿™æ ïL(f¨¥ng)š„æƒ…况到处都是åQŒåœ¨IT™å¹ç›®ä¸ä¹Ÿä¸ºæ•°ä¸å°‘ã€?/p>
国内大é‡å¤ÞpÓ|çš„ERP™å¹ç›®ž®±æ˜¯˜q™ç±»é”™è¯¯çš„典型。有人把ERP™å¹ç›®å½’结ä¸ÞZ¸€æŠŠæ‰‹å·¥ç¨‹åQŒæ„æ€æ˜¯åªæœ‰é¢†å¯¼é‡è§†òq¶æŽ¨åЍæ‰èƒ½æˆåŠŸã€‚é¢†å¯¼æ”¯æŒæ˜¯™å¹ç›®æˆåŠŸå¾ˆé‡è¦çš„ 一个æ¡ä»Óž¼Œä½†ç»ä¸æ˜¯æœ‰é¢†å¯¼æ”¯æŒå°±ä¸€å®šèƒ½å¤ŸæˆåŠŸã€‚æœ‰äº›é¡¹ç›®å°±æ˜¯é¢†å¯¼å†³½{–失误盲目上的,从开始就注定™å¹ç›®è¦å¤±è´¥ã€‚一个信æ¯åŒ–™å¹ç›®çš„实施,对很多ä¼ä¸šæ¥è¯´å°±æ˜¯ä¸€ 场大的改é©ï¼Œå¯ÒŽ(gu¨©)‰€æœ‰å‘˜å·¥ä»Žæ€ç»´ã€æŠ€èƒ½åˆ°å·¥ä½œä¹?f¨¤n)惯½{‰å¤šæ–šw¢éƒ½éœ€è¦è¿›è¡Œè°ƒæ•´ã€‚如果ä¼ä¸šçš„å‘˜å·¥ç´ è´¨ä¸èƒ½è·Ÿä¸ŠåQŒçºµç„¶æœ‰å„ç§å„æ ·çš„åŸ¹è®ï¼Œä½†ä¸™å‘Ö‘˜å·¥åŸº¼‹€å’Œå¦ä¹?f¨¤n)曲¾U¿ï¼Œ 用户ä¸èƒ½çœŸæ£æŽŒæ¡å…¨æ–°çš„ç³»¾lŸï¼Œ¾l“æžœž®±åªèƒ½å¢žåŠ ç”¨æˆ¯‚´Ÿæ‹…,而äñ”生ä¸äº?ji¨£n)期望的效果ã€?/p>
很多IT™å¹ç›®¾lç†åœ¨å¦ä¹?f¨¤n)äº?ji¨£n)一些新的技术åŽåQŒæ€ÀLƒ³ç«‹åˆ»åœ¨é¡¹ç›®ä¸å®žè·µåQŒè€Œä¸åŽÖM»”¾l†åˆ†æžè¿™äº›æŠ€æœ¯åœ¨˜q™ä¸ª™å¹ç›®ä¸æ˜¯å¦éœ€è¦ï¼Œæ˜¯å¦é€‚åˆã€‚ITæŠ€æœ¯æ—¥æ–°æœˆå¼‚ï¼Œä¸æ– 有新的ç†è®ø™¢«æå‡ºæ¥ï¼Œè¢«ç¿»è¯‘引˜q›åˆ°å›½å†…。有些项目ç»ç†åœ¨ä¸€çŸ¥åŠè§£ï¼Œå¯¹è¿™äº›æŠ€æœ¯è¿˜ä¸æ˜¯å¾ˆç†Ÿæ‚(zh¨¨n)‰çš„æƒ…况下,ž®±æ•¢å‘ähå¹å˜˜ä»–æ‰€æŽŒæ¡æŠ€æœ¯çš„¿U‘妿€§ã€å…ˆ˜q›æ€§ï¼Œ˜q›è€Œå¼ºåˆ?è¦æ±‚在项目ä¸å®žè·µã€‚è¿™å¯èƒ½æ˜¯ç”²æ–¹çš„™å¹ç›®¾lç†åQŒä¹Ÿå¯èƒ½æ˜¯ä¹™æ–¹çš„™å¹ç›®¾lç†ã€‚å› ä¸ºæŠ€æœ¯é€‰æ‹©é”™è¯¯å¯ÆD‡´™å¹ç›®å¤ÞpÓ|的例å在国内˜q‡åŽ»æœ‰ï¼ŒçŽ°åœ¨ä¹Ÿè¿˜æœ?¾l对ä¸å¯å‡†å¤‡ä¸èƒöåQ?大范围引入全新的技术,待到™å¹ç›®æ—‰™—´˜q‡å޻䏀åŠäº†(ji¨£n)åQŒæ‰å‘现选择的技术ä¸é€‚用åQŒé‚£æ—¶å€™ä¸€åˆ‡éƒ½æ™šäº†(ji¨£n)。掌æ¡ä“Q何新东西都有å¦ä¹ (f¨¤n)曲线åQŒé¡¹ç›®çš„æ—‰™—´é™åˆ¶æ˜¯é¡¹ç›®ç»ç†å¿…™å?时刻牢记的è¦ç´ ,把æ¡ä¸å¥½ž®×ƒ¼š(x¨¬)¾l™é¡¹ç›®å¸¦æ¥æžå¤§é£Žé™©ã€?/p>
涉åŠ(qi¨¢ng)到具体的IT™å¹ç›®½Ž¡ç†åQŒPMBOK的知识体¾pÕd¯è°“åšå¤§ï¼Œ˜q˜æœ‰ä¸€äº›å…¶ä»–新的项目管ç†å·¥å…øP¼Œä¸èƒ½è¯´ä¸å…ˆè¿›åQŒä½†æ˜¯å“ªäº›çŸ¥è¯†ã€å·¥å…—÷€æ–¹æ³•é€‚åˆæœ¬é¡¹ç›®ï¼Œéœ€ è¦é¡¹ç›®ç»ç†æ ¹æ®å®žæƒ…,认真分æžåŽè¿›è¡Œç›é€‰ä‹É用ã€?/p>
¿U‘å¦ã€å…ˆ˜q›ã€å¥½ç”¨ç‰½{‰ä¿®é¥°å¤´è¡”è¿™äº›éƒ½ä¸æ˜¯è¦é€‰æ‹©çš„首è¦ç†ç”±ï¼Œéœ€è¦ã€é€‚ç”¨å’Œæœ‰æ•ˆæ‰æ˜¯é¦–è¦è€ƒè™‘的事情。很多IT™å¹ç›®¾lç†å› 䨓(f¨´)òq´è½»åQŒåˆç”Ÿç‰›çŠŠä¸æ€•虎åQŒèƒ†é‡?大,勇气‘»I¼Œæ•¢äºŽåœ¨å®žè·µä¸å¼•å…¥æ–°çš„å·¥å…·ã€æ–¹æ³•。敢于å°è¯•䏿˜¯åäº‹ï¼Œä½†è¯•éªŒçš„é£Žé™©ä¸€å®šè¦æŽ§åˆ¶å¥½ã€‚å¯¹äºŽé¡¹ç›®ç»ç†æ¥è¯ß_(d¨¢)¼Œæ‰€æœ‰çš„决ç–都è¦å›´ç»•™å¹ç›®ç›®æ ‡˜q›è¡Œã€‚é¡¹ç›®ç» ç†çš„首è¦ä»ÕdŠ¡æ˜¯ä¿è¯é¡¹ç›®æˆåŠŸï¼Œå¦‚æžœåŒæ—¶èƒ½å¼•入新的技术ã€å·¥å…øP¼Œå¢žåŠ ¾l„员的知识技能,æå‡™å¹ç›®¾l„工作效率,æé«˜äº§å“的质é‡å’Œå¯é 性,¾l对是锦上添花,但ç»å¯?ä¸èƒ½ä¸ÞZº†(ji¨£n)锦上添花而导致项目失控甚臛_¤±è´¥ï¼Œæ¡äº†(ji¨£n)èŠéº»åQŒä¸¢äº?ji¨£n)西ç?