80/20也影響調度

我們都聽說過80/20規則,該規則說我們80%的成功(效果)僅來自我們20%的行為(原因)。 嗯,這個普遍的真理也會影響軟件開發,在本文中,我們將介紹該聲明的一些基礎知識。

BPM

Business Process Management(其英文縮寫)是一門管理學科(除其他外),它使您可以直觀地了解必須在企業(或在許多其他地方)執行的流程。 它的主要特質是可以分析複雜的過程並使它們“簡單”的事實。

有許多開源工具可讓您開發BPM圖表,我在本文中使用的工具是BonitaSoft。 如果您想了解有關過程管理的更多信息,可以在Internet上找到許多教程,並可以找到有關該主題的書籍。 現在讓我們回到中心主題。

軟件項目

如今,專案開發方法多種多樣:敏捷開發、傳統開發、混合開發等等。但它們都有一個共同點:準備工作。這是什麼意思呢?這意味著,軟體專案成功率的80%取決於整個流程的前20%:準備工作。

準備項目

這是一個邏輯上看似合理的觀點,但在現實中卻很少被應用(就像許多其他邏輯上看似合理但實際操作起來卻不合邏輯的事情一樣)。談到準備工作,我們必須理解理解問題、理解解決方案,以及最重要的,理解解決方案所採用的流程。在非專業的軟體專案中,最不常見的問題之一就是缺乏這方面的文件。這種情況通常發生在私人公司,因為銷售的慾望往往會凌駕於開發流程之上。

由於許多閱讀這些文章的人都在科技業工作或與科技相關,因此值得一提的是,如果他們在職業生涯中的任何時候遇到一家準備不充分的公司/供應商,那麼幾乎可以肯定,該項目不會順利進行(概率為 80%) 。

抽像是關鍵

這是我在使用 GNU/Linux 系統期間學到的,而且一次又一次地證明它在軟體開發過程中至關重要。將問題抽象化並簡化為更簡單的事物,對於編寫優雅且持久的程式碼至關重要。或許,這正是大型專業專案與不受控制地成長的專案之間的主要差異之一。前者會仔細思考、理解並建立流程,而後者只是簡單地維持運行,無需真正理解其運作機制。

登台者

可以想像,這是Gentoo安裝程序開發的項目的名稱,這是一個非常複雜的過程,因為它支持大量架構。 要考慮的另一個因素是它在內核級別,初始化系統等方面支持的配置數量。 我告訴你所有這一切,因為這也是我的論文項目,在完成學習之前必須完成。 顯然,我無法在這麼短的時間內(到明年XNUMX月)編寫一個可以考慮所有可能選項的程序,但是至少我可以生成一個可以以非常基本的方式安裝功能係統的程序。

了解安裝過程

借助BPM工具,可以生成流程圖,使我們能夠了解在計算機上成功安裝Gentoo所需的步驟。

Gentoo安裝過程

擁有。 克里斯托弗·迪亞茲·里維羅斯(Christopher Diaz Riveros)

儘管包含幾個過程和子過程,但顯然已經對其進行了概括,可以看出我們有18個線性步驟。 這很重要,因為具有線性結構的應用程序易於實現,並且在必要時可以在一個或多個線程中生成並行性。

另一個重要因素是它允許我們按類型抽象化進程集;例如,定義核心子進程可以讓我們知道其中存在與成功安裝核心的過程直接相關的特定任務。

子流程“內核”

擁有。 克里斯托弗·迪亞茲·里維羅斯(Christopher Diaz Riveros)

透過這種方式,每個「複雜」步驟都以全局方式變成「簡單」步驟,而不會失去必要的細節。這有利於裝配的可見性,而不會降低成功完成該過程所需的規範水平。我們不能否認,看到圖像比立即閱讀整本手冊更容易 

省時間

另一個明顯的優點是,由於沒有直接連接的編程語言,因此可以執行邏輯分析而不必浪費時間實施該語言。 與之相比,這是一個優勢,因為有一個更有效的解決方案,僅花一個時間就可以發現某個功能將被丟棄,而花時間去實現它。 就像偽代碼中的解決方案一樣(許多“開發人員”也忽略了,但不應忽略)。

指導項目變得容易

考慮到這些概念,專案管理(任何類型的)都會變得更簡單,因為我們將精力集中在真正必要的地方,如果這部分做得正確,其餘部分就會自行發揮作用。我希望它能激發您的好奇心並激勵您研究 BPM、演算法,誰知道呢,也許它會鼓勵您幫助我完成我的論文  非常感謝您來到這裡,我們很快就會見到您。問候


在 Google 中將其新增為首選來源