Bob大叔提出程式設計師宣言
考慮到這一技術的重要性,和其他職業擁有的一樣,Uncle Bob向軟體程式設計師提議了一種宣言。
一年前,Robert C. Martin,也就是Uncle Bob意識到軟體程式設計師的重要性,他寫道:
我們統治了世界。…
沒有一件發生在我們社會當中的事情離得開軟體。沒有…
如果沒有了軟體:電話不響。汽車不啟動。飛機不起飛。炸彈不爆炸。烤箱不烤食物。車庫門不開。錢不轉手。電不產生。並且我們找不到去商店的路。…
Martin繼續觀察到,在社會作出重大貢獻的程式設計師應負責和遵循職業道德,來為了社會的美好而運用他們所擁有的權力。程式設計師應該決定什麼是他們的責任,並且這些責任政府或僱主不應該強加給他們。另外他受Order of the Engineer的啟發而勾勒出一套職業道德的藍圖。一年後,Martin重寫了道德的問題,這一次他寫了更多關於程式碼的質量,提出了每一個成員都應該採用來“保護和維護這個行業的榮譽”的The Programmer’s Oath程式設計師宣言:
- 我將不會生成有害的程式碼。
- 我生成的程式碼將會永遠是我最好的作品。我將不會故意釋出在行為或結構上有缺陷的程式碼。
- 伴隨每一次釋出,我會生成一個快速、肯定以及可重複的證據讓程式碼的每個元素都按它應該的方式工作。
- 我將做到經常、微小地釋出,這樣就不妨礙別人的進步。
- 我將勇敢地和不懈地完善程式碼,不放過任何機會。我將永遠不會讓程式碼變得更糟。
- 我將盡我所能來保持自己的生產率,和其他人相比儘可能的高。我將不會做任何會降低生產率的事。
- 我將時刻確保別人能代替我,並且我能代替他們。
- 我將生成的判斷在幅度和精度上是可信的。我不會在不確定的時候作出承諾。
- 我將永遠不會停止學習及改進我的技術。
Martin的提議在Twitter上得到了各式各樣的反響,從:
@klenkes74:我的假設是如果我嚴格根據那些規定生活,我的僱主會解僱我。
@QuiteVague:大多數程式設計師不能夠對此作出承諾——質量和業務需求之間的平衡並不掌握在他們的手上。…我已經把這些人中的每一個都提升到了各種各樣的管理者當中。然後,正如我所說的,你贏得了一些,你失去了一些。:)
@DamienPetrilli: 非常的不切實際,完全不適用於現實世界中的大多數人。
@asthasr: #9是唯一有效的。其他的都是不可能實現的(“證據”)或者依靠我們不能控制的外部因素。
@sleepyfox: 由於天生的不確定性,我認為#8是不可能維持的。一個判斷最好是一個猜測而不是一個承諾。
到:
@brianvhughes:在最好的情況下,#5 是有希望的。#8 是不可行的。 但是,這也不全是不好的。
@simonbrown: “我將永遠不會停止學習及改進我的技術。”<- 對!
@Khris_Fernandez: 我會樂意從現在開始我們在我從事的每一個專案上都簽下這個!可悲的是,有些事永遠不會做。不管怎樣,謝謝Bob。
@GGrell:我笑了,我哭了,我歡喜。這就是我每天爭取寫軟體的一部分真實寫照。
應答那些不贊同宣誓需求的人,Martin認為軟體工程師應具備道德責任,並且像醫生、律師和工程師一樣,他們應該擁有一條宣言,這條宣言是“教條一般的定義”。
在相同的筆記上,Rugged Software的創始人已經寫了幾年The Rugged Manifesto,一系列程式設計師被邀請來遵守的原則:
我很堅固,更重要的是,我的程式碼很堅固。
我知道軟體已經成為當今世界的重要基石。
我知道這種基石角色隨之而來的就是重大的責任。
我知道我的程式碼會以我沒有預期到的方式使用,會以與其當初設計目標不同的方式使用,使用期限也會超出最初預期。
我知道我的程式碼會被充滿才華而有毅力的敵對者攻擊,他們會威脅我們的物質世界、經濟執行和國家安全。
我知道這些事實,因此我選擇變得堅固。
我很堅固,因為我拒絕成為漏洞和弱點的來源。
我很堅固,因為我的程式碼能夠面對這些挑戰,並不受它們的影響而繼續執行。
我很堅固,不是因為這樣做簡單,而是因為這是必然之選,而且我已準備好面臨挑戰。
隨著起誓與否,是否遵從宣言的每句話,可能每個人都同意軟體工程師旨在編寫出好的軟體。那意味著什麼以及如何實現它則是另一個故事。
相關文章
- [翻譯]Bob大叔:反思極限程式設計程式設計
- Bob大叔:程式設計“老師傅”和他的職業素養(圖靈訪談)程式設計圖靈
- [英]Bob大叔:程式設計“老師傅”和他的職業素養(圖靈訪談)程式設計圖靈
- 程式設計師老爸的宣言程式設計師
- 《程式設計師的職業素養》讀後感:一本Bob大叔的錯誤大全程式設計師
- 我為什麼回家:一位程式設計師老爸的宣言程式設計師
- 不同意馬丁大叔的觀點:Bug不是程式設計師的錯 • Buttondown程式設計師
- 鮑勃大叔:程式設計正規化並不排斥!程式設計
- [譯] Bob,函數語言程式設計是什麼鬼?函數程式設計
- 當年也是翩翩少年,如今落得禿頂大叔,程式設計師禿頂算工傷嗎?程式設計師
- 程式設計師何苦為難程式設計師?程式設計師
- 程式設計師的“非程式設計師”之路程式設計師
- 程式設計師何必難為程式設計師程式設計師
- 鮑勃大叔:SOLID原則適合函式程式設計嗎?Solid函式程式設計
- Bob大叔的忠告做一個專業軟體開發者必須精通的事項
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- 程式設計師必看的書-Ruby程式設計師程式設計師
- 國外程式設計師 VS 中國程式設計師程式設計師
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- 中國程式設計師和外國程式設計師程式設計師
- Lisp程式設計師眼中的其他程式設計師Lisp程式設計師
- 程式設計師歌曲《程式設計師偏頭痛》程式設計師
- 程式設計師程式設計師
- 《程式設計師程式設計藝術》程式設計師
- 程式設計師OR非程式設計師,有些程式設計的事需要知道程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 程式設計師常有,優秀程式設計師不常有程式設計師
- 程式設計師必看的書之Java程式設計師程式設計師Java
- 程式設計師漫畫系列(1):程式設計師人生程式設計師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- 程式設計師程式設計10大原則程式設計師
- 盲人程式設計師的程式設計生涯程式設計師
- 程式設計將死,程式設計師永存程式設計師
- 程式設計師,請你不要在坑程式設計師了?程式設計師
- 漫談程式設計師系列:程式設計師零門檻?程式設計師
- 程式設計師快速睡眠攻略 失眠程式設計師的福音程式設計師
- 《程式設計師健康指南》:給程式設計師的健康書程式設計師
- 愛偷懶的程式設計師是好程式設計師程式設計師