1. 程式人生 > >《構建之法》(十三)

《構建之法》(十三)

測試 3.5 建立 目標 會議 方法 訓練 及其 好的

軟件工程師的誓言(二)

這裏接上一篇,摘寫具體的軟件工程師的誓言中具體應該遵守的規則。即在面對公眾、客戶與雇主、產品、判斷、管理、職業、同事自身

原則1:公眾

軟件工程師的行為應與公眾利益一致。特別地,軟件工程師應恰當地做到:

1.1 對自己分內工作負有全部責任

1.2 綜合考慮軟件工程師,雇主,客戶,用戶與公眾的利益

1.3 軟件是安全的,符合規範的,通過適當的測試,不降低生活的質量,不侵犯隱私,不對環境造成傷害;只有當以上條件都能夠有充分確認,才認可這個軟件。軟件的終極效用應該是公益的。

1.4 把任何對用戶、公眾及與軟件和相關文檔有聯系的外界人員可能造成的危害,告知相關人員或者專家。

1.5 努力合作來解決由軟件及其安裝、維護、支持和文檔 所帶來的公眾關註的重要問題。

1.6 在所有關系到軟件或者相關文件、方法和工具的的聲明,尤其是在那些公開聲明中,要做到公正並避免欺詐。

1.7 要考慮到由物理缺陷、資源分配、經濟劣勢和其他一些會降低軟件收益的因素所帶來的結果。

1.8 鼓勵自願將專業技能用於公益事業,促進公共學科教育的發展。

原則2:客戶與雇主

軟件工程師應以他們的客戶和雇主最大利益化的方式做事,與公眾利益一致。特別地,軟件工程師應該視情況而定按如下原則工作:

2.1. 在他們的能力範圍之內提供服務,誠實和坦率地對待他們經驗和教育上的任何局限。

2.2. 不故意使用那些獲得或保留的非法或者不道德的軟件。

2.3. 只在正確地授權後使用客戶或雇主的資產,並且在客戶或雇主的知識和允許中進行。

2.4. 確保每一個文檔的建立基礎都是經過檢驗的,如果需要的話,由授權人士認證。

2.5 在工作中,對任何機密信息要註意保密,這種保密要與公眾利益和法律一致。

2.6 當員工覺得項目將要失敗,要及時識別、記錄、收集證據並向他們的客戶或雇主報告,以證明項目失敗的原因。這些原因可能是成本太高,侵犯知識產權,抑或是其它問題。

2.7 當員工意識到在軟件或相關文檔中涉及某些重大的社會關註問題時,要及時發現、記錄並向雇主或客戶匯報。

2.8 對主要的雇主負責,不接受影響本職工作的任務。

2.9 盡可能保護雇主或客戶的利益,除非出於更高的道德考慮,在這種情況下,向雇主或合適的權力機構反映道德問題。

原則3產品

軟件工程師應當確保他們的產品以及相關的修改達到盡可能高的專業標準。具體來說,軟件工程師應當:

3.1. 力求高質量,可接受的成本和合理的計劃;弄清出你做出的所有影響較大的權衡,並且確保它們被雇主和客戶所接受,並且把你的計劃提供給用戶和公眾來考慮。

3.2. 確保在工作或提出任何項目的時候,設立恰當,可以達成的目標。

3.3. 識別,定義和解決各種與項目相關的道德,經濟,文化,法律和環境。

3.4. 確保自身因受過合適教育和訓練,以及擁有足夠經驗,而有資格去做他們工作或提出的項目。

3.5. 確保使用一個合適的方法去做他們工作或者提出的項目。

3.6. 只要條件許可,就應當采取專業標準去做手頭的任務,除非有道德或者技術上的正當理由來支持你不這麽做。

3.7. 力求完全理解你工作的specification。

3.8. 確保軟件的specification完善,滿足用戶需求,也經過恰當的批準。

3.9. 對於任何你工作或者提出的項目,要對費用,調度,人員,質量和產出進行現實的和量化的評估,而且要給出對你的評估的不確定性的估計。

3.10. 確保對於你在做的項目的程序和文檔,要有足夠的測試,調試和復審。

3.11. 確保對於你在做的項目,要有足夠的文檔,包括所有你發現的問題和解決的方法。

3.12. 開發尊重用戶隱私的軟件和文檔。

3.13. 留心只用合乎道德和法律的手段獲取的準確數據,而且只按照被授權的方式去使用它們。

3.14. 維護數據的完整性,對於過期和有問題的數據要敏感。

3.15. 對於任何形式的軟件維護,要有和開發新軟件一樣的專業精神。

原則4:判斷

軟件工程師應當完整獨立地進行自己的專業判斷。具體來說,軟件工程師應當:

4.1. 調節所有的技術判斷以支撐和維護價值觀。

4.2. 只簽署並認可這樣的文檔:要麽是自己管理之下的,要麽是自己職權範圍且已在業內達成共識的。

