標籤:http ar 資料 sp 問題 c 代碼 工作 時間
軟體項目開發沒規劃好就註定會失敗
軟體項目開發與管理的一些原則
軟體項目的開發與管理是一門複雜的學問,不是簡單地需求來了就動手編碼,編碼完了就算項目完工那麼簡單。一個項目如果沒有好好規劃,那麼就很容易會失敗。同樣,我們在做一個軟體項目的時候,需要注意的東西很多,下面總結一下一些容易視而不見但又非常重要的軟體開發指導原則。
對外部環境的認識
1、必要性原則:使用者(客戶)需要應用軟體來協助他們處理資訊。
2、“離線”原則1:使用者(客戶)通常不會一直坐在電腦面前,他們都有自己的工作要做,而那些工作才是他們真正要做的事情。如果你是秘書,那麼,電 腦不會幫你做會議紀要,也不會給你安排老闆喜歡的度假酒店。極端一點,假設你是清潔工人,一台多點觸摸的 surface 即使再逼真的讓你看到街角的一小塊垃圾,你最後也還是得用掃帚去清除。
3、“離線”原則2:不要把使用者(客戶)想象成電腦專家。下班後他們會回家吃飯、看電視、逛街、看電影。很多搞手機應用的人註定失敗,原因就在於他們想象使用者會從起床開始到睡覺都一直盯著手機看,實際情況是:沒有人會這樣。
4、需求原則1:“要求”不等於“需求”。如果有人要求你給他(她)做一個能看電影的收音機,那麼,你應當告訴他(她):“你需要的是一台帶收音機的MP4播放器。”而不是立即開始開發“電影收音機”。
5、需求原則2:需求是會發生變化的。所以,你要做的,就是儘早發現這種變化並儘可能提高自己應對變化的能力。
6、很多人還沒有意識到“資訊”以及處理資訊的軟體對改善他們工作的重要性。但這不是他們的“錯”。
開發的原則
1、技術非常的關鍵!“技術上沒有問題,問題在於…”說這樣的話只能證明這人在技術上的確存在問題。
2、但,技術需要使用者(客戶)的需求來引導。永遠按照需求來選擇(甚至學習)技術,而不是相反。
3、限制性原則:技術不可能什麼都能實現!參見“‘離線’原則1”
4、適用性原則:只要分析到位,使用者(客戶)的需求,技術一定能夠實現。參見“必要性原則”
5、“速度”原則:除非編碼(Coding)在軟體的整個生產過程中佔到 50% 甚至更高,否則,任何希望提高編碼速度來換取更快進度的努力都會以失敗告終。但是,有編碼在整個軟體生產過程中佔到甚至超過 50% 的項目嗎?沒有。所以,任何希望通過提高編碼速度來換取更快進度的努力最後都會以失敗告終。
為什嗎?參考“需求原則1” 和 “需求原則2” ,以及下面的“管理的原則”。
管理的原則
1、技術相關原則:技術決定工藝流程和工種,由此,決定了團隊的構成和所有管理的基礎(基礎技術假設)。
Web 應用程式是通過在伺服器擷取資料並組合成網頁展示給使用者來工作的,所以,你的團隊裡面要有會製作網頁和會寫代碼從資料庫取資料的成員,並且,在進度上,網頁要早於程式碼完成以便整合。
2、因為需求會(而且可能很快)變化,所以,為減少對管理帶來的衝擊,應當在一開始就選用適應力最強的技術。
3、“最少”原則:任何管理和技術上的努力與技巧,都比不過一開始就明確只做最少的內容。如果這一點做不到,那麼,也許應該試試:
4、“設計優先”原則:儘可能給設計多點時間,這是我們思考的過程。如果這一點也做不到,那麼,也許應該試試:
5、“死亡衝刺”:先做出來再說,有問題以後再改。不過,請做好足夠的心理準備,你要應對的不僅僅是總體成本和維護工作量的上升,更嚴重的是團隊成員的質疑、無休止的加班和逐漸低落計程車氣。
6、“最小管理”原則:如果你真的是沒有辦法了,但是還是希望能夠對軟體的生產過程進行控制,那麼,就做好組態管理吧。
只要你每次在任意一台伺服器上從配置庫擷取最新代碼都能夠在10分鐘內完成部署,並且,在生產環境中部署的軟體也是這個版本,那就應該差不多了。
7、“國情”原則:適合你的管理方法一定是你從你自己的實踐和需要出發摸索出來的,其它的各種理論、方法、實踐都只能作為參考。
軟體項目開發沒規劃好就註定會失敗