Làm thế nào để một nhóm Scrum tài khoản cho các nhiệm vụ cơ sở hạ tầng trong cuộc họp lập kế hoạch?


33

Làm thế nào để một nhóm Scrum tài khoản cho các nhiệm vụ dev / cơ sở hạ tầng trong cuộc họp lập kế hoạch?

Thoạt nhìn, chúng không giống như những câu chuyện của người dùng vì chúng không mang lại giá trị cho người dùng cuối.

Tuy nhiên, việc gắn chúng dưới dạng các tác vụ vào một câu chuyện người dùng cụ thể đôi khi cũng không có ý nghĩa gì. Ví dụ: giả sử tác vụ là: "Cài đặt tre." Nhiệm vụ đó không bắt buộc để hoàn thành bất kỳ câu chuyện người dùng nào vì nhóm có thể tự xây dựng và triển khai. Vì vậy, việc gắn nó vào câu chuyện của người dùng sẽ không có ý nghĩa vì nhiệm vụ này không bắt buộc phải hoàn thành câu chuyện của người dùng.

Vì vậy, sau đó, điều này cho thấy rằng các tác vụ này trở thành câu chuyện của người dùng. Nhưng sau đó, nếu câu chuyện nhóm chỉ cho họ, thì điều này sẽ thay đổi vận tốc kỳ lạ vì Chủ sở hữu sản phẩm muốn biết vận tốc chống lại hồ sơ tồn đọng của anh ta, chứ không phải chống lại hồ sơ tồn đọng của anh ta với một loạt các câu chuyện người dùng kỹ thuật kèm theo.

Câu trả lời:


25

Họ không thực sự là những câu chuyện của người dùng. Họ là những câu chuyện của các bên liên quan. Trừ khi phần mềm thực sự được trả tiền cho người dùng trực tiếp, thật hiếm khi một câu chuyện được tạo ra hoàn toàn vì lợi ích của họ.

Tôi cho bạn một vài ví dụ:

  • bài viết được từ khóa, cho phép nhà quảng cáo có quảng cáo hiệu quả hơn
  • CAPTCHA, có sẵn để ngăn người kiểm duyệt phải xử lý thư rác theo cách thủ công.

Hầu hết các câu chuyện kỹ thuật thực sự mang lại lợi ích kinh doanh, nhưng nó hiếm khi cho người dùng. Phrasing chúng theo một cách khác nhau có thể giúp đỡ. Tôi thường sử dụng mẫu Tính năng tiêm của Chris Matts:

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

Điều này công nhận rõ ràng tất cả các loại bên liên quan, bao gồm cả nhóm phát triển. Bây giờ bạn cũng có thể diễn đạt các câu chuyện kỹ thuật của mình, gọi ra lợi ích kinh doanh:

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

Tôi đã viết một vài bài đăng trên blog về điều này: Chúng không phải là Câu chuyện của người dùng , và Tính năng tiêm và xử lý các câu chuyện kỹ thuật . Mong họ giúp đỡ.


3
Ngữ nghĩa ... IMHO điều này đi ngược lại triết lý Agile; thêm sự tách biệt cần thiết trong đó nó không cung cấp giá trị thực nào khác ngoài cảm giác mờ nhạt ấm áp.
Aaron McIver

5
Bạn đang nói từ kinh nghiệm, hoặc lý thuyết? Tôi hỏi bởi vì tôi đã sử dụng mẫu này với một số nhóm bây giờ và thấy rằng việc đặt mục tiêu lên hàng đầu thực sự giúp thiết lập những gì cần thiết để đạt được tầm nhìn dự án. Mike Cohn sử dụng "vì vậy" tùy ý. Tôi không tin đó là.
Lunivore

1
Tôi thấy rằng mẫu này hữu ích để giúp truyền đạt giá trị của nhiệm vụ kỹ thuật được thực hiện đến PO phi kỹ thuật. Có một sự khác biệt giữa "với tư cách là nhà phân tích QA, tôi muốn một máy chủ tích hợp liên tục để ứng dụng được kiểm tra tự động mỗi ngày" và "Để giảm số lượng thử nghiệm thủ công cần thiết vào cuối dự án và xác suất của một lỗi chuyển sang sản xuất, vì Nhóm QA chúng tôi muốn kiểm tra máy chủ tích hợp liên tục ". Hiển thị doanh nghiệp ẩn cung cấp cho OP đủ thông tin để quyết định có bao gồm hay không.
Soronthar

