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

我為什么勸你放棄個人代碼所有權(quán)?

開發(fā) 前端
編碼是一種藝術(shù)形式,藝術(shù)家們非常重視他們的作品。這種發(fā)自內(nèi)心的依戀讓程序員們充滿激情。這可能是件好事,但也可能導(dǎo)致問題。除非整個開發(fā)組織只有一兩個開發(fā)人員,否則在意個人的代碼所有權(quán)是一種病態(tài)的行為。我不推薦,也不鼓勵。

編碼是一種藝術(shù)形式,藝術(shù)家們非常重視他們的作品。這種發(fā)自內(nèi)心的依戀讓程序員們充滿激情。這可能是件好事,但也可能導(dǎo)致問題。

除非整個開發(fā)組織只有一兩個開發(fā)人員,否則在意個人的代碼所有權(quán)是一種病態(tài)的行為。我不推薦,也不鼓勵。原因如下:

1. 對代碼的情感依戀傷害了集體智慧

[[207261]]

與代碼相關(guān)聯(lián)的程序員會認(rèn)為代碼是自己的一部分。這種情緒導(dǎo)致代碼變成他人不可觸及的,而這種教條主義思維會發(fā)展成權(quán)屬之爭。當(dāng)涉及情緒時,代碼審查是困難的。除非代碼的所有者批準(zhǔn)更改,否則無法進(jìn)行改進(jìn)。

我觀察了一些團(tuán)隊的軟件開發(fā)過程,認(rèn)為團(tuán)隊理念應(yīng)該被擴(kuò)展到開發(fā)的所有權(quán)、目標(biāo)、過程,衡量成功的方式以及如何慶祝等工作的所有方面。就如同在一個球隊中不能說球員自己的勝利,而是團(tuán)隊的勝利。每個成員都是一個有機(jī)體,是能完成工作的重要組成部分。贏得比賽的是球隊,而不是某個球員。同樣地,開發(fā)人員不應(yīng)該感到自己擁有代碼。相反,他們應(yīng)該覺得自己是構(gòu)建代碼的必要組成部分,是為組織工作而不是自己打游戲。

作為工程文化的組成部分,正確地培養(yǎng)對代碼的感覺需要公司頂層的支持,最好是在一項新工程開始時就著手準(zhǔn)備。如果鼓勵恰當(dāng),這種文化就會在團(tuán)隊中形成,成為現(xiàn)實。

2.個人代碼所有類似流水線上的單點故障

開發(fā)者本身會有生病、辭職、升職、轉(zhuǎn)行、出國、死亡等任何你能想到的不測。把一個公司的知識產(chǎn)權(quán)的重要部分與一個人聯(lián)系在一起,是一條通往災(zāi)難的單行道。個人代碼所有權(quán)會將公司的健康狀況與代碼所有者個人的健康狀況,或與所有者/公司之間關(guān)系的健康狀況聯(lián)系起來。

如果一個開發(fā)人員擁有代碼權(quán),那么開發(fā)人員就成了一個單點故障。如果他或她發(fā)生了什么事,公司就會承擔(dān)后果。代碼越復(fù)雜,公司需要承受的損害就越大,回到正軌的時間也就越長。

3.團(tuán)隊比個體之和更強(qiáng)大

[[207262]]

一個有才華的開發(fā)者可以創(chuàng)造出驚人的價值,但是一個由N個開發(fā)者組成的團(tuán)隊創(chuàng)造的價值超過N個開發(fā)者開發(fā)價值之和。頭腦風(fēng)暴、協(xié)作和反饋可以提高任何開發(fā)人員的質(zhì)量和產(chǎn)出,不管他或她多么有才華。當(dāng)一個人擁有代碼時,頭腦風(fēng)暴和協(xié)作就要讓位于所有權(quán),而結(jié)果會影響產(chǎn)品的質(zhì)量。

也許你會認(rèn)為幾個開發(fā)人員獨自工作比一個小團(tuán)隊一起工作要好得多。一個開發(fā)人員單獨工作可能會更快地產(chǎn)生一些實際的結(jié)果,這對于解決一個問題來說是很好的,但是其整體結(jié)果的質(zhì)量和壽命是有限的,這對企業(yè)來說不是很理想的。

4. 代碼是一種產(chǎn)品,屬于團(tuán)隊擁

有沒有人會這么想問題,到底房子屬于建造它的木匠,還是屬于購買它的房主?這是因為房子是一個物理實體,它具有我們所認(rèn)為的買方擁有的實體品質(zhì)。當(dāng)你在商店里買食物時,那就是你的食物。如果你買了一輛車,那就是你的車。再明顯不過!

當(dāng)一個產(chǎn)品是概念性的,事情就不那么明顯了。例如,小說的作者擁有故事版權(quán),而買書的人只擁有紙質(zhì)書。軟件更接近一個概念而不是一個物理對象,而開發(fā)人員,特別是小公司的開發(fā)人員,覺得自己擁有它。他們有這樣的感覺,因為他們是唯一了解細(xì)節(jié)的人。這是一種自然傾向,但同時也是一種謬論,組織和開發(fā)者應(yīng)該遠(yuǎn)離。

