自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

十五種糟糕方式讓編程生產(chǎn)力跌入谷底

譯文
開(kāi)發(fā) 項(xiàng)目管理
沒(méi)完沒(méi)了的大會(huì)小會(huì)、啥也不懂的直屬領(lǐng)導(dǎo)、流于形式的生產(chǎn)指標(biāo)——正是這冠冕堂皇的一切扼殺了無(wú)數(shù)即將誕生的偉大軟件。

沒(méi)完沒(méi)了的大會(huì)小會(huì)、啥也不懂的直屬領(lǐng)導(dǎo)、流于形式的生產(chǎn)指標(biāo)——正是這冠冕堂皇的一切扼殺了無(wú)數(shù)即將誕生的偉大軟件。

[[91638]]

十五大編程生產(chǎn)力殺手

產(chǎn)品本來(lái)昨天就應(yīng)該搞定出爐。用戶們怒吼著質(zhì)問(wèn)為什么其中尚存在功能缺失。老板的老板表示你們這幫開(kāi)發(fā)人員***快點(diǎn)行動(dòng),不然就準(zhǔn)備滾蛋??傊?,一切似乎都在朝著最壞的可能發(fā)展。

每個(gè)人都希望代碼都像消防帶里的水一樣傾泄而出、酣暢淋漓,但卻沒(méi)人愿意為開(kāi)發(fā)人員提供他們完成工作所需要的一切。沒(méi)錯(cuò),那些要求提前搞定工作的老板從來(lái)不愿意多顧幾位技術(shù)員工、采購(gòu)性能更強(qiáng)的設(shè)備或者作出哪怕一丁點(diǎn)有利決策,從而幫助程序員們簡(jiǎn)化工作流程。

在今天的文章中,我們將一同回顧十五大橫亙于程序員面前的障礙。由于采用非正式調(diào)查形式,因此我們輕松得到了開(kāi)發(fā)人員們的心聲——帶著同情之心與他們交談,一切不快與委屈將不再是秘密。

[[91639]]

1. 開(kāi)會(huì)

朋友們對(duì)哪種狀況抱怨最多?毫無(wú)疑問(wèn)就是沒(méi)完沒(méi)了的會(huì)議。經(jīng)過(guò)我們的調(diào)查核實(shí),很多程序員都不得不擠在昏暗的會(huì)議室里,呆望頂頭上司閑談那些無(wú)關(guān)緊要的細(xì)枝末節(jié)。程序員們一般會(huì)把會(huì)議失敗的原因歸結(jié)在管理者身上,偶爾也把怨氣與指責(zé)丟向其他在漏洞、功能或者架構(gòu)策略上犯了錯(cuò)誤的技術(shù)同行。

不過(guò)即使是會(huì)議確實(shí)是在討論軟件抽象世界中的深層難題,程序員們一樣會(huì)對(duì)此感到不滿??觳蛷N師也許能夠迅速應(yīng)對(duì)各種不同類(lèi)型的需要,但切換思維方式從而與抽象算法對(duì)接則需要預(yù)熱時(shí)間——而且會(huì)議往往令正常工作受到一小時(shí)甚至更長(zhǎng)時(shí)間的耽擱。

[[91640]]

2. 回復(fù)全部郵件

如果說(shuō)會(huì)議太多令人厭煩,那么另一種狀況則更讓我們難以承受:無(wú)窮無(wú)盡、洶涌而來(lái)的郵件。光是回復(fù)這些郵件就要花上幾個(gè)小時(shí),而且不過(guò)是對(duì)方還是我們自己都無(wú)法對(duì)郵件的結(jié)果表示滿意。這時(shí),開(kāi)發(fā)人員們往往會(huì)以惡劣的態(tài)度回復(fù)“tl;dr”并產(chǎn)生某種奇特的自豪感。

