這個系統集成的項目再一次說明如何從項目范圍中建立有關功能需求。建立功能需求是軟件從業人員的責任,不是客戶或用戶能夠提供的內容。在完成人工操作過程分析訂立系統的功能需求后,更要進一步考慮如何讓科技提升企業的運營效率。也許在設計過程中發現當時的貨品運送流程是從倉庫直接送到銷售部門,再由銷售部門安排貨品連同發票一起送到客戶的指定地點,設計師可能考慮是否可以直接從倉庫把貨品運送到客戶指定地點,銷售部門另外把有關發票直接送交客戶?這個改變會為企業帶來多大效率改善?有了確實的構思后便需要說服用戶這個系統如何能夠更有效地完成有關貨品運送的過程,要說服用戶這些功能可以提升貨品運送的效率和客戶滿意度,讓銷售部門和運輸部門可以體會未來的工作流程將有所改變。決定最終解決方案及用戶認可后依據分析師的建議建立有關系統的功能,交由系統設計師對有關功能進行模塊組合及邏輯設計。到這里,我們可以清楚知道系統建設不是依據客戶的需求而建設,是依據如何達到項目最終目的和項目的最終交付而建設。需求不是客戶或用戶提供,是我們作為一個專業人員依據我們要開發的項目目標(如何達到)和項目的最終交付而制定出來的結果。沒有項目范圍,我們便不能建立有關系統的功能。沒有項目范圍,我們便不能控制任務的工作量,不能預估完成日期并按時完成。
從上述兩個例子中可以看到,功能需求與業務流程直接相連的,理解了業務流程,便能夠建立有關的功能需求,利用科技完成有關工作,提升運營效率,減低業務部門有關工作量和工作人員的需求。
軟件工匠和軟件工程師
如果我們需要客戶提供有關功能或需求才能夠完成軟件開發,那么我們便淪為軟件工匠。一個工匠,如木匠、泥水匠等都是依據客戶的需求去完成任務的技術人員,這個工匠可以把工藝做到很好,很精,很細膩,成為一個很優秀的木工或泥水工,但永遠不會成為大師,因為他們沒有創思,沒有溝通能力去說服客戶如何能夠更有效地達到客戶的投資目的。
希賽顧問團首席顧問張友生博士認為,一個專業的技術人員需要理解本身的專業能力,理解客戶投資的最終目的,理解如何更有效地達到客戶的最終目標而建議客戶應該如何進行建設或改良,才有可能成為這個行業的大師。目前我國充斥著很多軟件工匠,如果我們要把自己打造成為一個軟件工程師,我們便需要放棄以前的思維,不用老是抱怨“客戶不明確本身的需求,所以我們不能夠完成項目的交付”。我們需要思考如何才能夠把握項目的最終目標,建立系統的功能需求。
從20世紀90 年代中期開始,計算機在企業中已經從自動化的時代進入信息化的時代,從科技的應用提升企業的運營效率,轉變成科技應用所能帶出來的價值,讓企業能夠減低運營成本,改善產品,提供增值服務,開拓市場,增加利潤等成為軟件開發的主要目標。
客戶在決定投資一套軟件系統建設的項目前,本身很明確知道希望這套系統能夠帶來什么價值,但對于如何能夠利用科技來達到目標則一概不清楚。希望透過軟件工程師的專業知識來告訴他們如何才能夠滿足他們的愿景,客戶希望透過人工智能(AI)去理解顧客的采購習慣,背景,行為和對現有產品的反饋對產品進行改良;他們希望透過企業資源規劃(ERP)來減低生產或運營成本,提升資源對企業的價值;希望透過客戶關系管理(CRM)軟件的應用來保留顧客對企業品牌的忠誠,增加顧客對企業的滿意度。這些都是透過科技應用所希望帶出來的普遍價值和投資愿景。但技術人員仍然停留在科技應用的層面上,希望客戶能夠告訴他們需要那些功能來達到這個愿景,讓他們能夠利用技術完成客戶的系統建設。這些構思型或愿景型的項目如何進行交付,是上世紀末期開始對軟件行業的一大挑戰。
在這種情況下,技術人員如何能夠滿足客戶的愿景,客戶如何能夠告訴技術人員有關這個投資項目的功能需求,變成項目在實施過程中不斷進行修改,不斷延誤的主要原因。如何解決這個困境是當時急迫需要處理的難題。所以計算機行業新增加了一個崗位,叫做業務分析師(Business Analyst 或簡稱BA),業務分析師應該有深厚的行業知識,透過BA對行業的理解,對愿景項目進行流程分析及建設,然后讓技術人員對有關流程進行分析,建立功能需求,設計有關模塊,為這些構思型或愿景型項目提供所需的基本信息。但可惜行業知識與技術知識兩者還是有相當大的距離,BA 未能發揮應有的效益。美國PMI 也是在這個時候訂立項目贊助人(Sponsor)及項目干系人(Stakeholders)的角色,在項目開發過程中,項目贊助人需要確認BA 的流程建議,需要取人系統建設每一個階段的交付。項目干系人需要確認流程及系統功能不會影響部門的正常操作,兩者要確保整個項目能夠達到預期的交付愿景和目的。
文章來源于領測軟件測試網 http://www.k11sc111.com/