對於軟體開發哲學的經驗談
"確認你已經理解問題, 由小型的有才幹的團隊來實現解決方案, 並且讓你的客戶告訴你如何改進它. 這就是全部; 其他的都是註解."(軟體開發哲學,摘自《做了這麼久的開發,看到這個開發哲學,真是很貼切,軟體開發的幾大要點概括的淋漓盡致.
"確認你已經理解問題" 即需求問題,巨集觀上為軟體的商業目的,微觀上為每個功能需求的理解與分析,根據我的開發經驗,就是要獲取需求並且正確的理解它,我們往往對需求的問題不能夠達到全面的理解,大多數情況都是處在一知半解的狀態,各種情況導致獲取的需求並非真實有效,分析其原因主要有3點:
1.客戶對需求也不能完全解釋的清楚
2.業務邏輯確實很複雜,相關聯絡繁多,造成理解上會達到理解問題的限制(5~7個關聯複雜性,超過就不易理解)
3.需求的獲取,設計到實現的各個階段出現了偏差,更嚴重的情況是無法追溯到原來提出的真實需求而造成的缺陷.
4.需求在軟體開發過程中,客戶實際情況已經變更,或是客戶改變了原先的想法而造成的需求變更
解決這些矛盾的方法很多,主要在於需求開發的經驗,設計開發的經驗,團隊的合做,有效全面及規範的需求記錄與追蹤,以及各階段追溯到需求的評審等來保證我們對需求的理解.
"由小型的有才幹的團隊來實現解決方案" 即團隊合做與開發技能的問題.
高品質的團隊一直是成功的軟體開發的保證.否則軟體開發很容易陷入絕境.
至於團隊,以我的經驗主要提出幾點看法.
1.保證的團隊穩定性
團隊的核心成員要穩定,例如乙個團隊一定要確認哪幾個是團隊的核心,在軟體的開發周期內一定要保證這些核心人員的穩定性,最好是不只是在乙個專案週期,而是在組織面上也保證此團隊核心成員的穩定性,這樣才能夠使得團隊不斷進步,積累經驗,更重要的是合作的有效性,要知道乙個人員更新頻繁,或是剛剛組建的團隊效率與合作性都是非常差的,需要很長時間的磨合與鍛鍊,但往往會導致軟體開發的失敗,因為在你為建立新團隊的有效合作與開發過程的同時,軟體的開發已經錯誤百出,種下了失敗的種子,後面再想補救的代價就太高了.所以建立穩定的開發團隊是軟體開發的有效保證.
2.合理有效的團隊發展規劃.
1).明確有效的團隊目標.為團隊設立乙個明確有效的目標,讓團隊中的核心成員都能夠一致的認同這個目標,並且將此目標與其自身的發展相互聯絡,給每個人前進的動力與希望.這也是團隊穩定性的重要保證,沒有乙個一致目標和奮鬥方向的團隊,很難有凝聚力,也更不會成為乙個高品質的團隊.
2).團隊成員合理的互補性.
我們要設定團隊成員各方面能力的基準線,每個成員不能低於這基準,否則會影響團隊的整體實力.
在此基準線上我們並不要求每個成員在各方面都優秀(這也是很難做到的),但一定會要求每個成員在某乙個方面能力高於基準線,這樣才能根據特殊能力來建立互補性的團隊.
例如:開發團隊管理者要達到分析,設計,編碼,等工作能力的乙個基準線, 在此之上他的管理能力一定是高於基準線之上,具備優秀管理能力的人.而不是讓乙個各方面平庸或是其他能力(如他的編碼能力優秀)的人來充當管理者的角色. 這樣讓在各個方面的工作,都能夠找到在此方面優秀的人來執行,以達到建立互補性的團隊的目的.
同時團隊成員在此基礎上又能夠在各方面得到向他人學習提高的機會,以提高團隊能力的基準線,達到團隊發展的目的.
3).其他輔助性的策略與制度也不容忽視.
首先,團隊內部要有乙個公平,公正的氛圍,每個人的能力,業績與其獲得的回報和在團隊中的位置要相互一致,形成乙個良好的團隊發展環境.
第二,在保證核心成員穩定的同時,合理的團隊流動性也是必要的,因為不能保證團隊每個成員都能夠達到團隊的發展要求,所以將不適合的人員替換出去,再吸收新的成員,發展優秀的成員成為核心人員,以發展壯大團隊,並形成良好的團隊新陳代謝的模式.
第三,獲得管理層對此團隊的認同,鼓勵團隊的變革,鼓勵創新,願意承擔相應的風險,也是關係到團隊是否能夠發展的乙個非常重要的因素,這也要求團隊要不斷的獲得成功,創造業績,及良好的溝通來獲得管理層的支援.
"並且讓你的客戶告訴你如何改進它" 這裡我的理解不僅僅是客戶,而且也包括市場
開發好的軟體,最重要的目的是達到客戶的需要,以及市場的需要.讓客戶與市場來引導我們軟體的開發方向是軟體獲得豐厚收益的重要保證,也是軟體開發的重要目標.當然這也是建立在我們能夠正確的理解客戶的需求與市場的需求的基礎之上的.
"這就是全部; 其他的都是註解." 這裡我的理解是軟體開發要以上面所提到的需求,團隊,客戶與市場為主要關注點,而對於其他輔助性的方面,如過程改進,檢查與監測等都是實現主要關注點的有效工具與過程,要分清主次,不要一味的盯在這些輔助性的工作方面,而忽視了軟體開發成功的真正關鍵. 根據經驗,如果軟體開發時在還未理解需求,又沒有良好的開發團隊,客戶與市場也模糊不清時,而相反卻去注重檔案表單規範,過程改進,iso或cmmi等等相關的事務,這樣試問就算這些做的再好,我們的軟體開發能夠成功嗎.要分的清主次,合理應用其他輔助性事務,才是正道.
綜上所述,我對軟體開發的經驗之總結, 軟體開發需要以客戶與市場為導向理解軟體真正的需求,利用高品質優秀的團隊進行開發,以達到獲取最大商業利益的目的.
對於軟體開發哲學的經驗談
確認你已經理解問題,由小型的有才幹的團隊來實現解決方案,並且讓你的客戶告訴你如何改進它.這就是全部 其他的都是註解.軟體開發哲學,摘自 做了這麼久的開發,看到這個開發哲學,真是很貼切,軟體開發的幾大要點概括的淋漓盡致.確認你已經理解問題 即需求問題,巨集觀上為軟體的商業目的,微觀上為每個功能需求的理...
軟體專案經驗談
軟體專案經驗。自己總結自己記錄,見笑了。剛寫完手賤誤刪,因太重要,復記一遍。2017.5.12 1.介面 a.樣式及布局 無論客戶端還是網頁,介面配色彩色不超過3種,字型大小不超過3類,字型不超過3種。功能用色彩不限制。選單布局注意行距,介面文字注意行距。b.易用性 考慮到大齡使用者和視力較差的弱勢...
專案開發經驗談
我就大致描述一下我的專案團隊 算上美工5人 在這方面的情況 首先,介紹角色 專案組長 相當於專案經理吧,主要職責我就不多說了。2.介面工程師 是使用者介面互動方面的專家,決定與使用者互動的方式,當然很大程度也影響著介面 3.美工 設計和美化介面 4.高階程式設計師 設計總體程式結構,制定技術上的規範...