4.3. 評估任何軟件和文檔時保持專業的客觀性。

4.4. 不參與賄賂、重復收費等不正當的經濟行為。

4.5. 把無可避免的利益沖突通知給所有相關群體。

4.6. 拒絕以任何形式(作為成員或提建議者)參加一個任何形式的(私有的,政府的,專業的)和軟件相關的組織,如果這個組織或者他的雇員,客戶有未公開的潛在利益沖突。

原則5:

軟件項目的經理和領導人員應贊成和促進對軟件開發和維護合乎道德規範的管理,特別是在適當的情況下軟件工程師應當:

5.1 對其從事的項目保證良好的管理,包括提高質量和減少風險等有效手段;

5.2 保證軟件工程師在遵循標準之前便知曉它們;

5.3 保證軟件工程師知道雇主是如何保護對雇主或其他人保密的口令、文件和信息的有關策略和方法;

5.4 布置工作任務應先考慮其教育和經驗有相應的水平,再加上有進一步教育和成長的要求;

5.5 保證對他們從事或建議的項目,做出現實和定量的估算,包括成本、進度、人員、質量和輸出,並對估算的不確定性做出評估;

5.6 在雇傭軟件工程師時,需實事求是地介紹雇傭條件;

5.7 提供公正和合理的報酬;

5.8 不能不公正地阻止一個人取得可以勝任的崗位;

5.9 保證對那些在軟件、過程、研究、寫作、或其它知識產權的所有權方面做出貢獻的軟件工程師,有一個公平的協議;

5.10 應對違反雇主利益或道德觀念的指控,提供正規的聽證過程;

5.11 不要求軟件工程師去做任何與道德規範相違背的事;

5.12 不能處罰對項目表露出道德關切的人;

原則6 職業

在與公眾利益一致的原則下,軟件工程師應當保證其職業的完整和聲譽,尤其地,在適當的情況下,軟件工程師應當:

6.1 協助發展一個適合執行道德規範的組織環境;

6.2 推進軟件工程知識的普及;

6.3 通過適當參與各種專業組織、會議和書籍的出版,來擴占軟件工程知識;

6.4 作為一名職業人員,支持其他軟件工程師努力遵循本守則;

6.5 不以犧牲職業、客戶或雇主利益為代價,謀求自身利益;

6.6 服從所有監管作業的法規,在這種要求與公眾利益有不一致時例外;

6.7 要準確敘述自己所做的軟件的特性,不僅要避免錯誤的斷言,也要防止那些純理論的、空洞的、欺騙的、誤導的或者有疑問的斷言;

6.8 對所從事的軟件和相關的文檔,負起檢測、修正和報告錯誤的責任;

6.9 保證讓客戶、雇主和主管人員知道軟件工程師對本道德規範的遵守,及其帶來的後果;

6.10 避免加入與本道德規範有沖突的業務和組織;

6.11 要認識違反本規範是與成為一名專業工程師不相稱的;

6.12 在出現明顯違反本規範時,應向有關當事人表達自己的擔憂,除非在沒有可能、會影響生產或有危險時才可例外;

6.13 當與明顯違反道德規範的人無法磋商,或者會影響工作或有危險時,應向有關部門報告;

原則7: 同事

軟件工程師應當正直地去幫助他們的同事,尤其是:

7.1. 鼓勵同事堅持這個準則。

7.2. 在開發過程中幫助同事。

7.3. 對引用別人的工作註明來源,抵制未經允許的引用。

7.4. 代碼審查時做到客觀、坦誠,並適當地記錄。

7.5. 認真對待同事的建議,擔心,抱怨。

7.06. 在幫助你的同事時,你應該對有可能產生的安全問題有充足的了解,並有能力控制,例如是遵守規定,保護密碼及機密文件等。

7.7. 不能不正當地幹涉同事的工作。但是,從老板角度出發,如果前一條與公司或公共利益沖突,軟件工程師可以對同事的工作提出置疑。

7.8. 當遇到自己不能勝任的問題時,請教那個領域的專家。

原則8: 自身

軟件工程師應當在不違反道德準則的情況下,終生學習以提高自身的專業水平:

8.1. 加強各個方面的能力——分析,標準化、設計、開發、維護、測試、寫文檔、管理項目進程等。

8.2. 提高能力,在合理的時間內,利用合理的花費,去實現安全、可靠、高質量的軟件。

8.3. 提高能力,寫出精確、可讀、有價值的文檔。

8.4. 提高對相關文檔、軟件、開發環境的理解。

8.5. 加強對相關標準、法律的了解。

8.6. 深入理解這份準則,以及如何將其應用到工作中。

8.7. 不因為偏見而對任何人不公。

8.8. 不參與任何與違反些準則有關的活動。

8.9. 堅信一個專業的軟件工程師不會違反此準則。

《構建之法》(十三)