某些團(tuán)隊(duì)正在嘗試每周選擇一天禁止郵件流通,另一些更加堅(jiān)決的朋友則主張徹底告別郵件。這雖然解決了處理內(nèi)容過(guò)多的問(wèn)題,但卻同時(shí)提高了通信成本。如果人們忽然之間就失去了協(xié)作的紐帶,這從任何角度來(lái)看都不是什么好事。

[[91641]]

#p#

3. 試圖衡量生產(chǎn)指標(biāo)

似乎總有管理團(tuán)隊(duì)盲目遵從這樣一條格言,“你無(wú)法管理自己不能衡量的事物”。好吧,他們開(kāi)始不斷統(tǒng)計(jì)提交量、軟件代碼行或者漏洞修復(fù)數(shù)。他們以為這種數(shù)字統(tǒng)計(jì)就是衡量,而衡量意味著良好的結(jié)果。

不過(guò)程序員們都是出色的游戲玩家,而生產(chǎn)力衡量指標(biāo)則成為他們的追求的分?jǐn)?shù)排行榜。在這種機(jī)制的推動(dòng)下,他們不再將編寫(xiě)優(yōu)質(zhì)代碼作為***要?jiǎng)?wù),反而專(zhuān)注于編寫(xiě)盡可能多的代碼行、解決更多漏洞、***程度增加提交量或者其它任何能夠被計(jì)入績(jī)效的工作。事實(shí)證明,衡量生產(chǎn)力指標(biāo)確實(shí)會(huì)讓代碼質(zhì)量變得更糟——這相當(dāng)于鼓勵(lì)大家開(kāi)發(fā)出體積龐大且塞滿功能的文件,其中遍布被過(guò)度設(shè)計(jì)的代碼。

對(duì)于這一難題,目前還沒(méi)有切實(shí)有效的解決辦法。我們需要追蹤漏洞、我們需要組織工作流同時(shí)協(xié)調(diào)軟件創(chuàng)建。這一切都是只可意會(huì)而無(wú)法言傳的任務(wù),根本不能簡(jiǎn)單用數(shù)字加以評(píng)估。

[[91642]]

4. 過(guò)分自戀的開(kāi)發(fā)者

對(duì)于程序員們來(lái)說(shuō),除了老板之外、另一類(lèi)同行也是他們打壓的重點(diǎn)——即那些創(chuàng)建出***一套迭代就不再負(fù)責(zé)對(duì)應(yīng)項(xiàng)目的開(kāi)發(fā)者。正如每次找來(lái)的家裝設(shè)計(jì)師都會(huì)對(duì)原先屋子里的工程不屑一顧,程序員們也有能力快速發(fā)現(xiàn)前任技術(shù)工作者犯下的腦殘失誤。

事實(shí)上,程序員的表達(dá)方式幾乎要比任何其他行業(yè)的繼任者都更為激烈。這往往與兩代技術(shù)人員的技能水平無(wú)關(guān),他們只不過(guò)偏好不同的開(kāi)發(fā)風(fēng)格,而且隨著時(shí)間的推移、風(fēng)格也會(huì)有所變化。上一代程序員可能并不具備我們當(dāng)下所擁有的代碼庫(kù),也并不了解如今已經(jīng)成為***實(shí)踐的解決方案。

這種極度自戀、抨擊他人的態(tài)度會(huì)拖慢項(xiàng)目進(jìn)程,因?yàn)樗麄儠?huì)由于沖動(dòng)而丟棄大量代碼、從而按照自己的想法“從頭開(kāi)始”重新構(gòu)建整個(gè)項(xiàng)目。

[[91643]]

5. “稍后修復(fù)”心態(tài),或者叫“技術(shù)債務(wù)”