1
@Soronthar Nó kết thúc ở đâu? "Để giảm mức độ thất vọng, với tư cách là một nhóm phát triển, chúng tôi muốn đưa ra các quy tắc của riêng mình" Đó là thông tư. Đó là một lý do mà bạn vẫn tập trung vào người dùng và đó là nó. Nhiệm vụ nên được ẩn khỏi PO; vì PO không cần phải quan tâm đến những chi tiết đó.
Aaron McIver

9
Ồ, và chỉ trong trường hợp không rõ ràng - tôi quan tâm nhiều hơn đến việc hoàn thành công việc hữu ích hơn là về Scrum. Hoặc Lean. Hoặc BDD. Tôi cũng tin rằng hầu hết các công việc hữu ích trong phần mềm đều liên quan đến việc học và quản lý rủi ro. Khi phương pháp luận có được trong cách thực hiện công việc hữu ích, tôi có xu hướng hướng tới công việc hữu ích.
Lunivore

12

Vận tốc là thước đo năng lực của nhóm để thực hiện công việc hữu ích (trái ngược với Kéo). Nhiệm vụ cơ sở hạ tầng vẫn cung cấp giá trị người dùng cuối, mặc dù gián tiếp, bằng cách làm cho nhóm hiệu quả hơn trong thời gian dài. Tôi không gặp vấn đề gì khi theo dõi những điều này dưới dạng câu chuyện của người dùng (người dùng là nhóm nhà phát triển trong trường hợp này) và ưu tiên chúng một cách thích hợp. Chủ sở hữu sản phẩm trong giao tiếp tốt với (các) khách hàng sẽ có thể tìm ra nơi các nhiệm vụ đó có thể phù hợp mà không làm gián đoạn việc giao hàng.


3
Tôi nghĩ thật nguy hiểm khi các đội làm mờ sự khác biệt giữa những thứ có giá trị trực tiếp với người dùng và những thứ hy vọng mang lại giá trị gián tiếp. Cụ thể, cách tiếp cận "mọi thứ chúng tôi thích đều có giá trị" khuyến khích mạ vàng và cơ sở hạ tầng cho nhà phát triển vì lợi ích của cơ sở hạ tầng. Tôi đặc biệt khuyến khích mọi người chỉ đếm những câu chuyện có giá trị kinh doanh trực tiếp theo vận tốc, bởi vì đó là điều duy nhất mà khách hàng sẽ trả tiền mặt.
William Pietri

3
Waltzing với gấu. Mọi thứ bạn làm thực sự có giá trị hầu hết đều có giá trị bởi vì trước đây chưa có ai làm điều đó (nếu không, có những cách khác, rẻ hơn, để hoàn thành nó). Hầu hết những gì chúng ta làm có giá trị là học cách làm những điều mới. Các nhiệm vụ cơ sở hạ tầng giúp chúng tôi nhận phản hồi về những điều mới và tìm hiểu nhanh hơn. Tôi với @Kristo nếu nó giúp chúng tôi học nhanh hơn.
Lunivore

@Lunivore - Sự khác biệt là không ai trả tiền cho bạn cho việc học. Họ trả tiền cho bạn cho những gì bạn làm với việc học. Các đội phải luôn dành thời gian để cải thiện các công cụ và kiến ​​thức của họ. Nhưng tính nó là vận tốc nhầm lẫn nó với loại công việc mà nhóm đang ở đó để làm.
William Pietri

Nó không chỉ là về công cụ và kiến ​​thức. Thử nghiệm suy nghĩ từ Ashley Johnson: Hãy nghĩ về dự án cuối cùng bạn đã làm. Hãy suy nghĩ về việc sẽ mất bao lâu để làm lại với cùng một người, cùng yêu cầu, cùng công nghệ, nhưng đã học mọi thứ bạn đã học. Báo giá từ các PM chạy ở mức khoảng 25% đến 33% - phần còn lại là chúng ta học được bao nhiêu trong các dự án phần mềm. Đọc bài đăng của Dan North về Khám phá có chủ ý: dannorth.net/2010/08/30/int Giới thiệu
deliberate

11

Làm chúng dần dần.

