編碼
q 你有沒有確定,多少設計工作將要預先進行,多少設計工作在鍵盤上進行(在編寫代碼的同時)?
q 你有沒有規定諸如名稱、註釋、代碼格式等“編碼約定”?
q 你有沒有規定特定的由軟件架構確定的編碼實踐,比如如何處理錯誤條件、如何處理安全性事項、對於類接口有哪些約定、可重用的代碼遵循哪些標準、在編碼時考慮多少性能因素等?
q 你有沒有找到自己在技術浪潮中的位置,並相應調整自己的措施?如果必要,你是否知道如何“深入一種語言去編程”,而不受限於語言(僅僅“在一種語言上編程”)?
團隊工作
q 你有沒有定義一套集成工序——即,你有沒有定義一套特定的步驟,規定程序員在把代碼check in(簽入)到主源碼(代碼庫)中之前,必須履行這些步驟?
q 程序員是結對編程、還是獨自編程,或者這二者的某種組合?
質量保證
q 程序員在編寫代碼之前,是否先爲之編寫測試用例?
q 程序員會爲自己的代碼寫單元測試嗎(無論先寫還是後寫)?
q 程序員在check in代碼之前,會用調試器單步跟蹤整個代碼流程嗎?
q 程序員在check in代碼之前,是否進行集成測試(integration-test)?
q 程序員會複審(review)或檢查別人的代碼嗎?
工具
q 你是否選用了某種版本控制工具?
q 你是否選定了一種語言,以及語言的版本或編譯器版本?
q 你是否選擇了某個編程框架(framework,如J2EE或Microsoft .NET),或者明確地決定不使用編程框架?
q q 你是否決定允許使用非標準的語言特性?
q 你是否選定並擁有了其他將要用到的工具——編輯器、重構工具、調試器、測試框架(test framework)、語法檢查器等?