在項(xiàng)目開(kāi)發(fā)工作當(dāng)中,沒(méi)有一天或者沒(méi)有任何一個(gè)階段能真正為我們提供充裕的時(shí)間——需要?jiǎng)?chuàng)建的內(nèi)容總是多到幾乎無(wú)法承受。在這樣的狀況下,我們往往會(huì)偷工減料、提供代碼補(bǔ)丁并利用這種“虛擬膠帶”到處修修補(bǔ)補(bǔ)。睿智的管理者會(huì)在對(duì)項(xiàng)目進(jìn)行精密審查后將這些工作稱為“技術(shù)債務(wù)”,而“債務(wù)”當(dāng)然是需要償還的。即使對(duì)編碼工作一無(wú)所知,他們還是能夠弄清“債務(wù)”的概念與影響。

每個(gè)項(xiàng)目當(dāng)中都會(huì)存在一定的技術(shù)債務(wù)。有時(shí)候我們能快速加以解決,但大多數(shù)情況下這些債務(wù)會(huì)在繼任者接手后才開(kāi)始搗亂,迫使他們面對(duì)大量意料之外的難題。只有搞定這些遺留問(wèn)題,項(xiàng)目才能真正順暢運(yùn)作——這有點(diǎn)像國(guó)債,只不過(guò)規(guī)模沒(méi)那么龐大。

[[91644]]

6. 不懂技術(shù)的管理者

大家在公司里肯定經(jīng)常見(jiàn)到這樣的家伙,他們熱情、積極、面帶微笑,能夠在各個(gè)方面表現(xiàn)出友善的態(tài)度——除了與編程項(xiàng)目相關(guān)的計(jì)算機(jī)科學(xué)。也許他們是靠裙帶關(guān)系爬上來(lái)的,或者是在正確的時(shí)間出現(xiàn)在了正確的地方,總之老板讓他們當(dāng)經(jīng)理、負(fù)責(zé)技術(shù)事務(wù)——即使這幫人連自己的黑莓手機(jī)都找不著。

某些程序員喜歡這樣的頂頭上司,因?yàn)樗麄兒苋菀讜?huì)能被糊弄過(guò)去。如果大家告訴他們Johnson DB沒(méi)能取得巨大成功,他們往往會(huì)信以為真并在公司里到處傳播這個(gè)“不幸”的消息——這樣公司高層就會(huì)出現(xiàn)收拾這幫外行了。還有些人發(fā)現(xiàn)這類(lèi)管理者總愛(ài)召集會(huì)議并妨礙程序員的正常工作。他們幾乎拿不出什么指導(dǎo)建議,最出色的發(fā)揮也就是些略有實(shí)效的質(zhì)量測(cè)試。

[[91645]]

#p#

7. 懂技術(shù)的管理者

雖然程序員們可能無(wú)法忍受與不懂技術(shù)的管理者正面交流,但當(dāng)頂頭上司變成真正的技術(shù)大牛時(shí),情況也許會(huì)更糟。

這些曾經(jīng)的技術(shù)天才們可能會(huì)從微觀層面著手項(xiàng)目管理,并把整體代碼拆分成一個(gè)個(gè)零散的部分——理由?因?yàn)樗麄冇兄约旱囊?jiàn)解。再有,他們可能會(huì)喋喋不休于如何通過(guò)一半的代碼行數(shù)來(lái)完成同樣的任務(wù),并大談他們當(dāng)初在8080、C或者Java編程領(lǐng)域的輝煌歷史。無(wú)論如何,他們往往更關(guān)注技術(shù)細(xì)節(jié)而非宏觀形勢(shì),雖然后者才是他們的首要任務(wù)。

[[91646]]

8. 簡(jiǎn)單粗暴的程序員

程序員們也承認(rèn),有些問(wèn)題確實(shí)應(yīng)該歸咎于他們自己。

程序員們往往不擅長(zhǎng)溝通,也不太關(guān)注其他人的感受或者對(duì)自己的行為加以反省。他們對(duì)技術(shù)問(wèn)題的糾結(jié)程度就像緊盯著骨頭的狗??蛻魝兿胍裁床⒉恢匾?;程序員團(tuán)隊(duì)本身就會(huì)因?yàn)樵O(shè)計(jì)思路分歧而吵得不可開(kāi)交。

