一、軟件開發效率低源于行業數字化管理水平低
布魯克斯當年提出的軟件開發的內在特性,主要包括“復雜度、一致性、可變性和不可見性”,直到今天依然是準確的。但他沒有繼續深入分析這些內在特性是如何影響到組織管理,組織又應該如何通過哪些措施來規避這些影響。
從組織管理的角度來看,效率提升的本質是基于人類分工的基礎上對規律、規則的流程化,和基于流程化基礎上的自動化和信息化,以及基于大量數據積累的智能化,絕大多數行業都能比較容易實現流程化、自動化、信息化和智能化,進而通過數字化管理實現效率的巨大提升。
目前軟件開發行業數字化管理水平的現狀怎樣?先來看看各類開發工具的情況,可以簡單分為管理類工具和生產類工具,管理類工具主要包括項目管理工具和知識庫管理工具,生產類工具主要包括自動化測試工具、版本管理工具、集成部署工具和自動化文檔工具等。從開發管理類工具來看,沒有實現對核心業務流程產生的數據進行有效處理,更多依賴人工填報的數據處理,精細化管理沒有基于原始真實的流程數據基礎,只能起到輔助性作用。從生產類工具來看,自動化效果差,過多依賴專業人員的專業能力,在實踐中形同雞肋,作用不顯。
由于以上管理類工具使用效益不明顯,不少開發團隊還處于比較粗放的人工管理狀態,部分團隊還處在靠EXCEL管理的水平。另外,由于管理成本太高,加之敏捷開發等一些創新方法的催化,大多數開發團隊甚至放棄了基于詳細設計的精細化管理的努力,這些都違背了基本的管理學常識,自然問題多多。
可以毫不客氣地說,軟件是各行各業的效能之母,但軟件行業本身的數字化管理卻處于燈下黑的狀態,管理效能提升的空間巨大。
二、軟件開發核心業務數字化面臨的管理性困難
實際上,任何行業只要完成了核心業務的數字化,就不可能存在軟件開發行業普遍存在的“項目靠催、人員靠管、質量靠控”的人工管理狀態,從業人員一定是圍著信息系統轉,大量的操作一定是處于自動化狀態。為什么難以對軟件開發的核心業務流程化、自動化和信息化?這是由于軟件開發中存在諸多管理性困難,大體可以總結為以下三個方面:
第一、任務不能完全分解。由此導致需要大量協作溝通,需要協作溝通的人員數量影響著開發成本,因為成本的主要組成部分是相互的溝通和交流,以及更正溝通不當所引起的不良結果。任務不能分解導致責任邊界不清晰,考核難以落地,上升到組織層面,結果導致整個組織無法實現精細化的分工管理,組織的效率低下也就不難理解。
第二、流程數據不能得到有效處理。對于一行一行代碼這樣的流程數據,單維度、絕對化的數據處理對其績效無法有效衡量,單一的代碼行數這樣的數據是沒有管理價值的,這導致管理運營中缺乏可以有效利用的流程數據。
第三、系統性限制導致自動化生產困難。每個項目都有其自身的系統性,在這里稱為系統性限制,使得自動化生產必須依賴專業化操作,比如自動化代碼生成、自動化測試,都必須根據項目由專業人員處理,結果導致在軟件開發的實踐中自動化生產形同雞肋。
產生以上三個方面管理性困難的原因,主要是來源于軟件開發內在特性的“復雜度”和“一致性”,如果能很好地解決了“復雜度”和“一致性”,“可變性”和“不可見性”也自然不成為問題。
三、人工智能技術創新是消除管理性困難的希望所在
上面三個方面的管理性困難,實際上都是軟件開發“復雜度”和“一致性”的疊加導致人腦難以駕馭,多因素、強關聯和大量數據直接造成的結果是很容易超出人腦的記憶能力和邏輯思考能力,造成工作效率低下,在多人合作的情況下帶給組織的不利影響加劇。一般性的信息系統多是面臨的基于時間、空間的線性流程和基于可知性、有限關聯因素的邏輯處理,從一行一行代碼來看,軟件開發工作幾乎沒有基于時間、空間的線性流程,更要面對眾多不可知的、大量關聯因素的邏輯處理,一般性的信息系統自然無能為力。
那就需要一種特別的信息系統,具備一種多維聯動、動態自學習的信息處理能力,而不是簡單的存儲查找和線性流程化的信息處理能力。什么是多維聯動、動態自學習的信息處理能力?簡單說就是人工處理其中一個維度或者一個點的信息和事務,系統能動態自學習地自動化處理其它相關聯的原來也需要人工處理的信息和事務,極大地降低對人腦處理“復雜度”、“一致性”的要求,這就需要人工智能在軟件工程中的創新應用。
針對上面三個方面的管理性困難,人工智能技術的創新應用將能有效消除其不利影響。針對任務不能完全分解,合適的人工智能技術創新能根據開發規范的要求,有效地減少人腦需要關注的過多的關聯因素,使得細分任務邊界清晰,便于管理考核;針對流程數據不能得到有效處理,合適的人工智能技術創新能有效地判斷一行一行的代碼是否符合規范要求,基于這個判斷的基礎上,代碼開發工作產生的流程數據就可以作為績效管理的基礎;針對系統性限制導致自動化生產困難,合適的人工智能技術創新能發揮自學習能力的優勢,能夠根據項目的系統性要求,快速抽取并建立規范,以支持各類自動化生產。
四、軟件開發核心業務數字化的主要內容
從管理分工的常識出發,要提高生產效率,需要先把軟件開發工作分成兩大類工作,即必須由人來完成的和可以由系統自動完成的,努力的方向就是盡量多地由系統來自動完成,減少人工開發。鑒于軟件開發的內在特性,勢必有相當部分的工作需要由人來完成,再把這部分由人來完成的工作分成兩類,即核心創造和具體實施,核心創造即為項目的設計工作,在軟件開發環節大概就是系統設計師的工作崗位,信息系統要為負責核心創造的人員提供數字化輔助支撐;對負責具體實施的人員進行精細化管理,并將這類工作更多地轉變為不需要人的自動化完成。
基于以上思考,軟件開發核心業務數字化主要包括以下兩方面內容:
自動化生產方面,主要有“文檔自動化生成、代碼自動化生成、自動化測試和自動化部署等,降低人工所占的比例,脫離專業依賴,實現真正的自動化、無人化;
精細化管理方面,主要有“詳細設計數字化、任務可完全分解到小時級顆粒度和流程數據有效數字化”,支持對人工編寫代碼的精細化績效管理。
洛陽森竹軟件科技有限公司—洛陽軟件開發|洛陽網站建設|洛陽小程序制作|洛陽APP開發|洛陽軟件外包|洛陽商標代理|洛陽知識產權|洛陽商標注冊|洛陽軟著申請|洛陽版權登記|
聲明:轉載此文是出于傳遞更多信息之目的。若有來源標注錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯系,我們將及時更正、刪除,謝謝。選擇森竹服務,開發少走彎路——洛陽森竹軟件科技ads4thepeople.com