軟件由公司所有,而不是由開發(fā)人員擁有。從法律上來說,這是軟件開發(fā)人員和他們的雇主之間的雇傭合同中所規(guī)定的事實,但人們每天的感覺可能都不一樣。雖然工程團(tuán)隊?wèi)?yīng)該對工作有責(zé)任感,但開發(fā)人員不應(yīng)該產(chǎn)生個人所有制的感覺。

5. 創(chuàng)新需要一個組織

[[207263]]

如果一個開發(fā)人員單獨擁有代碼,那么開發(fā)人員將完成所有的創(chuàng)新。聽起來不是很荒謬嗎?作為一個獨自工作的工程師,確實可以做到快速創(chuàng)新,但很快就達(dá)到能力的極限了。另一方面,一個團(tuán)隊可以繼續(xù)通過集體智慧,頭腦風(fēng)暴,從不同角度看待問題,將一個人無法擁有的豐富經(jīng)驗搬上臺面,進(jìn)行創(chuàng)新。

如果團(tuán)隊隨時做出改變,引進(jìn)不同經(jīng)驗的新成員,其創(chuàng)新的質(zhì)量就會增長,新概念的火花也會被重新點燃。辯論和善意的摩擦刺激創(chuàng)新,那些秘密的和受到謹(jǐn)慎保護(hù)的部門的知識領(lǐng)域則不容易創(chuàng)新。

6.個人代碼所有權(quán)會導(dǎo)致停滯

缺乏創(chuàng)新會導(dǎo)致工程停滯不前。長期處于孤立狀態(tài)下的程序員往往會被他們已習(xí)慣的觀念所影響。他們會不同程度地拒絕接受工作上的任何改變,因為固化的觀念已經(jīng)給他們帶來了復(fù)雜的意義。如果與自己的觀念不一致,任何外部來源的想法最終會被過濾掉。如果是在創(chuàng)業(yè)初期,這樣做可能是件好事。然而,時間一久,這種開發(fā)軟件的方式就很難擴(kuò)展了,繼而將不再有創(chuàng)新。

7.個人代碼所有權(quán)會阻礙個人進(jìn)步

那些整天獨自在同一個代碼庫工作的開發(fā)人員變成了籠子里的鴿子。這意味著他們在任何不是他們專長領(lǐng)域的地方都變得遲鈍,裹足不前。

我曾經(jīng)看到過來自大企業(yè)的開發(fā)人員,他們在同一個應(yīng)用程序的同一個對話框上工作了多年(微軟的一些部門曾經(jīng)因此而臭名昭著)。這種專業(yè)化是極端個人代碼所有權(quán)所導(dǎo)致的結(jié)果,造成了個人成長的損失。

8.個人代碼所有權(quán)阻礙了職業(yè)發(fā)展

[[207264]]

如果一個開發(fā)人員把自己和他們的代碼捆綁在一起,那么他們不僅是上面所提到的單點故障,還很難晉升到更高的職位,因為沒有簡單的方法來替代他們所負(fù)責(zé)的工作。

我之前在一篇題為《Work yourself out of your job》的文章中談到了這一點:“要得到晉升,你必須放棄你寶貴的財產(chǎn),把自己從目前的工作中擺脫出來,這樣你就可以開始一個更高級別頭銜的新工作。”個人代碼所有權(quán)限制了這種可能性。開發(fā)人員若想提升,要做的第一件事就是確保他們不是某部分代碼庫的所有者。

個人代碼所有權(quán)通常是自己造成的,因此也很容易被自己撤銷。為了做到這一點,開發(fā)人員需要友善地鼓勵其他工程師接觸自己編寫的代碼,并協(xié)助他們熟悉它。一開始,讓所有權(quán)消失會有風(fēng)險。這會讓你覺得你把自己從工作中趕了出來,但這是正確的做法,去做不同的更好的事情會更有益。

9.個人代碼所有權(quán)是工程師們的監(jiān)獄

“擁有”部分代碼,感到不可缺少,這可能會給人一種職業(yè)安全感的錯誤印象。然而,工作安全看起來更像把自己關(guān)進(jìn)監(jiān)獄,而不是待在一個舒服的地方。不學(xué)習(xí)新技能,沒有職業(yè)發(fā)展,一個軟件工程師就像被關(guān)在一個自制的監(jiān)獄里,并且這個監(jiān)獄空間還會變得越來越小。

幾年前,我讀了一篇優(yōu)秀的文章,標(biāo)題為《Give Away Your Legos, and Other Commandments for Scaling Startups》。它談到了創(chuàng)業(yè)公司的可擴(kuò)展性,同樣的概念也適用于個人的可擴(kuò)展性和職業(yè)發(fā)展。如果一個開發(fā)人員整日把自己的“樂高積木”放在身邊,小心翼翼地保護(hù)著,就等同于用樂高磚給自己建造了一座樂高監(jiān)獄。放棄你的樂高積木吧,重塑自我,繼續(xù)前進(jìn)。