程序員往往會(huì)忽略掉不同合作者的個(gè)性與特質(zhì),但如果一個(gè)團(tuán)隊(duì)中的開(kāi)發(fā)者全都過(guò)于溫順、項(xiàng)目也會(huì)陷入失敗。兩個(gè)人之間存在不同觀點(diǎn)非常正常,例如同一個(gè)團(tuán)隊(duì)也可能會(huì)在動(dòng)態(tài)語(yǔ)言和NoSQL之間僵持不下。最終程序員只能以投票的形式解決這類(lèi)難題——但這并不能從根本上化解危機(jī)。團(tuán)隊(duì)內(nèi)部的沖突就像一場(chǎng)百年戰(zhàn)爭(zhēng),成員們不是正在爭(zhēng)吵就是走在通往爭(zhēng)吵的路上。

[[91647]]

9. 特立獨(dú)行的程序員

從他的代碼里找到了為空指針?別想讓他認(rèn)錯(cuò),我們只能自己動(dòng)手修改。再有,大家***在輸入數(shù)字0之前認(rèn)真檢查幾遍,因?yàn)檫@類(lèi)程序員絕對(duì)不會(huì)檢查代碼中是否存在除以0這類(lèi)錯(cuò)誤。對(duì),這全都是我們自己的工作。

特立獨(dú)行的程序員看起來(lái)很酷、做起工作也是迅如閃電,但這只是因?yàn)樗麄儠?huì)把大量漏洞和測(cè)試任務(wù)留給其他同事。只有幫他們認(rèn)真做好善后、他們的成果才不至于讓系統(tǒng)陷入崩潰。

很多團(tuán)隊(duì)在發(fā)現(xiàn)這種狀況時(shí)都已經(jīng)為時(shí)過(guò)晚。代碼塊在早期測(cè)試當(dāng)中運(yùn)行良好,但在向其中導(dǎo)入真實(shí)數(shù)據(jù)后,每個(gè)人都發(fā)現(xiàn)其實(shí)程序根本沒(méi)有經(jīng)過(guò)認(rèn)真檢查。啊哦,完蛋了!

[[91648]]

10. 糟糕的文檔說(shuō)明

我承認(rèn)編寫(xiě)文檔說(shuō)明很耗時(shí)間,但同志們,這也是有工資可領(lǐng)的啊。很多企業(yè)都會(huì)以代碼行數(shù)為依據(jù)核算程序員薪酬,而編寫(xiě)文檔說(shuō)明正是賺錢(qián)的好機(jī)會(huì)。別擔(dān)心,領(lǐng)導(dǎo)會(huì)把這些記入績(jī)效并按量發(fā)工資的。

有時(shí)候文檔說(shuō)明量實(shí)在太大,但這是為了能讓人們?cè)趲讉€(gè)月甚至幾年之后都能順利用上當(dāng)前版本的代碼。哦,我提到這些說(shuō)明數(shù)據(jù)會(huì)被保存在Footable里嗎?這已經(jīng)是前數(shù)兩代的開(kāi)發(fā)方式了,而且我也沒(méi)時(shí)間重新捋順這些代碼并對(duì)陳舊說(shuō)明加以修正。不過(guò)這只是遲早的事情,躲不掉的。

[[91649]]

#p#

11. 盲目提交說(shuō)明文檔

雖然缺少文檔說(shuō)明的項(xiàng)目讓人血壓上升,但那些空話太多而代碼太少的項(xiàng)目同樣無(wú)法獲得成功。在調(diào)查中,確實(shí)有受訪者拿出一大堆說(shuō)明資料并表示“他們就靠這些文檔獲取報(bào)酬。”光是讀這些說(shuō)明就得花上一年。

