成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么軟件開發方法論讓你覺得糟糕?

開發 后端 項目管理
圍繞軟件開發實踐和方法論,總有很多教條式的口水仗。階段式(phase-gate)方法能夠有效管理軟件開發過程的風險,還是說只是風險管理中的花哨噱頭?TDD真的能夠促生出高品質軟件?結對編程是代碼評審的有效替代抑或只是增加了商議溝通代價?

圍繞軟件開發實踐和方法論,總有很多教條式的口水仗。階段式(phase-gate)方法能夠有效管理軟件開發過程的風險,還是說只是風險管理中的花哨噱頭?TDD真的能夠促生出高品質軟件?結對編程是代碼評審的有效替代抑或只是增加了商議溝通代價?我想說,雖然缺乏證據判斷這些論調的謬處,但有兩條常用的法則能夠幫助我們選擇好的實踐,同時,提升我們所提供軟件的價值:劃小開發周期以及提升反饋效率。 Michael Feathers給出了以下觀點:

為什么軟件開發方法論讓你覺得糟糕?

我認為,到了最后,我們還是得倚重開發者的能力,這才是個更重要的考量因素,而非選擇哪門語言或糾結于方法論間的細微差別[1]。坦誠地說,我們都清楚這點,但我們看起來好像過度糾結于開發能力是關鍵因素這事兒上。或許這是個經濟學里一個被廣泛接受的觀點的引申,但如果人是可以輕易輪換的(隨便找個人都能頂上),那才是堪稱理想的。

問題是,我們怎樣才能找到有(合適)技能的開發者?IT界從未很好地定義個體生產率,從這點來看,那么,要找到合適技能的開發者就是個很難解決的問題。代碼行數(Lines of code) – 在現在仍然是一個主流的度量方法 – 深陷“一行代碼一個責任”泥潭,這并不是一個好的方法。而度量工作小時數則是鼓勵(個人)英雄式舉動 – 經驗表明,“英雄們”通常就是導致項目延期的人,依賴“英雄”往往是一開始就采取的不該采取的冒險行動,長時間工作導致人變得魯鈍,并導致低質量軟件出現。目前還沒有被普遍接受的針對IT專業人才的專業要求系列標準和雇用范式,招聘好的人才,是一門(招聘)藝術,而非(招聘)工程。

心理學家至少對這個問題進行了研究:為什么IT業的技能很難被掌握和度量Daniel Kahneman說(Thinking Fast and Slow),掌握技能有兩個基本條件:一個環境足夠規律以便可預測;有機會通過長時間實踐來學習掌握這些規律。

但是典型的軟件項目往往是沒有規律及可預測環境的。項目成功的唯一正確度量就是:最終的結果通過整個生命周期里的實施達到了預期目標嗎? 很難知道什么關鍵活動導致了項目成功和失敗,很少有人能夠通過舊有或現有的項目獲得答案。幾乎不可能判定哪些決策導致了成功或失敗(在人工智能領域,這叫作信度分配問題)。

這些因素造成了IT專業人員很難掌握引導產品和服務走向成功所需的能力。然而,開發者掌握能幫助他們更高效地達到目標的技巧,將使他們更有動力 – 通常稱之為“開發完成”,盡可能快的、不考慮是否功能被集成以及生產就緒。類似的場景也常出現在其他功能性實施領域。

實際的軟件項目是復雜的,沒有規律可循,這會導致另一個問題 – 為了證明某種技術、實踐和方法論是實際有效而收集相關數據是極度困難的,幾乎不可能在脫離收集環境的情況下歸納出這些數據。

在Laurent Bossavit的好書The Leprechauns of Software Engineering中,他抨擊了軟件開發的一些慣式,比如“成本變化”(或“缺陷成本”)“曲線”,這些慣式是許多其它的軟件開發方法論知識基礎,稱開發人員生產率的變化是一個數量級(參照確定性金字塔原理)。Laurent Bossavit說明了相關依據 – 很多人依賴從計算機科學專業學生進行的非正式試驗或是從無法被有效控制的項目中收集小量數據。這些研究組織的給出的論調基礎往往是不健全的,數據缺乏分析,而且,最過分的是調查結果普遍遠遠超出了他們的適用領域[2]

因此,不太可能輕易下論斷敏捷開發實踐就比瀑布模式之流合適,反之亦然。“方法大師”的見解其實也沒太大指導意義,就像Kahneman說的,“人們在想法方面的信心,并非是有效行事可倚重的因素…當評估專家的想法,即使在有規律可循的情況下,你也一定要想清楚是否有合適時機可以引入其想法的可能性”。就像Ben Butler-Cole指出的(why software development methodologies rock),引入一種新方法往往會帶來一些影響。

你可能會認為當我們決定怎樣運作一個團隊時,我們就陷入了被動。但細想一下為什么軟件開發無章可循?為什么在這個環境里很難進行一些試驗以及獲取技能?什么實踐和決定會導致成功或失敗?其中的根原因就是:環境是不規律的,做出變更與理解變更帶來的結果之間的反饋過程太長了。這里的“變更”一詞是指廣義上的需求變更、方法變更、開發實踐變更、商業計劃變更、代碼或配置變更等等。

