為何Google這類巨頭會認為敏捷開發原則是廢話?
敏捷開發以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。在過去8年裡,我一直工作於“Agile”開發小組,所以讓我用敏捷開發原則來告訴你事實,或許你會明白為什麼那些在像Google這樣巨頭公司工作的開發者會認為敏捷開發是廢話。
(題圖來自:academyone.com)
1.及早並持續的交付有價值軟體來滿足客戶需求的優先順序是最高的。
“我的客戶一直由其他業務部門接洽,我從未見過我的客戶,我不知道他們是做什麼的。”這是現如今大多數公司的真實寫照。
2.歡迎需求變更,即便是在開發的後期。為了客戶的競爭優勢。
沒有人願意接受改變需求。這就是第二個敏捷原則,普遍被厭惡的一個。
3.頻繁交付軟體,傾向於較短時間跨度。
部分公司在這方面做的很好,但是大多數團隊無法很好的掌控敏捷時間的尺度。交付時間表通常是基於大的更新,而大更新不屬於敏捷。
4.業務人員與開發者的繫結模式一直貫穿專案始末。
開發者和業務人員一起工作是罕見的,大多數公司都會有一箇中間人來促進這種關係,然後效果是不理想的。開發者需要直接對話的應該是直接使用程式的人,而不是他們的經理。現實生活中的需求往往是由幾個個層次以外的人來決定,而不是直接從使用者到開發者那來的。
5.激發個體的鬥志,以他們為核心建立專案——大多數人都不知道這表達了什麼。
這意味著低水平的員工對軟體有最好的注意,並且他們積極的去解決問題。專案圍繞這些慾望來構造,而這也了直接影響公司的底線。
5a.為他們提供所需的環境和支援,輔以信任,從而達成目標。
這是關於開發者的,你曾經有過這樣的工作環境嗎?你所需要的工具、訪問許可權和配件都有。或許不用多說什麼了,不是嗎?
6.不論團隊內外,傳遞資訊效果最好、效率也最高的方式是面對面交談。
這句話的意思是告訴我不能用IM和郵件來交流嗎?如果團隊的成員分散於各地呢?我改進現有軟體的最有效方法是站在某人後面看他使用。然而在大多數公司中,你做不到這樣,即便你知道客戶是誰。他們也是忙的無暇顧你,也有可能是其他原因。現如今的人際交往不再像從前那樣。不是嗎?
7.可工作的軟體是進度的首要度量標準。
我們所在測量的都是類似於缺陷率、工作時間等事情,幾乎從來沒測量過這些事項:顧客得到可工作的功能了嗎?我們釋出了多少個可工作的功能?這些功能是大、中還是小的?沒人知道。
8.敏捷過程倡導可持續開發。負責人、開發者和使用者要能夠共同維持其步調穩定延續。
這意味著每個人每週都要花30個小時在開發上,還需要花10個小時管理自己和工作負載、與他人溝通等等。這樣才能保證這種做法持續下去。更多公司所做的是不定時的加班,有的則是經常加班。這是不可持續的。敏捷模式很少進入這樣的緊急模式,而你則是經常性的。
9.堅持不懈的追求技術卓越和良好設計,增強敏捷能力。
在我看來這是對原則1和7的正確權衡。
10.以簡潔為本,極力減少不必要的工作量。
坦白來講,大多數團隊並沒在這上面花費足夠多的時間,我們最終不僅複雜了軟體,也複雜了開發習慣、複雜了程式碼,這減緩了維護和新開發。
11.最好的架構、需求和設計出自自組織的團隊。
團隊是由管理層組織的,幾乎沒有他們自己的事。不過這只是一個企業文化的問題,並很難被克服。有時在初創公司和小公司你可以發揚這種原則並讓其工作,但是在大多數大公司,還是算了吧。
12.團隊定期地反思如何能提高成效,並以此調整自身的舉止表現。
這更多地算是一種常見的績效考核形式,沒有我們真正想要的層面。敏捷想要的是“作為一個團隊,一起坐下來看看我們做了什麼,如何在下一次做的更好”。然而實際上所發生的是個人主觀上的計算和測量,基於這些團隊幾乎得不到任何實際的改進。
所以說敏捷是廢話,因為沒有人會推崇這些原則來工作,不過他們仍然在說其所做的是敏捷,這是非常讓人沮喪的。
敏捷方法存在很多廢話,但是同樣的廢話也會存在於新的軟體開發中,從物件導向到面向服務的體系結構等等。一個真正的敏捷方法不適用於緊急狀況,更多的是為了產品創新。如果作為準備,他可以改變整個組織,Salesforce從2007年就開始使用Scrum,這使它們能夠建立一個可預測的釋出週期。並因此而建立越來越多令人印象深刻的功能和產品。
需要明確的是,敏捷方法不是良方,有能力的人、勤奮、專注和自律造就優秀的軟體開發。
相關文章
- 為什麼像Google公司的一些開發人員認為敏捷開發是無稽之談? - QuoraGo敏捷
- 巨頭為何頻頻對智慧硬體出手?
- 網際網路巨頭為何都開始深挖人工智慧?人工智慧
- 敏捷開發大家談(五)--敏捷開發的設計原則敏捷
- [原]敏捷開發-每日站會敏捷
- 華爾街日報:日本電子巨頭為何敗給iPhone?iPhone
- 無程式碼開發為何會受到追捧?
- 為何巨頭紛紛投入伺服器AI晶片市場?伺服器AI晶片
- 中國網際網路巨頭為何戀上刷牆廣告?
- 敏捷軟體開發:原則,模式,實踐敏捷模式
- 邊緣計算成為下一個爆發點,雲端計算巨頭和CDN巨頭誰會贏?
- 微軟為何廢除員工排名制度?微軟
- 兩年了,蘋果付費榜為何還是個廢榜?蘋果
- YouGov:全球31%的人認為會說普通話是一項重要資產Go
- 敏捷開發流程之Scrum:3個角色、5個會議、12原則敏捷Scrum
- 北大研三,為何會這般焦慮?是讀博還是就業?就業
- 三七遊戲為何“上頭”遊戲
- PHP為什麼會被認為是草根語言?PHP
- Google Analytics為什麼會這麼快Go
- [敏捷開發實踐](1) 認識敏捷開發敏捷
- 敏捷運動發起人馬丁·福勒認為當前敏捷運動是一場悲劇敏捷
- 敏捷專家認為敏捷框架SAFe實際最不敏捷敏捷框架
- 中國網際網路的巨頭們,為何敢“大資料殺熟”?大資料
- 開源軟體為何會成為“兵家必爭之地”?
- 為什麼說敏捷開發是應用程式的未來?敏捷
- Google為何計劃收購InMobi?Go
- 分析:Facebook為何比Google強大Go
- 企業級軟體系統開發為何這麼貴?
- 為什麼“敏捷”會浪費這麼多時間? - Reddit敏捷
- 三分鐘讓你理解什麼是敏捷開發,這才是敏捷開發......敏捷
- 何為軟體開發的難?
- 兩會提案聚焦白帽黑客 周鴻禕為何頻頻為這個群體發聲黑客
- 深度學習該往何處走?Yoshua Bengio這麼認為深度學習
- 為何美國認定在Linux上看DVD為非法行為Linux
- 為何說蘋果開發者大會很水 被微軟搶了風頭?蘋果微軟
- 什麼是python?python為何這麼火?Python
- 敏捷軟體開發:原則、模式與實踐讀書摘要敏捷模式
- 為什麼我認為Flutter是移動應用程式開發的未來Flutter