程序員常常被要求就項(xiàng)目本身撰寫(xiě)評(píng)論,就像是根據(jù)《太空堡壘卡拉狄加》或者《神秘博士》編寫(xiě)觀后感。這類(lèi)資料往往缺乏總結(jié)或者根本沒(méi)能抓住要點(diǎn),而只是沒(méi)完沒(méi)了地羅列微不足道的細(xì)節(jié)信息。如果文檔不能以抽象形式概括項(xiàng)目作用或者幫助閱讀者理解,那么單純陳述代碼作用只會(huì)讓人心生反感。我只能說(shuō)這么干的家伙根本沒(méi)開(kāi)竅:寫(xiě)說(shuō)明不是讓你把代碼翻譯成英文。

[[91650]]

12. 噪雜的環(huán)境令人分心

一位客戶堅(jiān)持讓我走進(jìn)他們的辦公室并在里面通過(guò)一周時(shí)間體驗(yàn)工作狀態(tài)。事實(shí)上,這家公司的技術(shù)人員根本沒(méi)有自己的辦公空間,因此我不得不跟屋里的六位實(shí)習(xí)生打交道,聽(tīng)他們用半天時(shí)間講述頭一天晚上發(fā)生了哪些新鮮事、再用半天時(shí)間展望今天晚上要去哪瘋玩。好吧,其實(shí)聽(tīng)聽(tīng)這些事情也挺有意思,但結(jié)果是我?guī)缀跏裁凑露紱](méi)干成。

程序員通常需要像圖書(shū)館一樣的安靜環(huán)境。喋喋不休的談話、令人心煩的敲擊聲或者電話鈴都可能把程序員從抽象的思維活動(dòng)中揪出來(lái),并狠狠地摔在現(xiàn)實(shí)冰冷的地面上。我們往往需要再花幾分鐘讓自己重新進(jìn)入狀態(tài),這對(duì)生產(chǎn)力絕對(duì)是種毀滅性打擊。

我的許多企業(yè)希望能用乒乓球桌這樣的娛樂(lè)設(shè)施裝點(diǎn)程序員的工作環(huán)境——但他們忘了這種噼噼啪啪的聲音跟開(kāi)發(fā)者所需要的安靜與集中嚴(yán)重沖突。

[[91651]]

13. “文化契合”

如果每一位成員都擁有類(lèi)似的工作風(fēng)格,那么整個(gè)團(tuán)隊(duì)就能運(yùn)作得更好。而無(wú)法快速求同存異的團(tuán)隊(duì)則會(huì)很快陷入失敗局面。如果成員之間無(wú)法有效溝通,那么各自向目標(biāo)邁進(jìn)的狀況將把整個(gè)部門(mén)五馬分尸。

人們往往能夠輕松勾勒出自己心目中的良好工作環(huán)境,但這其實(shí)還是得與團(tuán)隊(duì)本身結(jié)合起來(lái)才能發(fā)揮效果。在處理底層維護(hù)以及基礎(chǔ)設(shè)施建設(shè)時(shí),即使受到其他人的干擾也沒(méi)什么大礙——畢竟這不算什么需要高度集中的工作。當(dāng)我們等待某項(xiàng)建設(shè)工作完成的時(shí)候,即使有人在喊大叫也不至于引發(fā)太嚴(yán)重的進(jìn)度中斷。畢竟我們同處一個(gè)團(tuán)隊(duì)之下,互相喊一喊既能提高效率又能緩和氣氛。

不過(guò)如果大家正在創(chuàng)建一套復(fù)雜的算法,而其中的組件又處于不斷變化當(dāng)中,那么任何談話、走動(dòng)乃至鍵盤(pán)敲擊都可能讓我們偏離思路軌道。在這種情況下,擁有自己的辦公室是***的辦法。

[[91652]]

14. 執(zhí)著于傳統(tǒng)技術(shù)

如果大家在Dice.com網(wǎng)站上查找與Cobol相關(guān)的崗位,會(huì)發(fā)現(xiàn)列表中竟然擁有680個(gè)結(jié)果——相較于網(wǎng)站上的七萬(wàn)多個(gè)招聘崗位總量,其比例接近1%。擁護(hù)者們堅(jiān)持認(rèn)為這是一項(xiàng)卓越的技術(shù),完全能夠勝任目前的工作需要。為什么要重新改寫(xiě)已經(jīng)成熟的解決方案?

