2009-07-23 78 views
24

我的團隊一直在逐步採用越來越輕的方法論,從Scrum轉向精益/看板,而正式流程越來越少。在某些時候,我們會回到牛仔編碼;我確實擔心我們可能已經在邊界線上。如何停止精益編程成爲牛仔編碼?

哪裏可以在非常輕量級的精益和敏捷過程與無政府狀態之間劃出界線?我們怎麼知道我們什麼時候越過線?我們如何防止我們越過這條線?

這個問題也可以被解釋爲'精益消除浪費的過程不能安全地消除哪些過程?

回答

24

當你的團隊中只有一個人知道或管理這些代碼時,你正處在一個很好的紅色發光「Saloon」標誌下,而且你基本上是在推開門。

+21

尋找像這樣的語句: 「這個程序不夠大,我們倆」 「高中午在噴泉處遇見你」 – dwarring 2009-07-23 23:02:20

+5

+1:牛仔編碼==獨立編碼。易於在精益環境中預防。不要讓任何人單獨工作。 – 2009-07-27 21:43:48

4

作爲該行的一部分,想到什麼時候完成任務/故事/工作單元。如果你需要測試,並且一雙眼睛看上去有些東西可能有助於防止想成爲牛仔的流氓開發者的情況。同樣,代碼如何進入生產?如果團隊中的任何人都可以隨心所欲地推送代碼,那麼這將是一個警示信號。

一對夫婦的其他警示標誌,我會注意的是:

  • 團隊是否有一個編碼標準,並保持該標準的承諾?
  • 從一個人做「重構」,沒有人認爲是值得的一堆代碼更改?
3

我想如果你保留某種代碼審查,它不會在這方面太錯誤。如果沒有人知道其他程序員在做什麼以及他們如何做,那麼你可能已經越過了這條線。

2

如果您看到告訴您您身處牛仔領域,可能沒有警告標誌的確切列表。就個人而言,如果人們釋放未經測試的代碼,開發尚未明確理解的功能,或者無論如何,忙於工作或忽略警告標誌,我都會擔心。

更好地使用自己的判斷。希望,因爲你問這個問題,你是適當的警長。

1
  1. 永遠不要忘記你的自動單元測試。
  2. 永遠不要忘記你的功能測試。
  3. 永遠不要忘記你的測試。

(我已經犯)

0

出租(或副手)警長,和畜欄代碼,以便它不只是可以提交,而是得到由整個波塞看着。

+0

雖然這是一種很好的方式,但它並沒有真正回答問題 – BobMcGee 2011-06-03 15:30:02

14

想必你擔心效果牛仔編碼

  • 沒有要求
  • 沒有設計
  • 沒有檢測
  • 來自用戶的反饋號
  • 沒有時間表
  • 不可維護
  • 個總線因素
  • ...

只要你有一個計劃/機構/過程中避免這些不良影響,那麼你就行;對?

1

有越來越少的正式流程。在某些時候,我們會回來牛仔編碼...

敏捷/精益/ Scrum的「過程」具有諷刺意味的是,不太正式的過程中不會造成對牛仔編程。

雖然這些方法喜歡「人過的過程」,過程中沒有完全放棄;管理仍然是必需的。在一天結束時,您仍然對您的客戶和截止日期做出承諾。這些承諾應該控制在奶牛身上。

-1

牛仔編碼有什麼問題?如果你開始看到質量差,代碼交付花費的時間越來越長,不符合最終用戶的期望(或者誰付錢),那麼它的時間(我是一位PM)。當你有一個好的/堅實的編程團隊時,不需要正式的流程 - 它通常是內部化的 - 優秀的程序員自然遵循良好的形式/流程 - 我認爲很多流程適用於較弱的執行者,許多案例對優秀/優秀的表演者產生了負面影響。一個好的項目經理需要平衡過程與具體情況......領導/跟進/走出去式的方法

0

