2011-07-07 22 views
0

我在一個大型組織的初創軟件開發部門工作。在過去的幾年裏,我和一些(非常)少數人已經開發出了相當成功的軟件產品,我很高興地向大家報告,非常可維護。從Agile/XP實現好位?

如果使用了任何特定的方法,那麼我認爲這是在短期迭代中交付功能性產品的靈活性的核心,而不是長時間的客戶等待。

我們的發展始於走向客戶/用戶羣,並通過觀察,訪談,評估當前工具和評估需求來評估需求。然後,我們會在迭代(大約一個月)內儘快提供核心需求,客戶/用戶可以使用該功能產品與該特定迭代中包含的功能一起使用。

我認爲,大型嚴格的TDD可能是對我個人來說有點大材小用,但我理解正確的單元測試的價值和理解,它變得越來越爲團隊更重要的規模不斷增長 - 這是我大概現在不夠重視。很多功能測試都已完成,但我知道我需要實施比現在更多的單元測試,並且隨着新開發人員的加入,我不能讓我的壞習慣成爲常態。

因此,我請在座的各位StackOverflow上的用戶,你認爲什麼是敏捷/ Scrum的/ XP /最重要/有用的方面(在這裏插入你最喜歡的方法)

我在的幸運位置能夠確定在團隊開始發展成爲一個合適的軟件團隊時將使用哪些流程/方法。

我花了很多時間上的各種方法,閱讀起來,責備他們,我猜是什麼對我最重要的是:

  • 短迭代提供功能性產品 - 爲我們的組織和客戶,能夠向贊助商/投資者/用戶展示「真實」的東西,並且他們能夠使用手中的東西已經走了很長的路,並且保留了很長的產品免於死亡。
  • 確定任務優先級的好方法 - 這對於保持上述工作順利進行至關重要。
  • 同行評論
  • 單元測試 - 有人可以指出一個有很好的單元測試信息/示例的參考,它提供了很好的實用性,而不會過於耗時或乏味(我不確定是否我需要一個測試來確定一個類/接口在我編寫該接口之前是否存在,例如)
  • 時間估計 - 我想我正在尋找最好的方式來「猜測」什麼時候準備好,與鞭策團隊在截止日期之前完成某項工作,而這個期限估計不足。

我知道這個問題是含糊不清的,等等,但感謝尋找:d

TLDR:敏捷,XP,和Scrum的哪些部分,你人認爲是「最好的」,並有助於健康的產品?如果你明天不得不提出一個新的軟件管理流程,它將包括什麼?

+2

有什麼不對您的名單?你已經完成了這項工作。你還需要知道什麼? –

+4

我投票,因爲[項目管理現在是題外話上堆棧溢出(// meta.stackoverflow.com/questions/343829/is-stack-overflow-an-appropriate-website關閉這一問題作爲題外話-to-ASK-有關項目管理,問題/ 343841#343841)。請在[SoftwareEngineering.SE](// softwareengineering.stackexchange.com/)和[ProjectManagement.SE](// pm.stackexchange.com/)上提出這些問題。 (不幸的是,這個問題太舊,無法遷移。) – robinCTS

回答

2

以下是我們依靠(使用Scrum的將近5年)的頂部做法:

  • 短的,規定迭代(30天是理想的)。
  • 業務價值優先用戶故事積壓。
  • 將所有故事的團隊估算作爲努力(點數),而不是時間。
  • 會議每日15分鐘或更小,以揭開障礙等
  • 精心腳本,在衝刺的末端呈現演示。
  • 一旦衝刺/迭代開始,沒有終止的故事沒有重大變化。很重要。
  • 團隊可以決定何時/是否需要進行額外的工作。
  • 速度根據觀察向上/向下追蹤。最初,這是一個猜測,然後你跟蹤和調整。

TDD,配對編程,持續集成等都是很好的做法,但在採用更先進的技術之前,先了解基礎知識是非常重要的。到達團隊以穩定的速度起步的地步,一次又一次地成功衝刺,人們對這一過程感到滿意。

當您的業務人員/採購員要求您以「積分」而非時間進行估算時,詢問我們必須花費多少「積分」(即速度)等,您知道您已準備好轉移到先進的東西。

+0

感謝您的意見,我們有我們的我們的「憲章」做圓儘可能的初稿正是我們試圖擁抱。穿過我的手指;) – Yablargo

0

我假設你在你的公司做得很好,你正在尋找更先進的東西。

從技術上講,我會看看Continuous Delivery

該技術旨在能夠在一天中的任何時間將軟件運送到生產環境。 Flickr,例如,uses it(「在上週,有35人部署了331人,其中有18人。」)。

爲了做到這一點,你必須有:

  • 一個堅實的測試工具,從單元測試functionnal的。
  • 瞭解部署基礎架構。你將不得不避免停機。
  • 您的部署必須實現自動化。
  • 等等。

在方法方面,我會看看Kanban和其他Lean principles。它旨在縮短上市時間:從創意到生產狀態。

玩得開心!

0

我的一個最好的做法肯定是TDD。我不會在這方面吝嗇。當我說TDD時,我也意味着真正的TDD,其中包括重構重構。它對我的生產力和質量貢獻最大。

另一個將是簡單設計。努力保持清潔和簡單的事情也付出了代價。

+0

我將包括BDD與TDD - 它不是嚴格有關測試,其對工具和技術,以確保您都「建設正確的代碼」(設計和測試手工和「建立正確的代碼」(要求/例子和與產品所有者的對話等) – KarlM

+0

同意卡爾。我知道我是少數,這些天,但我用了定義BDD == TDD做得很好 – bcarlso

1

我認爲你使用的任何方法都應該有一個專門的產品負責人,他應該不斷地完善你的產品積壓和設定驗收標準。

1

自動化驗收測試

據瞭解哪些技術需要提高發行頻率Kent Beck的USENIX通話「軟件G勢力」 http://www.youtube.com/watch?v=KIkUWG5ACFY ,自動化驗收測試的基本技術之一,以可靠地從年度到季刊。

而且戈傑科·阿德齊奇的書「的實例規範」對如何敏捷團隊的開發和使用的形成生活文檔的身體自動化驗收測試大套房,許多真實世界的例子。

即使你不這樣做TDD,建立了可運行自動化驗收測試,並隨時看到結果的機構,是偉大的開發團隊和客戶之間建立信任和加強溝通。他們證明你所建立的是正確的。