這樣的說(shuō)法雖然不是毫無(wú)道理,但他們忽略了一大事實(shí)——沿用陳舊代碼是會(huì)帶來(lái)額外成本的。其中所有內(nèi)容都需要經(jīng)過(guò)翻譯,而翻譯過(guò)程往往需要借助定制代碼。其中一部分代碼甚至寫(xiě)于ASCII誕生之前,這意味著連輸入與輸出內(nèi)容都可能需要轉(zhuǎn)換。陳舊系統(tǒng)在檢查數(shù)據(jù)庫(kù)內(nèi)容時(shí)通常會(huì)把空格計(jì)算進(jìn)來(lái),要排除這些干擾需要更多轉(zhuǎn)換過(guò)程。

程序員們?cè)谄聊唤厝?、重新格式化以及臨時(shí)性系統(tǒng)對(duì)接方面表現(xiàn)出色,但在一段時(shí)間之后,他們往往會(huì)把主要精力放在更新膠合邏輯而非編寫(xiě)新邏輯方面。

[[91653]]

15. 過(guò)分追求******的技術(shù)

我們都跟某位仁兄打過(guò)交道,在他眼中Java就是“我爺爺才愛(ài)用的編程語(yǔ)言”。而Node.js——這才是201x年的風(fēng)格。

***的工具用起來(lái)當(dāng)然很有樂(lè)趣,但如果不認(rèn)真對(duì)之前一段時(shí)間的工作進(jìn)行備份、我們根本不敢把它們直接引入工作環(huán)境。走在技術(shù)前沿的人們總愛(ài)全盤(pán)否定API整體并加以重寫(xiě),這就迫使下游開(kāi)發(fā)者不得不隨之重寫(xiě)自己的代碼。

在很多情況下,新型工具并沒(méi)有經(jīng)過(guò)時(shí)間的檢驗(yàn)。Node.js確實(shí)能帶來(lái)令人驚訝的速度表現(xiàn),但前提是我們得重新了解死鎖機(jī)制,這將迫使人們首先創(chuàng)建新的線程。通常來(lái)說(shuō),前沿方案相當(dāng)于以偷工減料的方式為使用者帶來(lái)看似很美的結(jié)果——也許不會(huì)出問(wèn)題、但也有可能讓之前的心血付之一炬。
 

原文鏈接:http://www.infoworld.com/slideshow/129821/the-15-worst-ways-kill-programming-productivity-231450#slide1

責(zé)任編輯:陳四芳 來(lái)源: 51CTO
相關(guān)推薦

2013-12-17 15:41:09

開(kāi)發(fā)技術(shù)周刊

2015-07-09 16:34:36

BYOD自帶設(shè)備

2017-08-04 09:31:03

移動(dòng)端手機(jī)端安卓

2017-09-06 10:50:32

Android生產(chǎn)力工具方法

2021-12-31 13:40:43

Spring Boot熱部署Java

2023-10-31 18:01:26

安全掃描代碼

2012-08-27 13:30:21

BYOD

2013-04-26 16:14:09

視頻會(huì)議MCU統(tǒng)一通信

2022-06-15 21:16:49

Java

2020-12-07 06:22:05

MyBatisPlus開(kāi)發(fā)MP

2023-08-30 18:28:13

IBMwatsonx人工智能

2024-07-03 15:39:56

2009-03-21 09:37:26

Palm移動(dòng)OS

2020-12-24 09:00:00

開(kāi)發(fā)軟件工程師

2015-01-09 10:19:06

WAN拓?fù)?/a>WAN

2019-02-22 15:44:52

華為云

2016-07-14 14:12:11

華為

2023-02-13 08:34:26

Linux鍵盤(pán)快捷鍵

2022-02-21 22:47:36

首席信息官IT技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)