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