還是有一些辦法幫助縮短周期的,比如當我們應用精益軟件開發思想 – 一個很重要的方法。縮短開發周期在大型產品開發中是很重要的:在Bret Victor的精彩視頻Inventing on Principle中提到,“如此多的創新被發現,只要你真正理解了你在做什么,你就能發現任何事物”。

但對我而言就是這樣的:我們幾乎不可能實踐持續改進、學會怎樣使團隊或個人變得更好、掌握成功創建大型產品與服務所需的技能。除非我們聚焦于盡可能使反饋間隔時間縮短,以便實際洞察其間關聯,以及辨別原因和影響。

事實上,從想法到反饋的周期盡可能短的好處是如此明顯和重要,應該把其作為商業模式中要遵循的一個重要原則。如果你糾結于要把你的產品創建成一個用戶安裝式的軟件還是SaaS模式(software-as-a-service,軟件運營服務模式,軟件即服務),這時的想法會自然而然地推動你強烈考慮 SaaS模式(有感而發)。如果你要重建你的系統(包含硬件),應該考慮怎樣盡快實現原型(how you can get prototypes out as quickly as possible),以及模塊化硬件和軟件,以便你可以快速和獨立地整合。3D printing(三維打印成型技術)技術看起來在這方面有著巨大的用武之地,因為它可以滿足軟件開發應用實踐朝硬件系統(原型呈現)的演進。如果你想如愿以償地縮短周期,或多或少按多功能型團隊(cross-functional teams)方式運作是需要的。 軟件方法論,即使雇用一群牛人并讓他們自我組織,也是糟糕的,因為他們時常搞得“cargo-cult”(貨物崇拜,敏捷開發里的知名小故事,形而上):我們在做stand-ups(每日站立會議),我們有優先順序的backlog(優先待辦事務),我們甚至看在老天的份上實踐了continuous integration(持續集成)。我們的到頭來的結果為什么還這么差呢?因為你忘了最重要的事情:建立一個學習能力和適應能力都很好的組織

  1. 雖然像Laurent Bossavit說的(私下交流),“一個開發者掌握的技能,受限于他/她所掌握的方法及他/她偏好一種語言甚于其它語言”。

  2. 我并非建議放棄在軟件開發中的可行性試驗,在這里的上下文中,我這么闡述是對的。恰恰相反的是,我說的是我們并沒有努力去做好,做得還遠遠不夠。

原文鏈接:http://continuousdelivery.com/2012/08/why-software-development-methodologies-suck/

譯文鏈接:http://www.ituring.com.cn/article/13466

責任編輯:陳四芳 來源: 圖靈社區
相關推薦

2016-05-26 10:57:51

2016-09-07 14:41:43

數據分析數據分析方法論

2013-12-25 09:50:27

華為馬悅企業業務

2022-06-27 08:47:29

BEM修飾符元素

2021-01-05 13:45:31

Go語言編程語言

2021-02-25 10:34:20

運營能力技術

2022-02-25 08:06:48

架構

2012-02-06 10:46:22

開發

2012-02-07 14:16:28

軟件開發工期預估

2021-01-06 08:48:35

CSS 命名模塊

2018-12-29 14:45:34

RESTfulGoogleUser

2021-03-23 10:08:02

編程互聯網數據科學

2020-08-17 08:39:36

API監控

2022-08-17 14:31:42

云計算邊緣計算軟件開發

2020-04-02 07:55:07

分析方法論研發

2016-12-14 13:51:56

2020-06-30 14:15:56

軟件開發編程

2014-07-10 09:44:10

軟件項目開發項目

2018-08-23 09:36:10

軟件開發編程

2018-04-12 17:29:03

軟件開發開發架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本中文字幕在线视频 | 久久激情网 | 黄色毛片免费看 | 欧美中文字幕一区 | 精品国产一区久久 | 国产精品久久久久久久久久久免费看 | 99热热热| 色.com| 国产亚洲黄色片 | 超碰av免费 | 亚洲一区二区在线视频 | 午夜寂寞影院在线观看 | 日韩一区二区免费视频 | 国产日产欧产精品精品推荐蛮挑 | 久久一级免费视频 | 青青草av | 欧美精品一区二区三区在线 | 91亚洲精品在线 | 欧美成人激情视频 | 国产一区二区三区在线看 | 精品日韩一区二区三区 | 99久久精品一区二区成人 | 91精品国产乱码久久久久久久久 | 超碰3| 精品一二| 亚洲视频一区 | 91传媒在线观看 | 成年无码av片在线 | 黄色亚洲 | 欧美精品在线免费观看 | 亚州视频在线 | 天天av综合 | h视频免费看 | 亚洲免费视频播放 | 91精品久久久久久久久久 | 精精国产xxxx视频在线播放 | 古装三级在线播放 | 欧美日韩综合一区 | 国产成人jvid在线播放 | 国产福利在线 | 欧美激情精品久久久久久 |