Nếu không có bên liên quan nào muốn nó, đừng biến nó thành một câu chuyện. Chỉ cần chăm sóc nó, một chút tại một thời điểm. Ví dụ, lần đầu tiên bạn triển khai thủ công. Lần thứ hai, bạn tự động hóa một chút về nó. Lần thứ ba, bạn tự động hóa thêm một chút. Cuối cùng, bản dựng của bạn không phải là vấn đề lớn nhất, vì vậy bạn tập trung vào thứ khác.

Bạn sẽ có nhiều hơn các nhiệm vụ tập trung vào nhà phát triển này ngay từ đầu, và điều đó tốt; vận tốc của bạn (được đo bằng những câu chuyện) sẽ chỉ thấp hơn. Đó là một đại diện chính xác của tình huống. Nhưng bạn sẽ luôn có một số, vì vậy điều quan trọng đối với nhóm là tập thói quen làm những gì cần thiết để cải thiện quy trình.


+1: Giải pháp tăng đột biến lần đầu tiên, sau đó tái cấu trúc để trở nên tốt hơn và đáng tin cậy hơn lần thứ hai.
S.Lott

Vậy làm thế nào để bạn chắc chắn rằng các nhiệm vụ tập trung vào nhà phát triển không đảm nhận việc chạy nước rút, đặc biệt là khi bạn chưa thiết lập một chỉ số vận tốc tốt? Tôi sẽ không muốn bỏ lỡ một sản phẩm giao sớm vì chúng tôi đã dành quá nhiều thời gian cho những thứ sẽ giúp ích trong thời gian dài.
Kristo

Và bạn nên dành thời gian cho việc phản ánh thường xuyên và thực hiện các cải tiến quy trình như thế này.
Michael

@Kristo, tôi không nghĩ rằng người quản lý khách hàng / sản phẩm của bạn sẽ cho phép bạn thoát khỏi điều này. Ngay cả khi không có vận tốc được thiết lập, bạn sẽ đoán đúng và thương lượng giá trị sẽ được cung cấp cho những lần chạy nước rút đầu tiên. Ngoài ra, nếu bạn tăng đột biến như @ S.Lott, bạn sẽ không giao hàng nữa.
Michael

@Kristo: Bạn chắc chắn bằng cách thực hiện dần dần và phản xạ thường xuyên. Khi bạn bắt đầu, tất cả những gì bạn biết là bạn chắc chắn sẽ làm sai số tiền. Mỗi tuần, hãy nói về việc bạn nên làm nhiều hay ít cơ sở hạ tầng và liệu bạn có tập trung vào những thứ có giá trị cao nhất hay không. Đó luôn là một hành động cân bằng.
William Pietri

6

IMHO phương pháp lý tưởng là đặt nỗ lực cơ sở hạ tầng như các nhiệm vụ theo câu chuyện của người dùng nơi nó lần đầu tiên giữ giá trị; như bạn đã đề cập.

Lấy ví dụ của bạn; xây dựng và triển khai thủ công ngụ ý nó là một nỗ lực liên tục và không có hình thức hoàn thành. Nó tồn tại vô thời hạn.

Điều tương tự cũng có thể xảy ra đối với mã tự động hóa bất kỳ phần nỗ lực nào trong một ứng dụng thông thường được thực hiện thủ công trước đó. Xác định nỗ lực này như một nhiệm vụ trong câu chuyện người dùng xác định hoàn thành; mà bản chất của nó có giá trị cho người dùng cuối.

Bạn chắc chắn có thể xây dựng và triển khai ứng dụng mỗi lần chạy nước rút nhưng sau đó trở thành một phần của các nhiệm vụ hàng ngày không được theo dõi chính thức thông qua hồ sơ tồn đọng và sau đó tất cả sẽ trở thành tranh luận.


Cảm ơn bạn cho câu trả lời này. Cuối cùng nó cũng làm rõ cách thức này nên được thực hiện: "cách tiếp cận lý tưởng là đặt nỗ lực cơ sở hạ tầng như các nhiệm vụ theo câu chuyện của người dùng nơi nó giữ giá trị đầu tiên".
Igor Popov

Trên thực tế công việc cơ sở hạ tầng này phải là một phần của Định nghĩa Hoàn thành.
Igor Popov

4

Câu chuyện của người dùng xác định giá trị doanh nghiệp từ góc độ người dùng. Do đó, các nhiệm vụ cơ sở hạ tầng thường được coi là "lãng phí". Điều đó không có nghĩa là họ không cần. Nó có nghĩa là thực hiện nhiều nhiệm vụ cơ sở hạ tầng sẽ mang lại giá trị kinh doanh ít hơn. Do đó, các tác vụ cơ sở hạ tầng không nên được coi là kho lưu trữ của người dùng và không nên gắn liền với bất kỳ câu chuyện người dùng nào.

