?? 為什么我們的項(xiàng)目老在reschedule.htm
字號(hào):
<P align=center><FONT color=#ff0000>調(diào)查:[</FONT><A href="http://21icbbs.com/club/vote/showvote.asp?id=98" target=_blank><U><FONT color=#ff0000>您認(rèn)為《匠人的百寶箱》如何?</FONT></U></A><FONT color=#ff0000>] [</FONT><A href="http://21icbbs.com/club/vote/showvote.asp?id=129" target=_blank><U><FONT color=#ff0000>您最喜歡《匠人的百寶箱》中哪個(gè)欄目?</FONT></U></A><FONT color=#ff0000>] [</FONT><A href="http://blog.21ic.com/more.asp?name=cxjr&id=18993"><U><FONT color=#ff0000>請網(wǎng)友來評(píng)選最佳隊(duì)員專欄</FONT></U></A><FONT color=#ff0000>]</FONT> </P></TD></TR></TBODY></TABLE></P></TD></TR></TBODY></TABLE></P>
<P align=left>
<TABLE style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" cellSpacing=1 cellPadding=3 width="100%" bgColor=#cccccc border=0>
<TBODY>
<TR bgColor=#f8f8f8>
<TD>
<P align=left><FONT color=#ff0000 size=4><STRONG><img src=images/face/1.gif ><a href=blog.asp?name=cxjr&subjectid=356>[網(wǎng)絡(luò)酷文]<a href=more.asp?name=cxjr&id=6787>為什么我們的項(xiàng)目老在reschedule?</a></STRONG></FONT><BR>程序匠人 2005-12-5 21:53:00 <a href=more.asp?name=cxjr&id=6787>閱讀全文(620)</a> | <a href=more.asp?name=cxjr&id=6787#comment>回復(fù)(0)</a> | <a href=showtb.asp?id=6787 target=_blank>引用(0)</a><BR><FONT face=宋體 size=4><STRONG>[</STRONG></FONT><A href="http://blog.21ic.org/more.asp?name=cxjr&id=6250" target=_blank><FONT face=宋體 color=#ff0000 size=4><STRONG>廣告8號(hào)位</STRONG></FONT></A><FONT face=宋體 size=4><STRONG>] [</STRONG></FONT><A href="http://blog.21ic.org/more.asp?name=cxjr&id=7705"><U><FONT style="BACKGROUND-COLOR: #000000" face=宋體 color=#ffffff size=4><STRONG>免責(zé)聲明</STRONG></FONT></U></A><FONT face=宋體 size=4><STRONG>] [</STRONG><A href="http://blog.21ic.com/more.asp?name=cxjr&id=18993"><U><FONT style="BACKGROUND-COLOR: #ffff00" color=#ff0000 size=3><STRONG>請網(wǎng)友來評(píng)選最佳隊(duì)員專欄!</STRONG></FONT></U></A><STRONG>]</STRONG></FONT></P></TD></TR>
<TR bgColor=#ffffff>
<TD height=0>
<DIV align=left><P>為什么我們的項(xiàng)目老在reschedule?<BR>類別: 生活工作- hawk @ 10:20 am <BR>昨天開了一個(gè)PM(Project Manager)會(huì)議,討論項(xiàng)目為什么會(huì)老是reschedule的問題。大家都很踴躍,也說出了不少問題,大概歸納了一下,有一下幾點(diǎn): </P>
<P>CBD(code base delivery, 一種不記在項(xiàng)目任務(wù)內(nèi)的遞交,一般由于US PM做出要求或者修改Bug引起)遞交比較多</P>
<P>Rush and small requirements 比較多</P>
<P>用到別的項(xiàng)目組的庫不夠穩(wěn)定</P>
<P>還有與客戶同步開發(fā)修改用戶提出的bug很費(fèi)時(shí)間</P>
<P>QA測試不夠充分</P>
<P>從上面的這些歸納,感覺所有項(xiàng)目delay或者reschedule都是因?yàn)槠渌嗽斐闪恕S懻撨@個(gè)話題的會(huì)議開過幾次,每次都我們總能將項(xiàng)目的責(zé)任推到這些外因上面去,很少有人能夠想到自身的問題。不得不承認(rèn)上面列出的這些問題也是影響項(xiàng)目schedule的因素,甚至還有很多其他的外部因素也在影響項(xiàng)目的進(jìn)展(比如設(shè)備問題等等)。但這些外因是影響項(xiàng)目進(jìn)展的主要因素嗎?</P>
<P>回答這個(gè)問題之前,我們來看看現(xiàn)在schedule的制定:為了盡可能減小一些外部因素或者意外情況對項(xiàng)目的影響,我們在feature評(píng)估的時(shí)候會(huì)留一些“buffer”來解決這些問題,buffer一般在20%左右。如果我們將導(dǎo)致項(xiàng)目delay的主要原因歸咎于外部因素,那是不是意味著我們的項(xiàng)目有超過20%的時(shí)間被其他因素影響,我相信會(huì)存在這種項(xiàng)目,但如果大部分項(xiàng)目都是這樣的話,我們大部分計(jì)劃制定出來之日也決定了它必須被schedule,那我們是不是在整體上來考慮我們的項(xiàng)目計(jì)劃是否合理了?</P>
<P>我個(gè)人更偏向內(nèi)因是影響項(xiàng)目進(jìn)展的主要原因。“Schedule是PM對大家的承諾”,這是Van去年跟我說過的一句話,給我的印象比較深刻,那么從某種意義上來說,schedule也可以認(rèn)為是人的誠信問題。記得我曾經(jīng)說過一句話“如果項(xiàng)目失敗,PM有著不可推卸的責(zé)任”,這句話其實(shí)是一句廢話,負(fù)責(zé)項(xiàng)目的保質(zhì)保量完成是項(xiàng)目經(jīng)理的職責(zé)。如果感到委屈,不防回答一下下面幾個(gè)問題:</P>
<P>1、 你接手項(xiàng)目的時(shí)候知道這個(gè)項(xiàng)目要到達(dá)的目標(biāo)嗎(比如達(dá)到怎樣的性能,內(nèi)存使用情況怎么樣)?</P>
<P>2、 你詳細(xì)了解并掌握了spec的定義嗎?如果不清楚,你是否在計(jì)劃階段與US PM討論過,并確保項(xiàng)目開始前有比較明確的spec?</P>
<P>3、 工作量評(píng)估的時(shí)候,你跟相關(guān)開發(fā)人員討論過每個(gè)任務(wù),并讓他們自己評(píng)估工作量,還是根據(jù)自己的“直覺”填寫MD?</P>
<P>4、 并了解每個(gè)模塊怎么實(shí)現(xiàn)嗎?</P>
<P>5、 你能把握項(xiàng)目的整體框架嗎?你怎么控制保證開發(fā)人員的編碼不偏離你的設(shè)計(jì)?你一直在跟蹤著開發(fā)工作嗎?還是有些模塊你根本不知道怎么回事情?</P>
<P>6、 你每天分發(fā)了開發(fā)人員比較明確的任務(wù),并在每天結(jié)束后來驗(yàn)證過這些任務(wù)嗎?</P>
<P>7、 對于US PM的要求說過“不”嗎?還是來者不拒?</P>
<P>8、 當(dāng)你發(fā)現(xiàn)某一個(gè)設(shè)計(jì)有嚴(yán)重錯(cuò)誤的時(shí)候,你是否能預(yù)知到其可能存在的風(fēng)險(xiǎn),并及時(shí)與總監(jiān)溝通調(diào)整計(jì)劃嗎;還是心存僥幸,希望加緊其他的開發(fā)進(jìn)度以后再來彌補(bǔ)這個(gè)設(shè)計(jì)的缺陷。</P>
<P>9、 在每次遞交當(dāng)天的早上,你與所有開發(fā)人員開過會(huì)議,明確每個(gè)人的遞交任務(wù)了嗎?</P>
<P>10、 你是否忙得連管遞交的時(shí)間都沒有?</P>
<P>11、 你在為提高工作效率和避免讓開發(fā)人員加班而努力嗎?還是對此抱無所謂態(tài)度。</P>
<P>12、 你在乎項(xiàng)目的進(jìn)展嗎?項(xiàng)目的reschedule會(huì)給你壓力感嗎?</P>
<P>作為PM,你說這么多,那你做能做到這些嗎?<BR>我想過去做好這些,至于能否做到,跟個(gè)人能力也有關(guān)系。<BR></P></DIV></TD></TR></TBODY></TABLE><FONT color=#ff0000></FONT>
<P align=right><A href="http://blog.21ic.org/blog.asp?name=cxjr" target=_blank><FONT color=#ff0000>如果你的‘芯’是一座作坊,我愿做那不知疲倦的程序匠。打造一流博客,我們每天在努力!</FONT></A></P><A href="http://blog.21ic.org/blog.asp?name=cxjr" target=_blank><FONT color=#ff0000></FONT></A><br><a name='comment'></a><table width='90%' border='0' align='center' cellspacing='0' cellpadding='0'> <tr> <td><strong>發(fā)表評(píng)論:</strong></tr></td></table>
<table width='90%' border='0' align='center' cellspacing='0' cellpadding='0'> <tr> <td><table align='left' width='100%' border='0' cellspacing='0' cellpadding='0'>
<form action='more.asp?name=cxjr&id=6787&action=addcomment_ic' method='post' name='commentform' onSubmit='return Verifycomment()'>
<tr><td height='25' align='left'>昵稱:<input name='UserName' type='text' id='UserName' size='15' maxlength='20' value=''></td></tr>
<tr><td height='25' align='left'>密碼:<input name='Password' type='password' id='Password' size='15' maxlength='20' value=''> (游客無須輸入密碼)</td></tr>
<tr ><td height='25' align='left' >驗(yàn)證碼:<input name='GetCode' type='text' id='GetCode' size='12' maxlength='20' /> <img src='inc/code.asp' width='40' height='10' border='0' /><td></tr><tr ><td height='25' align='left' >主頁:<input name='homepage' type='text' id='homepage' size='42' maxlength='50' value='http://'><td></tr><tr ><td height='25' align='left' >標(biāo)題:<input name='commenttopic' type='text' id='commenttopic' size='42' maxlength='50' value='回復(fù):為什么我們的項(xiàng)目老在reschedule?'><td></tr><tr height='200'><td ><INPUT type='hidden' name='edit' id='edit' value=''>
<link rel="STYLESHEET" type="text/css" href="images/edit.css">
<Script Src="images/DhtmlEdit.js"></Script>
<table id="oblog_Container" class="oblog_Body" height=100% width=350 cellpadding=1 cellspacing=0 border=0 >
<tr>
<td height="10"> <table cellpadding=0 cellspacing=0 >
<tr class="yToolbar" ID="ExtToolbar0" >
<td> <select language="javascript" class="oblog_TBGen" id="FontSize" onchange="FormatText('fontsize',this[this.selectedIndex].value);">
<option class="heading" selected>字號(hào)
<option value="1">1
<option value="2">2
<option value="3">3
<option value="4">4
<option value="5">5
<option value="6">6
<option value="7">7</option>
</select>
<td class="oblog_Btn" TITLE="加粗" LANGUAGE="javascript" onclick="FormatText('bold', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/bold.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="斜體" LANGUAGE="javascript" onclick="FormatText('italic', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/italic.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="下劃線" LANGUAGE="javascript" onclick="FormatText('underline', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/underline.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="取消格式" LANGUAGE="javascript" onclick="FormatText('RemoveFormat', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/removeformat.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="左對齊" NAME="Justify" LANGUAGE="javascript" onclick="FormatText('justifyleft', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/aleft.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="居中" NAME="Justify" LANGUAGE="javascript" onclick="FormatText('justifycenter', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/center.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="右對齊" NAME="Justify" LANGUAGE="javascript" onclick="FormatText('justifyright', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/aright.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="插入表情" LANGUAGE="javascript" onclick="oblog_foremot()" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/smiley.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td id="forecolor" name=forecolor class="oblog_Btn" TITLE="字體顏色" LANGUAGE="javascript" onclick="oblog_foreColor();" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/fgcolor.gif" WIDTH="16" HEIGHT="16" unselectable="on" > </td>
<td id="backcolor" class="oblog_Btn" TITLE="字體背景顏色" LANGUAGE="javascript" onclick="oblog_backColor();ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn';>
<img class="oblog_Ico" src="images/fbcolor.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="插入超級(jí)鏈接" LANGUAGE="javascript" onclick="oblog_forlink();ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/wlink.gif" WIDTH="18" HEIGHT="18" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="去掉超級(jí)鏈接" LANGUAGE="javascript" onclick="FormatText('Unlink');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; >
<img class="oblog_Ico" src="images/unlink.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
<td class="oblog_Btn" TITLE="清理代碼" LANGUAGE="javascript" onclick="oblog_CleanCode();ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn';>
<img class="oblog_Ico" src="images/cleancode.gif" WIDTH="16" HEIGHT="16"></td>
</tr>
</table></tr>
<tr>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -