重慶諾懷軟件有限公司 軟件開發(fā), app開發(fā), 微信開發(fā), 小程序開發(fā) - 軟件設(shè)計(jì) http://www.smt18.com/blogtag/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1 zh-hans 軟件開發(fā)金科玉律之-不要重復(fù)發(fā)明輪子! http://www.smt18.com/blog/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E9%87%91%E7%A7%91%E7%8E%89%E5%BE%8B%E4%B9%8B-%E4%B8%8D%E8%A6%81%E9%87%8D%E5%A4%8D%E5%8F%91%E6%98%8E%E8%BD%AE%E5%AD%90 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>?? ? 以前有個小朋友,特別有好奇心,也喜歡動手搗騰。有一天,他做出來了一個圓圓的,會滾動的東西,感到特別興奮,到處去向別人展示自己的"新發(fā)明"。結(jié)果他發(fā)現(xiàn)別人一點(diǎn)都不稀奇,原來這個東西叫做“輪子”,早在幾千年前就有了,現(xiàn)在已經(jīng)發(fā)展出了上百種的不同規(guī)格、材質(zhì)、樣式,自己的這個相比之下太不完善了,根本不能算是什么發(fā)明。這個小朋友,現(xiàn)在就藏在我們的心里,尤其是經(jīng)驗(yàn)不夠豐富的程序員身上。</p> <p><img alt="" src="/sites/default/files/%E8%BD%AE%E5%AD%90.jpg" style="height:523px; width:758px" /></p> <p>??? 幾年前我曾經(jīng)做過一個項(xiàng)目,經(jīng)過長時間的掙扎之后,項(xiàng)目依然失敗了。主要的原因之一,就是我們重復(fù)發(fā)明了太多的輪子。事情是這樣的,時任項(xiàng)目核心開發(fā)人員的 同事很有鉆研精神,也相當(dāng)自信,當(dāng)時客戶提出的一些基本功能,譬如用戶管理、輸入驗(yàn)證、內(nèi)容管理等,雖然市面上隨處可見現(xiàn)成的模塊和控件,可他總是覺得那 些做得不夠好,說不如自己重新做一個方便,而且重新做更能符合客戶的特殊需求。我當(dāng)時作為PM,雖然對此略有質(zhì)疑,但看他自信滿滿很有激情,而項(xiàng)目時間也很寬松,就同意了。后來僅僅輸入驗(yàn)證這個功能就推翻重來了三次,最終還是選用了一個現(xiàn)成的控件直接用,因?yàn)樗龀鰜淼奶痪邆渫ㄓ眯?,十分難以維護(hù);同時,用戶管理模塊也做得千瘡百孔,極不穩(wěn)定,出現(xiàn)了很多Bug和 考慮不周全的地方,最后也不得不去找現(xiàn)有的成熟的組件替換。結(jié)果,這些“重復(fù)發(fā)明輪子”的開發(fā)工作,不但耗費(fèi)了大量的時間、金錢和精力,而且也沒能發(fā)揮預(yù) 期的效用。事實(shí)證明,現(xiàn)成的控件“輪子”(開源的或收費(fèi)的),經(jīng)歷過時間的檢測和眾人的改進(jìn),總比自己重新?lián)v騰出來的要更成熟、更穩(wěn)定,同時也更加省事、 好用。我們在這個項(xiàng)目中花費(fèi)了這么多時間、金錢、心血,終于證明了“不要重復(fù)發(fā)明輪子”這句話是很有道理的,這個慘痛的教訓(xùn)讓我迄今記憶猶新。</p> <p>?</p> <div><img alt="圖片" src="http://r.photo.store.qq.com/psb?/V10dIc8w03tMUY/SiOnwIrbHrdpirLa6ECkXxGSlz4j807m5iYbSK2xojc%21/o/dE7.tKWuAwAA&amp;bo=iQKAAgAE8gMBANs%21&amp;su=168990289&amp;rf=2-9" style="height:496px; width:504px" /></div> <p>?</p> <p>??? 雖 然此事已經(jīng)時過境遷,但近些年來我發(fā)現(xiàn)有很多人都在“重復(fù)發(fā)明輪子”,尤其是在我們軟件開發(fā)這個圈子里面,年輕的小伙伴們充滿了發(fā)明輪子的欲望和激情,就 好像那個可愛的小朋友一樣。因?yàn)樗麄冇X得這樣做會讓自己學(xué)到很多東西,如果做出來了也會很有成就感。確實(shí),成長和成就的確是他們所需要的東西??扇绻闶?客戶,你會愿意為此承擔(dān)更高的費(fèi)用和風(fēng)險(xiǎn)么?如果你是項(xiàng)目經(jīng)理呢,在成員練手跟項(xiàng)目成功交付之間,哪個更重要?</p> <p>??? 我覺得如 果出于練兵的目的,重新?lián)v騰一個輪子出來當(dāng)然是個好方法,就好像比賽開始前反復(fù)練習(xí)投籃一樣正常??扇绻阋呀?jīng)上戰(zhàn)場了,已經(jīng)開始比賽了,已經(jīng)去幫客戶做 項(xiàng)目了,這時候才來練習(xí)是非常不合適的。因?yàn)槟愫芸赡軙虼硕數(shù)舯荣悺G掉客戶,而且因?yàn)槟銟O其不專業(yè)的表現(xiàn),會影響你的職業(yè)生涯。所以在公司里面,應(yīng) 該明確區(qū)分什么時候是練兵,什么時候是上陣,一定要杜絕上陣后才練兵的不專業(yè)表現(xiàn)。換句話說,工作中不要重復(fù)發(fā)明輪子,要練習(xí)投籃下場后自己慢慢練去,不 要輕易浪費(fèi)在賽場上的出手機(jī)會,just beprofessional.</p> </div></div></div><div id="comment-wrapper-nid-574"></div><div class="field field-name-field-nuova-blogtag field-type-taxonomy-term-reference field-label-above"><div class="field-label">諾懷博客標(biāo)簽:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/blogtag/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">項(xiàng)目管理</a></div><div class="field-item odd"><a href="/blogtag/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">軟件開發(fā)</a></div><div class="field-item even"><a href="/blogtag/%E7%BB%8F%E9%AA%8C" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">經(jīng)驗(yàn)</a></div><div class="field-item odd"><a href="/blogtag/%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">軟件質(zhì)量</a></div><div class="field-item even"><a href="/blogtag/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">軟件設(shè)計(jì)</a></div></div></div> Thu, 17 Apr 2014 08:29:05 +0000 Caven 574 at http://www.smt18.com http://www.smt18.com/blog/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E9%87%91%E7%A7%91%E7%8E%89%E5%BE%8B%E4%B9%8B-%E4%B8%8D%E8%A6%81%E9%87%8D%E5%A4%8D%E5%8F%91%E6%98%8E%E8%BD%AE%E5%AD%90#comments