Trong một cuộc họp lập kế hoạch phải xem xét những nhiệm vụ cơ sở hạ tầng nào sẽ thực sự cần thiết trong lần chạy nước rút tiếp theo. Các cam kết sẽ được thực hiện với các nhiệm vụ cơ sở hạ tầng trong tâm trí. Nó sẽ ảnh hưởng đến vận tốc của nhóm, đó là kết quả chính xác bởi vì vận tốc đo lường giá trị kinh doanh mà nhóm có thể mang lại.


2

Tôi không bao giờ đánh đồng các câu chuyện của người dùng là phải cung cấp giá trị người dùng cuối. Nó có thể là phổ biến, nhưng nó không phải là cách chúng tôi xử lý các câu chuyện của người dùng. Đôi khi, các loại tác vụ này được coi là tăng đột biến, nhưng chúng tôi cũng có các câu chuyện người dùng thường xuyên, điểm được ước tính như bất kỳ câu chuyện người dùng nào khác.


Một số nhóm làm việc theo cách đó, nhưng điều đó làm cho việc đo lường giá trị được giao khó hơn. Cá nhân, tôi đề nghị các đội chỉ tạo ra những câu chuyện có giá trị kinh doanh. (Spike có giá trị kinh doanh vì mọi người mua sản phẩm thông tin về các lựa chọn trong tương lai và chi phí của họ.)
William Pietri

Nhưng giá trị kinh doanh là gì? Đó là một thuật ngữ rộng và bất cứ điều gì cho phép doanh nghiệp phát hành phần mềm sớm hơn / tốt hơn / vv đều có giá trị đối với doanh nghiệp đó.
Andy Wiesendanger

Sự khác biệt tôi đang vẽ là giữa những thứ có giá trị trực tiếp chủ yếu cho nhóm và những thứ có giá trị trực tiếp chủ yếu cho những người bạn thực sự ở đó để phục vụ. Tôi nghĩ bạn chỉ nên tính cái sau theo vận tốc vì đó là giá trị duy nhất cuối cùng quan trọng. Những điều được thực hiện để hỗ trợ cải thiện việc tạo ra giá trị đó được tính bằng vận tốc thông qua vận tốc dài hạn được cải thiện. Đếm nó ngay lập tức làm biến dạng các ưu đãi, và nhân đôi số tiền kiếm được.
William Pietri

2

Từ những gì tôi đã thấy phần lớn cơ sở hạ tầng được coi là nhất định. Điều này bao gồm những thứ như:

  • Hệ thống kiểm soát sửa đổi;
  • Hệ thống xây dựng tự động;
  • IDE và các công cụ phát triển khác;
  • Phát triển máy chủ;
  • Quy trình triển khai; và
  • Quy trình và tiêu chuẩn dự án.

Hầu hết các phương pháp tôi đã làm việc với không chú ý nhiều đến chúng. Những hình thức này mà tôi gọi là Bản phát hành 0. Những điều này nên được đặt ra trước khi bạn bắt đầu phát triển. Khi bạn bắt đầu thực hiện các câu chuyện, mọi thay đổi trong những điều này có thể được theo dõi dưới dạng cải tiến quy trình.

Mặc dù nhóm phát triển có thể có đầu vào, nhưng hầu hết các mục này nên được xử lý bởi nhóm hỗ trợ dự án. Tiêu chuẩn hóa các mục này trên nhiều dự án sẽ có một khoản hoàn vốn đáng kể cho tổ chức.


1
+1: Nếu điều này không đúng chỗ, Agile thực sự khó. Cơ sở hạ tầng ổn định, đã được chứng minh và nền tảng là một điều kiện tiên quyết cho sự nhanh nhẹn.
S.Lott

1

Hãy xem xét những điều sau đây:

  • Nhóm Scrum thêm các tính năng chính cho bộ sản phẩm hiện có.

  • Cần phải nâng cấp công nghệ / công cụ / tiện ích phát triển để luôn cập nhật dựa trên các thực tiễn tốt nhất về kỹ thuật.

  • Thật ý nghĩa khi tải trước một bản phát hành với công việc này để qua quá trình phát hành Các vấn đề của Sprint có thể được giải quyết.

  • Vì doanh nghiệp có được giá trị gián tiếp từ các mục này, tôi đề nghị rằng vì lợi ích của tính minh bạch, đây là các Mục tồn đọng sản phẩm (PBIs).

  • Nhóm kích thước các mặt hàng này và xử lý chúng như bất kỳ PBI nào.

