軟體工程中的經濟行為與軟體架構師的工作

來源:互聯網
上載者:User

Author:Anders小明

軟體工程中的經濟行為
1. 在傳統財務概念下,軟體公司或者商業公司IT部門的員工,是公司的成本中心。對於一個定額合約項目,員工工資成為項目中唯一的可變成本。
2. 因此,儘可能的縮短工期,減少人員投入就成為縮減成本的基本方式。

3. 軟體的分工模式,以及傳統的waterfall——流水線的工作方式,決定了問題發現的越早,修正的成本越低。
4. 有兩種手段來減少工期,工程上採用迭代,並讓迭代周期儘可能短,以及從技術上對於問題域進行分解,建立有效邊界。
5. 迭代周期減少的目的是減少分工環節中尤其是第一個環節的不確定性帶來的問題,而對問題域的技術分解是解決開發環節的品質問題。因為通常維護成本是開發成本的3倍,提高品質可以減少項目後期對前期開發代碼的維護成本。
6. 同時,分解的好壞將決定了是否可以在開發環節中引入測試環節的工作,從而提供品質;並減少修正缺陷以及測試的工作量。
7. 品質是難以衡量的,通常以能否工作為準。而通常意義上的高品質代碼是可以較容易調整以及適應變化,但是不容易識別。
為保障品質,通常的手段是代碼審查,但在工程中完全代碼審查承保高昂,同時工作量大,並難以評估(評估結果有時因人而異)。而各種各樣的代碼規範檢查工具只能保障最低要求。

8. 在進度落後於計劃時,管理員通常會下達行政指令——要求項目成員全力以赴趕上計劃。在此情況下,工程人員通常犧牲品質換取開發進度,同時把品質問題推後發生。
9. 軟體開發是腦力勞動 而非體力勞動;因此工程人員有很大的權利,他們有選擇品質和進度的能力,工程人員的工作狀況嚴重影響產出和進度。而上述情況的發生是人在利益環境下的自然選擇,對於工程人員的指責無濟於事。
10. 正確的工作方式是,為工程人員創造合適的條件以便工程人員做正確的事。

軟體架構師的工作
軟體工程的三要素:工具,方法和過程。然這所有的一切是規範人的分工和行為,提高人的生產效率,降低成本。
架構師的工作圍繞這個三個要素進行。
1. 工具評估(包括開發平台,開發語言,開發工具以及協助工具輔助)。
A. 用好的工具提高生產效率,使人關注於有效工作內容,從而減少不必要工作量,減少成本。
特別對於分工下的團隊開發尤為重要。典型的分工是流水線,一步接一步。減少上一個環節的工作量,如開發環節,不僅提前下一個環節——測試的時間。
B. 用好的工具保證品質——另一種生產效率。
保證品質有利於減少工作上的反覆,尤其影響到測試工作量,從而減少成本。
提高生產效率的同時有利於保證士氣。

2. 方法論選擇
解決問題的辦法就是分治。要被分解問題域是:資料(模型),計算和流程;而如何分解問題便是架構師的取捨啦,流行的有OOD和AOSD兩種。

在大比例結構中必需考慮的是:抽象分層,技術分層以及模組切分。抽象分層(包括模型,計算以及流程抽象)以及模組切分是基於業務的縱向以及橫向分解。而技術分層則是對於商務邏輯的技術分類,分類本身還可能涉及到平台技術限制。所有分解都涉及到內容相關的邊界建立——不僅僅是商務邏輯同時也是技術邊界。

分解問題必需考慮人的因素,降低分解後的知識學習阻力,保持知識的內聚以及有效組織是保證分解成功的關鍵。這些工作將有效保證開發人員不做出破壞系統分解邊界的行為。
考核分解的有效性:保證開發的效率。分解的目的是降低解決問題的難度,從而提高生產效率,如果分解方案增加了系統適應變化的能力,那麼分解方案可能是錯誤的。

除了開發方法還有開發方式,已知的三種開發方式:編程式,聲明式以及產生式。
開發方式的選擇和技術分層有相當的聯絡,一般認為除了Service以及Model,其它的技術分層代碼盡量使用聲明式以及產生式開發方式來完成,減少建立以及維護成本,提高效率。

對於Domain Model還要分析model的生命週期,明確設計主題。

3. 過程選擇
選擇的過程,最重要的是讓問題及早暴露(降低成本),儘早讓使用者使用(創造價值).
敏捷方法就是要讓問題更快的暴露,讓功能更快的實現。

文檔,文檔是過程的一個重要產物。文檔也是保證知識傳遞的。
在問題分解情況下的開發角色分為三種:開發人員,使用者以及維護者。開發人員寫的文檔給後兩者看,最最關鍵是寫給使用者的文檔。

所有的決定都是基於利益和成本考慮的

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.