突破階段瓶頸提升軟件開發效率
在軟件開發過程的各個階段,都會遇到各式各樣的問題,阻礙了軟件的正常發展,尤其在任務的下達、執行與監督方面,存在著很多開發瓶頸。
任務的下達
任務的下達一般是項目經理給開發人員的指令,這個指令包含開發人員將要做什么、工作完成后的效果等等,但實際中這種指令往往比較模糊,不具體,也不太明確,沒有把注意事項及對其它功能的影響明確出來,更嚴重者是不能理解任務所表述的含義,畢竟部分開發人員之間的水平還是存在差異,這種情況的存在往往造成開發人員工作效率低、代碼冗余、做無用功等,另外一點項目經理對開發人員的了解也很重要,這樣可以避免本來開發人員半天可以完成的任務,給他分配一天的時間等,任務的下達一般存在以下幾個問題。
1、空泛的估計項目的進度:項目經理在分配任務時,往往受客戶的要求及緊迫程度的影響,而造成不合理的安排,這種現象在軟件行業尤為普遍,這種分配任務的方式沒有相應的數據分析作為前提,加上完全憑借于項目經理的經驗來估算,風險度可想而知。
2、所要傳遞的任務不明確:項目經理有時不能完全表達所要完成的要求,更可怕的是自己對客戶的要求都不了解,在現實開發中往往會存在這種情況,需求分析人員在調研客戶需求時只理解客戶需求的90%,等到了設計人員只能理解80%,等到了開發人員恐怕也只能理解60%,造成需求縮水,導致項目經理在下達任務時,也只是大體描述要完成的任務,而不能明確完成此項任務要注意的很多細節,注意事項、完成時間、對界面的要求等,畢竟開發人員水平不同,考慮問題全面度也不一樣,有些涉及整個系統流程的東西還需要項目經理給予說明。
3、分工不明確:在整個項目運作的過程中,要明確分工,綜合考慮項目團隊內每個人應擔當的角色及外界因素的影響,因為重要角色的更換(如項目經理或開發經理)往往是極具風險性的,當然這種角色一般也不會更換,但開發人員往往是不確定因素,頻繁的調度開發人員也會影響項目的進度與質量,所以項目經理在分配任務時要綜合考慮,盡量排除這些不確定因素的存在。
4、行之有效的溝通:溝通在軟件開發過程的每個階段都很重要,前期溝通不好將來的影響就會以扇形擴張,對后期造成的損失也是無法估計的,分析設計人員的文檔開發人員看不懂,開發人員完成的功能測試人員看不懂等,這些都是溝通的問題,溝通的主要目的有兩個:一是傳達需求者能把需求描述清楚,二是接收需求都能把需求理解并確認無誤,但現實中這種溝通很多卻是流于形式,效果不是很理想。
5、沒有效果的討論:眾所周知,在項目組運作的過程中,可能伴隨著很多問題的交流、討論,這是好事,討論問題越明確、越清楚,對項目后期的運作越有保障,但往往存在這樣的問題,項目組成員在開會前都沒有目的性,沒準備,只有項目經理一個人在說,遇到問題發生爭執時也是各抒己見,這種爭執最終會導致項目計劃被不斷的改變,項目進度被延時。
任務的執行
在軟件開發的過程中,任務的執行階段一般由開發人員來完成,無論是項目還是日常的產品維護,此階段主要的任務就是理解并完成上級下達的指令,對開發人員在開發工具的熟悉程度與理解、邏輯處理能力及把握客戶需求上都有很高的要求,開發人員水平不同,在執行任務的過程中或多或少會存在一些題,一般也不外乎以下幾種。
1、最優的解決方法:同一問題的處理方法有很多種,有些開發人員可以用100行代碼完成,而有些開發人員用500行還不一定表述清楚,所以在開發過程中要綜合考慮,選擇最優的解決問題的方法,不僅不會造成代碼冗余,還便于后期的維護工作,還能提高軟件的性能。
2、看懂需求再寫代碼:國內很多軟件企業在開發過程中對內分工不明確,很多分析設計崗位一般由資深開發人員擔任,這些開發人員由于對各方面都很熟悉,在開發過程中迫于項目進度或客戶壓力,往往先寫代碼后寫文檔,這是一種不好的習慣,會導致做很多無用功,還有一種就是開發人員在不理解設計文檔的情況下就開始編碼,這樣不但不能很好的按設計思路完成任務,還會影響項目的進度。
3、缺少自測:開發階段檢驗工作成果最好的方法就是自測,即單元測試,從中發現不足,及時改正,但不愿過多測試自己寫的程序也是開發人員的通病,開發人員一般都比較自信,感覺自己寫的代碼不會出問題,這是一種不好的習慣,自測的目的除了發現問題外,還要記錄可能出錯的功能點,為以后測試人員提供參考數據,所以在此期間不但要做好黑、白盒測試,還要記錄測試數據。
4、寫好代碼也要關注性能:性能問題對任何軟件供應商都是一個瓶頸,不論系統是C/S還是B/S架構,都會而臨這個問題,也是客戶最常抱怨的問題之一,軟件在易用性與性能上很難達到兩全其美,只能盡量去改善,性能問題也往往是開發階段造成的,如上所述,在沒有找到最好的方式前就去實現,在這一點就要求開發人員除了對開發工具有深入了解外,還要對數據庫語言有所了解,這樣才盡可能的去避免系統的性能問題。
5、代碼要讓別人看懂:說白了就是適當的加注釋,開發人員實現問題的思路不同,寫出的代碼有的易理解,有的難理解,在軟件維護過程中,幾百行代碼中沒一條注釋的情況也很常見,給后續的維護工作帶來困難,代碼寫出來不僅要自己看,還要為以后的維護著想,讓他人能易讀、易理解,所以開發過程中要養成寫注釋的好習慣。
6、功能的易用美觀:科技在發展,時代在進步,現在人們除了對軟件的功能方面有要求外,還非常關注軟件的易用性及界面美觀度,現在很多軟件企業也都認識到了這一點,在易用與界面美觀上都進了一大步,但現在國內很多的軟件企業對此都沒有專門的崗位,這方面的工作還是由開發人員來完成,雖然開發人員在工作中以開發者的角度去改進一部分,但離用戶的要求及專業的程度還有一定的差距。
任務的監督
在開發過程中,如何對任務進行有效的監督并能保證任務能夠按時按質的完成,是每個項目經理所期望的,任務下達后往往缺乏監督,做好做壞沒人檢查,能不能按時完成也不能得到有效的監督,導致整個項目延期,不能按時按質完成;項目經理在團隊中一般起監督的作用,有些軟件公司還設有專門的監督崗位,監督整個項目的執行情況,保證項目按時按質的完成,監督任務執行的方式一般最常見的就是按原先制定的項目計劃表來執行,但這只是一種大概的計劃,要避免其中的很多問題還要做到以下幾點。
1、制定開發規范:每個公司都有自己的一套管理制度,做為員工遵守的準則,項目團隊也不例外,要想項目能夠正常的進展,必須有一套開發規范來監督執行,現實開發過程中,任務分配下去,就很少去監督,做好做壞任其發展,缺少一套監督的機制,這就會造成本來一天可以完成的任務,往往拖后二天才能完成,本來已經完成的任務,項目經理也無法跟蹤,造成人員閑置,另外開發過程中對象、函數的命名也應該要遵循開發規范,不然會造成軟件的不統一性。
2、設代碼檢查崗:開發階段如何保證代碼的質量,是每個項目經理最關心的問題,開發人員編寫代碼的質量高不高、性能好不好,就需要有相應的崗位來監督,很多軟件公司為此專門設置了代碼走查崗,負責對工作任務質量的監督,這點非常很重要,從任務開始到任務結束,這期間的每一個環節都要做好嚴格的監督。
3、開小組會議:通過開小組會議來監督任務的執行情況,在整個項目的開發過程中,項目經理可能比較關注項目的總體進度,對于階段性的任務較少關注,其實階段性的任務比較重要,但這一點卻常常被忽略;及時發現問題,可以避免開發人員少走彎路,通常監督階段性任務最常用的方法就是開小組會議,一般在每天或每周末組織項目組成員交流,總結這段時間完成的任務、遇到的問題及解決方法等,起到互相監督的作用。
綜上所述,要想保證軟件開發階段能夠順利的進行,必須有效的處理好各階段出現的問題,最重要的一點還是在于開發團隊成員之間的溝通與交流,通過成員之間的交流與溝通,提高對需求的把握與處理能力,在這種前提下才能高效開發軟件。
任務的下達
任務的下達一般是項目經理給開發人員的指令,這個指令包含開發人員將要做什么、工作完成后的效果等等,但實際中這種指令往往比較模糊,不具體,也不太明確,沒有把注意事項及對其它功能的影響明確出來,更嚴重者是不能理解任務所表述的含義,畢竟部分開發人員之間的水平還是存在差異,這種情況的存在往往造成開發人員工作效率低、代碼冗余、做無用功等,另外一點項目經理對開發人員的了解也很重要,這樣可以避免本來開發人員半天可以完成的任務,給他分配一天的時間等,任務的下達一般存在以下幾個問題。
1、空泛的估計項目的進度:項目經理在分配任務時,往往受客戶的要求及緊迫程度的影響,而造成不合理的安排,這種現象在軟件行業尤為普遍,這種分配任務的方式沒有相應的數據分析作為前提,加上完全憑借于項目經理的經驗來估算,風險度可想而知。
2、所要傳遞的任務不明確:項目經理有時不能完全表達所要完成的要求,更可怕的是自己對客戶的要求都不了解,在現實開發中往往會存在這種情況,需求分析人員在調研客戶需求時只理解客戶需求的90%,等到了設計人員只能理解80%,等到了開發人員恐怕也只能理解60%,造成需求縮水,導致項目經理在下達任務時,也只是大體描述要完成的任務,而不能明確完成此項任務要注意的很多細節,注意事項、完成時間、對界面的要求等,畢竟開發人員水平不同,考慮問題全面度也不一樣,有些涉及整個系統流程的東西還需要項目經理給予說明。
3、分工不明確:在整個項目運作的過程中,要明確分工,綜合考慮項目團隊內每個人應擔當的角色及外界因素的影響,因為重要角色的更換(如項目經理或開發經理)往往是極具風險性的,當然這種角色一般也不會更換,但開發人員往往是不確定因素,頻繁的調度開發人員也會影響項目的進度與質量,所以項目經理在分配任務時要綜合考慮,盡量排除這些不確定因素的存在。
4、行之有效的溝通:溝通在軟件開發過程的每個階段都很重要,前期溝通不好將來的影響就會以扇形擴張,對后期造成的損失也是無法估計的,分析設計人員的文檔開發人員看不懂,開發人員完成的功能測試人員看不懂等,這些都是溝通的問題,溝通的主要目的有兩個:一是傳達需求者能把需求描述清楚,二是接收需求都能把需求理解并確認無誤,但現實中這種溝通很多卻是流于形式,效果不是很理想。
5、沒有效果的討論:眾所周知,在項目組運作的過程中,可能伴隨著很多問題的交流、討論,這是好事,討論問題越明確、越清楚,對項目后期的運作越有保障,但往往存在這樣的問題,項目組成員在開會前都沒有目的性,沒準備,只有項目經理一個人在說,遇到問題發生爭執時也是各抒己見,這種爭執最終會導致項目計劃被不斷的改變,項目進度被延時。
任務的執行
在軟件開發的過程中,任務的執行階段一般由開發人員來完成,無論是項目還是日常的產品維護,此階段主要的任務就是理解并完成上級下達的指令,對開發人員在開發工具的熟悉程度與理解、邏輯處理能力及把握客戶需求上都有很高的要求,開發人員水平不同,在執行任務的過程中或多或少會存在一些題,一般也不外乎以下幾種。
1、最優的解決方法:同一問題的處理方法有很多種,有些開發人員可以用100行代碼完成,而有些開發人員用500行還不一定表述清楚,所以在開發過程中要綜合考慮,選擇最優的解決問題的方法,不僅不會造成代碼冗余,還便于后期的維護工作,還能提高軟件的性能。
2、看懂需求再寫代碼:國內很多軟件企業在開發過程中對內分工不明確,很多分析設計崗位一般由資深開發人員擔任,這些開發人員由于對各方面都很熟悉,在開發過程中迫于項目進度或客戶壓力,往往先寫代碼后寫文檔,這是一種不好的習慣,會導致做很多無用功,還有一種就是開發人員在不理解設計文檔的情況下就開始編碼,這樣不但不能很好的按設計思路完成任務,還會影響項目的進度。
3、缺少自測:開發階段檢驗工作成果最好的方法就是自測,即單元測試,從中發現不足,及時改正,但不愿過多測試自己寫的程序也是開發人員的通病,開發人員一般都比較自信,感覺自己寫的代碼不會出問題,這是一種不好的習慣,自測的目的除了發現問題外,還要記錄可能出錯的功能點,為以后測試人員提供參考數據,所以在此期間不但要做好黑、白盒測試,還要記錄測試數據。
4、寫好代碼也要關注性能:性能問題對任何軟件供應商都是一個瓶頸,不論系統是C/S還是B/S架構,都會而臨這個問題,也是客戶最常抱怨的問題之一,軟件在易用性與性能上很難達到兩全其美,只能盡量去改善,性能問題也往往是開發階段造成的,如上所述,在沒有找到最好的方式前就去實現,在這一點就要求開發人員除了對開發工具有深入了解外,還要對數據庫語言有所了解,這樣才盡可能的去避免系統的性能問題。
5、代碼要讓別人看懂:說白了就是適當的加注釋,開發人員實現問題的思路不同,寫出的代碼有的易理解,有的難理解,在軟件維護過程中,幾百行代碼中沒一條注釋的情況也很常見,給后續的維護工作帶來困難,代碼寫出來不僅要自己看,還要為以后的維護著想,讓他人能易讀、易理解,所以開發過程中要養成寫注釋的好習慣。
6、功能的易用美觀:科技在發展,時代在進步,現在人們除了對軟件的功能方面有要求外,還非常關注軟件的易用性及界面美觀度,現在很多軟件企業也都認識到了這一點,在易用與界面美觀上都進了一大步,但現在國內很多的軟件企業對此都沒有專門的崗位,這方面的工作還是由開發人員來完成,雖然開發人員在工作中以開發者的角度去改進一部分,但離用戶的要求及專業的程度還有一定的差距。
任務的監督
在開發過程中,如何對任務進行有效的監督并能保證任務能夠按時按質的完成,是每個項目經理所期望的,任務下達后往往缺乏監督,做好做壞沒人檢查,能不能按時完成也不能得到有效的監督,導致整個項目延期,不能按時按質完成;項目經理在團隊中一般起監督的作用,有些軟件公司還設有專門的監督崗位,監督整個項目的執行情況,保證項目按時按質的完成,監督任務執行的方式一般最常見的就是按原先制定的項目計劃表來執行,但這只是一種大概的計劃,要避免其中的很多問題還要做到以下幾點。
1、制定開發規范:每個公司都有自己的一套管理制度,做為員工遵守的準則,項目團隊也不例外,要想項目能夠正常的進展,必須有一套開發規范來監督執行,現實開發過程中,任務分配下去,就很少去監督,做好做壞任其發展,缺少一套監督的機制,這就會造成本來一天可以完成的任務,往往拖后二天才能完成,本來已經完成的任務,項目經理也無法跟蹤,造成人員閑置,另外開發過程中對象、函數的命名也應該要遵循開發規范,不然會造成軟件的不統一性。
2、設代碼檢查崗:開發階段如何保證代碼的質量,是每個項目經理最關心的問題,開發人員編寫代碼的質量高不高、性能好不好,就需要有相應的崗位來監督,很多軟件公司為此專門設置了代碼走查崗,負責對工作任務質量的監督,這點非常很重要,從任務開始到任務結束,這期間的每一個環節都要做好嚴格的監督。
3、開小組會議:通過開小組會議來監督任務的執行情況,在整個項目的開發過程中,項目經理可能比較關注項目的總體進度,對于階段性的任務較少關注,其實階段性的任務比較重要,但這一點卻常常被忽略;及時發現問題,可以避免開發人員少走彎路,通常監督階段性任務最常用的方法就是開小組會議,一般在每天或每周末組織項目組成員交流,總結這段時間完成的任務、遇到的問題及解決方法等,起到互相監督的作用。
綜上所述,要想保證軟件開發階段能夠順利的進行,必須有效的處理好各階段出現的問題,最重要的一點還是在于開發團隊成員之間的溝通與交流,通過成員之間的交流與溝通,提高對需求的把握與處理能力,在這種前提下才能高效開發軟件。
本文標簽:突破階段瓶頸提升軟件開發效率
* 由于無法獲得聯系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《突破階段瓶頸提升軟件開發效率》相關權利人與機電之家網取得聯系。