Vấn đề này đối với tôi làm nổi bật thực tế là tôi không muốn lãng phí thời gian để cố gắng tìm ra cách che giấu công việc này như các nhiệm vụ bên dưới các PBI tập trung vào kinh doanh khác.

Tôi không muốn kích thước PBI bị lệch bởi loại công việc cơ sở hạ tầng này. Tôi muốn xem những gì đang được thực hiện và hiểu những gì tôi đang trả tiền.

Tôi cũng nghĩ rằng có giá trị trong việc nhóm có được sự cam kết mà doanh nghiệp đang thực hiện bằng cách đầu tư vào cơ sở hạ tầng cần thiết để cung cấp các giải pháp chất lượng.


0

XP khuyên bạn nên có "số không lặp" trong đó tất cả các công cụ và cơ sở hạ tầng được thiết lập. Viết truyện cho những điều này là tùy chọn, nhưng có lẽ là một ý tưởng tốt. Có thể kiểm tra cơ sở hạ tầng của bạn (xây dựng gia tăng, kiểm tra và triển khai tự động, thông báo, v.v.) là có lợi


2
XP không khuyến nghị điều đó. Một số người làm, nhưng nó chắc chắn không phải là một phần của Lập trình cực đoan như được định nghĩa bởi Beck, et al. Cá nhân, tôi nghĩ Iteration Zero là một ý tưởng tồi.
William Pietri

Một vấn đề khác, bạn không phải lúc nào cũng bắt đầu từ 0, bạn có thể nhận ra rằng bạn cần một cái gì đó ngay bây giờ hoặc trong lần chạy nước rút tiếp theo.
Andy Wiesendanger

@William: xem "Lập kế hoạch lập trình cực đoan" của Kent Beck, Chương 15, trang 66.
Steven A. Lowe

Đó không phải là một khuyến nghị. Họ nói rằng đó là một ý tưởng và nói, "Nếu bạn chưa từng làm việc với công nghệ của mình trước đây, hãy cân nhắc dành hai tuần để có được công nghệ ngay trước khi bạn bắt đầu lập trình." Và họ không đề xuất "tất cả các cơ sở hạ tầng", chỉ kiểm tra tự động cơ bản, xây dựng và triển khai các tập lệnh.
William Pietri

@William: aha, tôi thấy những gì bạn đang nhận được. Tôi không có nghĩa là tất cả các cơ sở hạ tầng phần mềm , chỉ là những thứ bạn đã đề cập
Steven A. Lowe

0

Trong nhóm của chúng tôi, chúng tôi làm như sau:

  1. Giả sử một yếu tố tập trung thấp hơn .
  2. Cố gắng đưa các tác vụ đó vào các câu chuyện của người dùng thực sự cần thực hiện chúng.
  3. Nếu một số nhiệm vụ là hoàn toàn cần thiết, nhưng không cung cấp giá trị kinh doanh trực tiếp (chẳng hạn như di chuyển thử nghiệm đơn vị từ khung này sang khung khác), khi bắt đầu chạy nước rút, chúng tôi tạo ra một danh sách "các nhiệm vụ liên tục" . Đây là những nhiệm vụ liên quan đến phát triển không phải là câu chuyện, nhưng nhóm phát triển muốn chúng được thực hiện. Chúng tôi liệt kê các nhiệm vụ này trên bảng đen của chúng tôi, vẫn giữ nó tách biệt với các câu chuyện. Trong giai đoạn nước rút, tại mỗi cuộc họp hàng ngày, chúng tôi sẽ xem xét những gì đã được thực hiện để hoàn thành chúng.

Bước 2 là quan trọng nhất. Như trong một thực hành nhanh, trong Scrum, bạn cố gắng làm càng ít càng tốt để hoàn thành nhiệm vụ của mình. Hãy coi đó là một cách để không lãng phí cuộc sống của bạn khi làm những công việc không cần thiết: kinh nghiệm của tôi cho thấy rằng có đến 50% những thứ "tuyệt vời" cuối cùng bị bỏ rơi và không được biết đến trong thời gian dài.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.