這就是ScrumMaster/Lean/Agile教練的價值所在。在團隊中擔任這個角色的人應該能夠檢測到團隊的自律正在滑落,並提醒團隊他們已經就彼此的代碼質量做出了承諾。

你可以做的另一件事是調整容器。將代碼評論添加到您的看板,然後對其進行限制以確保完成。更好的是,需要將所有代碼成對編寫幾周,以便良好的習慣得到強化,並且沒有人可以聲明代碼段的所有權。

最後,考慮,也許你的舉動從Scrum的正式流程走有點爲時過早。 Scrum的規則在那裏教會你一種完全不同的思考和工作方式。如果精益和敏捷的價值觀尚未深入到你的團隊中,那麼迴歸舊習慣是很容易的。在您的團隊準備好之前,嚴格執行Scrum規則可以爲您提供幫助。

請記住,看板是一種工具。如果您沒有始終將精益和敏捷原則應用於其使用,那麼您將無法獲得全部好處。

1

「什麼工藝不能安全地在精益驅動器中消除 到 消除浪費」?

這是一個非常普遍的問題,這是很難準確回答。

當你拋出產生沒有價值管理流程,需要包括更多的技術實踐,如在極限編程中。我曾經談到的大多數敏捷教練都認爲測試驅動開發,結對編程和持續集成是他們在敏捷採用時所給出的。利用這些技術實現「牛仔編程」是非常困難的。如果我擔心代碼失控,我會拋出一些代碼評論。

2

牛仔編碼是流氓編碼。允許流氓行爲的唯一因素是沒有當局的監督。

敏捷的「自組織」經常被濫用渲染術語大多是無意義的開發團隊伺機重新把它解釋爲「自決」的地步。

精益組織的管理方法可能與我們以前的做法有顯着不同 - 即使是來自敏捷團隊。正是這個組織和方向問題,以及組織機制,使所有的差異。

軟件採用精益產品開發還相當年輕,可惜從分心通過看板遭受了不少。但這是可以預料的 - 一種方法的最具外在特徵的方面通常是第一個被認可和採用的方法,而這些通常是最具機械性的方面。看板是精益的機械部分。但它只是一個部分。

精益是一個組織變化遠遠超過敏捷。如果您不改變組織中的董事角色,那麼您最終可能只會訪問精益的最重要和機械方面,並且可能以最天真的方式訪問。

爲了防止任何組織中的任何人流氓,他們需要被引導來滿足期望。儘管如此,導演在精益組織中的角色不僅僅是一個惡霸。精益組織(開發團隊等)的董事也是一名熟練的員工,能夠教導其他人必要的技能,使他們能夠更加精通履行他們接受的責任。

無論你的具體落實過程(代碼審查,配對,獎勵等)取決於太多因素,尤其適用於你的,你碰巧要考慮他們的特定時刻的組織。這項努力的主任應該理解如何徵集整個團隊的集體智力,以尋找好的解決方案或探索,實驗和學習的途徑,並做出最好的決定 - 即使偶爾意味着與集體相矛盾(特別是如果集體在精益方面年輕)。

例如,除非您的組織通過精益智慧唯物主義(例如看板)完全分散精力分散董事會的薄弱問題。如果你有人流氓,你沒有方法學問題,你有組織問題。如果你有組織上的問題,你不可避免地會遇到一個董事職位問題,並且會產生一個非生產性的權力使用問題。

-1

也許讓客戶接觸,所以你不會寫一個BAU預算下的理論系統,這個業務實際上並不需要?更多地與你的經理交談。

0

精益和敏捷都涉及在一個非常特定的背景下最大限度地減少浪費:提供價值。

如果您停止使用幫助您高效生成價值的流程,那麼您將減少產值或降低產值。

由於精益和敏捷技術都涉及衡量您在生產價值方面的進展,因此您應該能夠分辨何時跨越線路並消除有用的做法。

如果您沒有使用速度或週期時間來衡量您的交付價值,那麼您已經越過了界限!