正確的理解和管理需求及其變更
問題1: 從項目的需求搜集開始,業(yè)務專家搜集和提出基于整個業(yè)務的需求體系,但是在從初始的需求轉化為軟件特性和功能的過程中,由于業(yè)務專家和技術人員的溝通不充分或者需求描述不完善,導致技術人員對需求的理解產(chǎn)生曲解,從而影響該軟件完成后不符合用戶提出的真實需求。 問題2: 從初始的業(yè)務需求轉化為軟件特性的過程中,缺乏有效的跟蹤和管理,導致軟件功能特性與用戶需求脫節(jié)。
問題3: 在項目過程中,用戶提出改進的需求或者增加軟件功能和特性,項目組在了解需求后,對軟件架構進行調整或者重構,但是如此頻繁的重復下來,需求來源不清楚,軟件規(guī)格書未反應需求變化,或者接受需求但未調整項目的整體進度,導致一些混亂情況的發(fā)生。
上述1,2個問題其實都是對需求跟蹤和管理機制的不完善引起的。在任何一個軟件開發(fā)過程中,都充分地強調了需求管理的重要性。因此,在項目初期,相對花比較多的時間做需求的搜集和跟蹤,完善業(yè)務人員和技術人員的溝通機制是很重要的。這會減少大量的由于曲解需求導致軟件不符合用戶需求從而返工造成的人力和物力的浪費。避免這種情況產(chǎn)生的一種方式是,在項目立項后,由專人或專門的團隊(這些人必須是了解該項目業(yè)務領域的知識,并且有相關的技術經(jīng)驗)搜集該項目的原始需求,然后和技術專家(或團隊)進行充分的溝通和討論,保證技術專家對原始需求乃至一些用戶要求的細節(jié)有完整而正確的理解,接著技術專家就會根據(jù)原始需求的文檔,根據(jù)對需求的理解撰寫軟件規(guī)格書,在寫的過程中,應該不斷讓業(yè)務專家一定程度的參與(例如審稿或一定程度的修訂,并且參與評審),這樣的軟件規(guī)格書才能為進一步正確地進行軟件分析設計提供素材和指導。
對第3個問題,用戶提出的對軟件進行改進可能是經(jīng)常有的事情,遇到這種情況,有兩種處理辦法。一種辦法是用戶提出的改進建議在下一個發(fā)布版本中實現(xiàn)。但是用戶往往要求能夠在當前版本中進行實現(xiàn)。第二種辦法就是認真考慮用戶用戶的建議,用各種方法來滿足用戶的需求,其中包括系統(tǒng)重構。在這些過程中,可能會造成一些混亂。其實歸根結底還是需求的跟蹤機制不完善引起的。建議采用需求和變更跟蹤工具(比如rational clearquest)來對需求和變更進行全過程的跟蹤,這樣在形成需求文檔的時候,每個需求來源和其狀態(tài)都是非常清楚的。
配置管理
問題1: 從項目的需求搜集開始,業(yè)務專家搜集和提出基于整個業(yè)務的需求體系,但是在從初始的需求轉化為軟件特性和功能的過程中,由于業(yè)務專家和技術人員的溝通不充分或者需求描述不完善,導致技術人員對需求的理解產(chǎn)生曲解,從而影響該軟件完成后不符合用戶提出的真實需求。 問題2: 從初始的業(yè)務需求轉化為軟件特性的過程中,缺乏有效的跟蹤和管理,導致軟件功能特性與用戶需求脫節(jié)。
問題3: 在項目過程中,用戶提出改進的需求或者增加軟件功能和特性,項目組在了解需求后,對軟件架構進行調整或者重構,但是如此頻繁的重復下來,需求來源不清楚,軟件規(guī)格書未反應需求變化,或者接受需求但未調整項目的整體進度,導致一些混亂情況的發(fā)生。
上述1,2個問題其實都是對需求跟蹤和管理機制的不完善引起的。在任何一個軟件開發(fā)過程中,都充分地強調了需求管理的重要性。因此,在項目初期,相對花比較多的時間做需求的搜集和跟蹤,完善業(yè)務人員和技術人員的溝通機制是很重要的。這會減少大量的由于曲解需求導致軟件不符合用戶需求從而返工造成的人力和物力的浪費。避免這種情況產(chǎn)生的一種方式是,在項目立項后,由專人或專門的團隊(這些人必須是了解該項目業(yè)務領域的知識,并且有相關的技術經(jīng)驗)搜集該項目的原始需求,然后和技術專家(或團隊)進行充分的溝通和討論,保證技術專家對原始需求乃至一些用戶要求的細節(jié)有完整而正確的理解,接著技術專家就會根據(jù)原始需求的文檔,根據(jù)對需求的理解撰寫軟件規(guī)格書,在寫的過程中,應該不斷讓業(yè)務專家一定程度的參與(例如審稿或一定程度的修訂,并且參與評審),這樣的軟件規(guī)格書才能為進一步正確地進行軟件分析設計提供素材和指導。
對第3個問題,用戶提出的對軟件進行改進可能是經(jīng)常有的事情,遇到這種情況,有兩種處理辦法。一種辦法是用戶提出的改進建議在下一個發(fā)布版本中實現(xiàn)。但是用戶往往要求能夠在當前版本中進行實現(xiàn)。第二種辦法就是認真考慮用戶用戶的建議,用各種方法來滿足用戶的需求,其中包括系統(tǒng)重構。在這些過程中,可能會造成一些混亂。其實歸根結底還是需求的跟蹤機制不完善引起的。建議采用需求和變更跟蹤工具(比如rational clearquest)來對需求和變更進行全過程的跟蹤,這樣在形成需求文檔的時候,每個需求來源和其狀態(tài)都是非常清楚的。
配置管理
配置管理占據(jù)了越來越重要的角色,對文檔,圖形,代碼和各種項目數(shù)據(jù)進行分類管理,并對不同的人擁有的權限進行控制,方便技術人員對其負責的配置項進行創(chuàng)建,提交和修改,提高項目整體的運作效率。但是在配置管理中也存在著一些問題:
問題1: 沒有制定好 文檔 ,圖形,代碼應放的位置,配置項命名比較隨意,無權限控制,造成各配置項存放混亂,尋找不易。
問題2: 培訓和支持不充分,對配置管理工具的用法不了解。目前配置管理工具很多,比如大家常用的vss,可能相對比較熟悉一些。但是諸如CVS和ClearCase等工具,由于軟件功能非常復雜,并且對國內用戶來說易用性比較差,雖然功能強大,但是沒有真正派上用場。
問題2: 培訓和支持不充分,對配置管理工具的用法不了解。目前配置管理工具很多,比如大家常用的vss,可能相對比較熟悉一些。但是諸如CVS和ClearCase等工具,由于軟件功能非常復雜,并且對國內用戶來說易用性比較差,雖然功能強大,但是沒有真正派上用場。
對第一個問題,在小型項目中可能尚不明顯,但是在大型項目中,由于各種文檔,代碼等非常多,如果不能進行正確的配置管理,很有可能被弄得一團糟。因此,在項目啟動后,經(jīng)過技術人員之間的討論,在配置項的命名規(guī)定,目錄結構,存放位置等達成共識,因為這些在具體使用上還和開發(fā)工具,開發(fā)語言等是密切相關的,在討論的時候也應充分考慮這些因素,給技術人員在使用它們的時候提供的便利。當然,為了安全起見,大型項目中,權限的控制也是很重要的。另外,在一些情況下,如果沒有權限控制,項目成員可以隨意修改其它文件,這樣可能會導致一些混亂情況的發(fā)生。
第二個問題,對ClearCase等大型的配置管理工具,如果不作充分的研究和大量的培訓,對軟件配置和使用不當,缺乏對組織內人員的統(tǒng)一培訓,因為配置管理工具是幾乎每個人都會用到的,這樣造成的問題會相當多。在ClearCase中,比如基線的概念,可能很多人都不甚了解,還有動態(tài)視圖,靜態(tài)視圖,集成視圖,流等,這些如果不能做充分而細致的培訓,技術人員會感到相當?shù)睦Щ?,如果支持不到位或在使用中的問題無法解決,會造成項目進度的延遲乃至停滯。所以,在對待此類問題上,培訓和支持的工作是必不可少的,雖然可能會在初期浪費一些資源,但是磨刀不誤砍柴功,組織內人員都掌握了強大工具的使用方法,將會極大地提高開發(fā)效率和節(jié)省時間。 。
文檔
文檔
國內進行軟件開發(fā)從的完全不重視文檔,到后來吸取無數(shù)的經(jīng)驗教訓后,對文檔的重視又被提高到前所未有的地步。但是不少公司對應該寫多少文檔,怎么寫文檔不能把握好,因為技術人員往往對文檔方面的任務是抵觸的,認為不如多抽點時間專注在技術方面,寫文檔純粹是浪費時間。但是文檔卻是必不可少的,應該怎樣處理好這種矛盾呢? 事實上,這種矛盾天生就是難以化解的,因為技術人員對技術和相關情況了解,其它人很難撰寫這些文檔,項目經(jīng)理所需要做的是,通過斟密的項目進度安排,給技術人員留出一些時間來書寫文檔(在工作時間而不是在加班時間里完成,否則難免會有怨言的),并在規(guī)定的進度下進行評審。在Rup和Xp中,對文檔的看法有些不一樣。在RUP中,對文檔非常的重視,每個階段都有一些工件是必須要評審和交付的,其中除了代碼外,絕大部分都是文檔,寫起來相當費時費力。而在XP流程中,強調的是通過代碼和面對面的溝通,來加強團隊的協(xié)作性,文檔除了一些設計性和需要保留的資源需要撰寫外,只是起到一些輔助性的作用。但不管怎樣,重要和必要的文檔總是要寫的。讓每個技術人員了解文檔的重要性,合理的分配和預留寫文檔的時間,都是可以一定程度上化解矛盾的做法。 如何保持工件的一致性(同步) 在軟件開發(fā)過程中,不斷有新的工件產(chǎn)生,而且有些工件隨著一些變更的發(fā)生,就需要進行更新,但工件數(shù)量太多,一則維護更新不容易,另外有些工件只是項目結束后參考性的資源,立即更新也不必要,求大求全則會一定程度上占用項目資源,耽誤進度。因此,一個建設性的建議就是,對必要的工件,如 需求規(guī)格書,產(chǎn)品定義書,概要設計書,詳細設計書.....等工件是一定要根據(jù)項目和評審情況立即進行修訂和更新的,但是,對另外一些衍生的工件,如用戶指南等工件,雖然在開發(fā)流程中,可能是在每個階段都必要寫的,但是卻可以在評審進行前集中進行更新一些,避免頻繁修訂造成的資源占用和進度延遲。
重視風險管理
重視風險管理
建立風險管理體系,讓風險意識貫穿整個流程體系,對不斷出現(xiàn)的可能的風險進行預測,分析和討論對策,劃分風險級別,采用各種方法來降低風險變成現(xiàn)實后對整個項目所造成的損失。
風險管理體系是一個項目預防可能潛在風險的一個很好的保障方式,在項目初期,根據(jù)項目情況如資金,人員和可能的進度對整個項目的風險作一個預先的評估,采用的方式可以是以項目經(jīng)理為中心,集體討論的形式來進行。在討論結束后形成一份risk list,
項目經(jīng)理
項目經(jīng)理
由此整理出一份文檔,即風險管理文檔。在項目進行當中,隨著情況不斷變化,項目經(jīng)理應該不斷組織一些專題會議,對風險進行討論,并統(tǒng)一對策。這樣在風險變成現(xiàn)實后,整個項目組不至于束手無策,而是可以采取一些補救的措施來把風險可能造成的損失降到。 關于周報和月報
在很多公司中,都要求開發(fā)人員填寫周報和月報,以便在項目周會,月總結上了解每個人任務的進展情況和對人員進行考核。但是技術人員總是對此類工作不勝其煩,往往敷衍了事,填幾個比較大的任務(如開發(fā)XX系統(tǒng)等),而且一連幾周都是如此,這樣對了解項目進展和對人員考核的參考作用就失去了意義。 雖然技術人員比較反感寫這類東西,但是還是必須要寫的。應該怎樣化解此類矛盾呢?實際上,這類任務主要是人的因素在發(fā)揮作用。要想達到有效性的目的,對項目成員進行一定程度的指導和培訓是必要的。例如,一種比較好的方法就是,可以推薦項目成員進行daily plan一類每日計劃的編寫,每個人對每日工作任務進行劃分和規(guī)劃時間,然后在每日工作結束后對預先計劃和完成情況進行對比,并在下一個工作日進行改進。堅持下去,項目成員必然在工作計劃和完成情況間越來越接近,養(yǎng)成良好的習慣,這樣不僅在保障進度上人的正面因素可以被大大增強,而且在編寫周報和月報時就有所依據(jù)而不是匆匆了事,能夠發(fā)揮應有的效果。
了解培訓的重要性
在各類組織中,都會對員工進行一定程度的培訓。在項目立項過程中,就應該考慮人員配備情況。比較理想的情況當然是項目組每個成員都對該項目的技術了如指掌,對軟件開發(fā)流程比較了解,相互之間能夠進行充分的溝通,能充分理解溝通對象的意圖等等。但是理想情況往往不是經(jīng)常存在的。由于IT行業(yè)的人員具有一定的流動性,而且項目組的人員配備往往不是非常固定的。因此,項目經(jīng)理應該充分考慮到這些因素,在項目成員比較確定后,如果有一些新手,就必然要進行一些技術,業(yè)務,開發(fā)流程等方面進行有計劃的正式培訓,當然,還應該指定每個老資歷的項目成員帶1-3個新手,這樣,新手在各方面都能夠迅速提高,也能促進整個項目按照預先計劃高質量地完成。
兩年前政府提出“互聯(lián)網(wǎng)+”的行動計劃后,傳統(tǒng)企業(yè)紛紛踏入這波浪潮,插上了互聯(lián)網(wǎng)的翅膀。在今年,政府的工作報告上出現(xiàn)了“人工智能”,“智能制造”,“大數(shù)據(jù)”等科技名詞,又一波高科技將推動了傳統(tǒng)產(chǎn)業(yè)的轉型升級。無論是早前的電商、APP,還是當下被炒的火熱的物聯(lián)網(wǎng)、人工智能,企業(yè)都需要對其技術領域有所了解,避免盲目走彎路。
編今天主要跟大家分享企業(yè)選擇軟件外包公司時需要避免踩的坑!
網(wǎng)上有很多的外包平臺,發(fā)布需求,全國各地的服務商都會來競標搶單。但是建議大家選擇本地的開發(fā)公司,一來是方便考察,二來是節(jié)約溝通成本,很多需求通過面對面的溝通才能節(jié)約時間。
那么,在這個過程中,選擇靠譜的外包公司合作很重要,我列舉幾個方面說明靠譜的外包公司的特點,以供大家判斷:
首先、謹慎分析需求,再給報價
很多客戶在初次簡單的溝通后就詢價,比如:“我想要做一個類似滴滴打車的APP,開發(fā)費用需要多少”,如果乙方在初次見面就能給你一個報價,比如20多萬。八成是不靠譜的,也是不負責任的。報價并不是憑感覺,而是要通過剖析開發(fā)的周期來計算的。
靠譜的團隊不會亂承諾什么都能做,而會先讓產(chǎn)品經(jīng)理與客戶溝通,理順開發(fā)需求。而這個過程,來來回回,至少會持續(xù)三五次的當面溝通。后才是給出合理的報價方案。
其次、有明確的開發(fā)時間節(jié)點
合同備注清楚明確的開發(fā)時間節(jié)點很重要。比如,原型設計周期、UI設計周期、開發(fā)文檔以及數(shù)據(jù)庫設計周期、平臺框架搭建周期、平臺各個功能模塊開發(fā)周期等等,只有做到細化,才對開發(fā)進度能有全局把控。
第三、原型確認再動工
靠譜的團隊,會告訴你,原型確認后再進入研發(fā)。因為在原型確認的過程中,往往是很耗時的,不靠譜的團隊很可能為了縮短工期,隱瞞某些不明確的需求點,往往就是這樣的敷衍帶過,導致后面需求不封閉,出現(xiàn)扯皮的事情。
第四、交付開發(fā)文檔
編寫開發(fā)文檔是標準的開發(fā)過程,這是技術人員必備的技能,文檔簡潔與否倒是其次,重要的目的就是讓后續(xù)開發(fā)人員可以讀懂。關于這一點我們也建議在合同里就寫好。
第五、合理的付款方式
選擇合理的付款分期比例很重要,我們建議采用分期,按照開發(fā)過程中的不同階段付款,
比如:
①在啟動原型設計前,先付定金10%,完成產(chǎn)品原型,基本就確定需求了。
②啟動UI設計時,再付20%,完成UI設計基本上客戶知道做完成什么樣了。
③開發(fā)完成并通過測試后付40%。
④交付正常運行一周后付20%。
⑤三個月維保期結束后付10%。
切忌甲方首次付款比例不要超過50%,如果遇到乙方不責任,后面溝通很被動。
兩年前政府提出“互聯(lián)網(wǎng)+”的行動計劃后,傳統(tǒng)企業(yè)紛紛踏入這波浪潮,插上了互聯(lián)網(wǎng)的翅膀。在今年,政府的工作報告上出現(xiàn)了“人工智能”,“智能制造”,“大數(shù)據(jù)”等科技名詞,又一波高科技將推動了傳統(tǒng)產(chǎn)業(yè)的轉型升級。無論是早前的電商、APP,還是當下被炒的火熱的物聯(lián)網(wǎng)、人工智能,企業(yè)都需要對其技術領域有所了解,避免盲目走彎路。
編今天主要跟大家分享企業(yè)選擇軟件外包公司時需要避免踩的坑!
網(wǎng)上有很多的外包平臺,發(fā)布需求,全國各地的服務商都會來競標搶單。但是建議大家選擇本地的開發(fā)公司,一來是方便考察,二來是節(jié)約溝通成本,很多需求通過面對面的溝通才能節(jié)約時間。
那么,在這個過程中,選擇靠譜的外包公司合作很重要,我列舉幾個方面說明靠譜的外包公司的特點,以供大家判斷:
首先、謹慎分析需求,再給報價
很多客戶在初次簡單的溝通后就詢價,比如:“我想要做一個類似滴滴打車的APP,開發(fā)費用需要多少”,如果乙方在初次見面就能給你一個報價,比如20多萬。八成是不靠譜的,也是不負責任的。報價并不是憑感覺,而是要通過剖析開發(fā)的周期來計算的。
靠譜的團隊不會亂承諾什么都能做,而會先讓產(chǎn)品經(jīng)理與客戶溝通,理順開發(fā)需求。而這個過程,來來回回,至少會持續(xù)三五次的當面溝通。后才是給出合理的報價方案。
其次、有明確的開發(fā)時間節(jié)點
合同備注清楚明確的開發(fā)時間節(jié)點很重要。比如,原型設計周期、UI設計周期、開發(fā)文檔以及數(shù)據(jù)庫設計周期、平臺框架搭建周期、平臺各個功能模塊開發(fā)周期等等,只有做到細化,才對開發(fā)進度能有全局把控。
第三、原型確認再動工
靠譜的團隊,會告訴你,原型確認后再進入研發(fā)。因為在原型確認的過程中,往往是很耗時的,不靠譜的團隊很可能為了縮短工期,隱瞞某些不明確的需求點,往往就是這樣的敷衍帶過,導致后面需求不封閉,出現(xiàn)扯皮的事情。
第四、交付開發(fā)文檔
編寫開發(fā)文檔是標準的開發(fā)過程,這是技術人員必備的技能,文檔簡潔與否倒是其次,重要的目的就是讓后續(xù)開發(fā)人員可以讀懂。關于這一點我們也建議在合同里就寫好。
第五、合理的付款方式
選擇合理的付款分期比例很重要,我們建議采用分期,按照開發(fā)過程中的不同階段付款,
比如:
①在啟動原型設計前,先付定金10%,完成產(chǎn)品原型,基本就確定需求了。
②啟動UI設計時,再付20%,完成UI設計基本上客戶知道做完成什么樣了。
③開發(fā)完成并通過測試后付40%。
④交付正常運行一周后付20%。
⑤三個月維保期結束后付10%。
切忌甲方首次付款比例不要超過50%,如果遇到乙方不責任,后面溝通很被動。