夢斷程式碼整理及思考(0-1章)
第0章 軟體時間
在本章中,可以看出身份不同、位置不同的程式設計師獲得的編碼體驗是有天壤之別的。以少年遊戲玩家的身份在編碼實踐中體會到的更多是編寫程式碼改變世界的巨大快樂,作為產品的經理人,則是以“對付”的姿態面對自己的產品,而在這成長期間也會見證軟體世界中的各式悲劇。
從本書作者四十歲時遇到的最嚴重的更新問題來看,當公司計劃升級其軟體平臺或者重新搭建一套大型系統時,首先要避免遇到CMM成熟度等級中的“初始級”情況:“過程一般是專門化的和無序的。在這類組織中,專案的成功往往取決於個人的能力和拼搏精神,離開了具備同樣能力和經驗的人,就無法在下一個專案中獲得同樣的成功。”在該次事件中,主力程式設計師離開後剩餘高層難於應對遺留下的問題。其次,企業要發張必須要有完善的軟體工程思想,這次問題中體現出該公司全面測試不充分以及之前工作總結不夠完善等問題。
進一步思考,在軟體開發過程中遇到軟體缺陷、延誤和不按設計思路執行等問題的原因在於雖然人類與計算機通過各式語言(如C、C++、Java等)進行聯絡,但是機器計數與思考的方式仍會與人類存在不同。
不同於永久性建築的建造,軟體雖然也在構建這個世界並且已經深入滲透到這個世界但是卻不可見又脆弱,人類這種對脆弱程式碼的強烈依賴造成了鉅額的經濟損失。與此同時,程式設計師也陷入除錯除錯的苦境,他們的作品永遠未臻至善。
對此困境,我們只能期待漸次前行,直接幻想毀掉目前軟體大廈或者寄希望於優秀的程式設計師只是軟體發展的動力,無法一蹴而就。
第1章 死定了
現在程式設計師在開發軟體之時最常見的矛盾就是時間與任務的衝突,這個矛盾我們多多少少都遇到過,該矛盾的原因在於需求不明確、完成任務預估時間與實際需要時間不符、計劃不完善、複雜軟體各模組關係混亂問題解決受制於人、各任務優先順序不明確、開發使用的基礎軟體有問題。
團隊擴增引發開發進度延遲,對此可以低成本、廣泛地接入像網際網路那樣的網路,讓開發者之間能建立迅速、可信的溝通渠道,儲存可被開放訪問的共享知識和程式碼池;或者圍繞一種領導方式形成合作團隊的良好風氣,歡迎新人進入 、鼓勵成員做出貢獻,同時儘可能增加合格成員。
團隊問題解決後就要處理實現的問題了,進取精神、速度、努力對於形成偉大團隊都不必不可少的,其中最重要的就是實際行動了。