10.開發(fā)人員堅持他們的代碼所有權(quán),易與領(lǐng)導(dǎo)沖突

[[207265]]

在技術(shù)世界里,市場總是在不斷變化,產(chǎn)品也是如此。有時產(chǎn)品變更必須是激進(jìn)的,開發(fā)人員需要適應(yīng)和支持領(lǐng)導(dǎo)要求的變更。當(dāng)個人代碼所有權(quán)的感覺過于強(qiáng)烈時,開發(fā)人員往往會與領(lǐng)導(dǎo)產(chǎn)生分歧并抵制變更。這種行為可能會導(dǎo)致沖突,要么減緩進(jìn)度,要么被解雇。

如果在一些大型機(jī)構(gòu),整個團(tuán)隊都會因為一個項目取消而被解雇。試想,為什么一個公司會因為一個項目被取消而解雇一個有才華的工程師團(tuán)隊呢?如果工程師能毫無問題地進(jìn)行新項目,公司會解雇他們嗎?現(xiàn)實情況是,有時候,團(tuán)隊是圍繞項目形成的。個人過分專注于一個項目,擁有它并小心地保護(hù)它,失去了適應(yīng)新項目的能力,拒絕改變,拒絕放手,得到的不僅是一所監(jiān)獄,還可能是專業(yè)的棺材。

11.個人代碼所有權(quán)導(dǎo)致不信任

一些認(rèn)為有必要擁有和捍衛(wèi)代碼權(quán)的開發(fā)人員正在傳播一種不良印象:都給我躲開!我才是唯一能理解或接觸這段代碼的人。

這種印象可能不會被明確表達(dá)出來,但整個工程團(tuán)隊都會有感覺,有意或無意地認(rèn)為這是不信任的信號。當(dāng)同一團(tuán)隊的成員互相不信任并明確表示時,團(tuán)隊就會遭受損失,并失去快速行動的能力。不信任會導(dǎo)致不良摩擦,這會消耗寶貴的能量,卻不會產(chǎn)生任何積極的結(jié)果。

當(dāng)開發(fā)人員開始放棄他們的個人代碼所有權(quán)意識時,事情就會改變。信任成為工作方式的一部分,團(tuán)隊合作成為驅(qū)動力。團(tuán)隊在一個充滿信任的環(huán)境中運行,會產(chǎn)生更好的結(jié)果,并變得更有彈性。

12.拒絕分享對組織的發(fā)展沒有好處

感覺自己單獨擁有代碼的開發(fā)人員常常覺得他們不需要任何流程來指導(dǎo)他們。Agile方法中如Scrum或其他形式的組織結(jié)構(gòu)對這些開發(fā)人員來說似乎是外來的和不必要的。這點和一個拒絕在任何壓力、結(jié)構(gòu)或約束下工作的藝術(shù)家來說是不一樣的。

這種軟件開發(fā)的觀點根植于早期的黑客時代,是那時很典型的年輕開發(fā)者的生活。單飛、學(xué)習(xí)、成長,長時間占據(jù)一個程序員的生活,他們和流程中其他人沒有任何關(guān)聯(lián)。這種工作方式是缺少彈性的。當(dāng)一個或兩個以上的人參與一個項目時,輝煌的黑客時代使用的方法便不再有利于工作。

在開發(fā)人員作為團(tuán)隊的一部分進(jìn)行工作時,流程成為一個重要的工具。它有助于同步工作并確保高效、可預(yù)測和有組織地交付結(jié)果。黑客和開發(fā)軟件之間存在著巨大的差異。前者可能很有趣,后者則是工程組織如何規(guī)模化。

責(zé)任編輯:未麗燕 來源: 智能觀編譯
相關(guān)推薦

2024-03-19 14:43:55

Rust編譯所有權(quán)

2023-01-27 14:47:30

DevOps軟件開發(fā)工程師

2011-01-07 09:19:35

Linux文件權(quán)限

2024-01-10 09:26:52

Rust所有權(quán)編程

2017-07-27 13:34:52

Rust所有權(quán)數(shù)據(jù)

2023-07-23 17:19:34

人工智能系統(tǒng)

2013-08-16 10:46:20

2022-03-18 08:00:00

區(qū)塊鏈代幣以太坊

2021-02-01 07:20:51

KafkaPulsar搜索

2021-07-30 05:12:54

智能指針C++編程語言

2022-11-03 15:14:43

Linux文件權(quán)限

2024-09-02 10:40:18

2018-04-20 14:37:43

互聯(lián)網(wǎng)技術(shù)細(xì)節(jié)

2018-12-21 11:26:49

MySQLMongoDB數(shù)據(jù)庫

2022-05-30 00:19:13

元宇宙NFTWeb3

2009-09-12 09:46:47

Windows 7所有權(quán)添加

2009-11-28 20:21:14

2024-06-27 13:45:21

2010-07-20 17:36:55

SQL Server

2018-01-23 11:15:28

云計算數(shù)據(jù)平臺云平臺
點贊
收藏

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