Làm thế nào để ngừng mạ vàng và chỉ cần hài lòng để phát hành các hoạt động phát triển [đã đóng]


29

Nhóm phát triển mà tôi là thành viên gần đây đã thích nghi để làm việc theo các thực hành Agile. Điều này đã cá nhân nhấn mạnh thực tế là tôi không thể tự dừng mã mạ vàng (và tài liệu) và do đó tôi vượt quá ước tính ban đầu, khi tôi có thể đưa ra các giải pháp đáp ứng yêu cầu sớm hơn nhiều.

Tôi nghĩ rằng đạo đức của tôi giáp với sự ám ảnh ở chỗ tôi trở nên quá gắn bó với mã của mình và hiếm khi hài lòng để phát hành trước khi tôi tái cấu trúc và hoàn thiện nó đến mức thứ n. Tôi rất vui vì tôi đã nhận ra điều này nhưng làm thế nào tôi có thể thay đổi thái độ / tâm lý của mình để hài lòng với sự tiến bộ của tôi và phát hành đúng hạn?


7
Xác định mạ vàng. Đối với tôi, mạ vàng là thêm những thứ không cần thiết (theo thuật ngữ Lean, tạo ra chất thải như chức năng không cần thiết, quá nhiều tài liệu hoặc tài liệu không thêm giá trị). Có vẻ như bạn không thêm những thứ không cần thiết, mà chỉ dành thời gian tái cấu trúc thay vì kéo xuống các sản phẩm công việc mới.
Thomas Owens

Bằng cách mạ vàng, tôi có nghĩa là phấn đấu để hoàn thiện một thiết kế (có lẽ để thử và khuyến khích việc tái sử dụng nó trong tương lai) đã đáp ứng các yêu cầu của nó, không nhất thiết phải thêm chức năng mới.
Andy Bowskill

Sếp của bạn nghĩ gì?
JeffO

Câu trả lời:


22

Tốt nhất là kẻ thù của đủ tốt.

Bạn luôn có thể thực hiện nhiều thử nghiệm hơn, viết tài liệu tốt hơn, tìm ra các trường hợp góc đó, điền vào những gì bạn nghĩ là thiếu tính năng, làm cho kiến ​​trúc sạch hơn. Nó không bao giờ kết thúc. Tuy nhiên, nó phải kết thúc. Có những ngày đáo hạn phải được đáp ứng, những ràng buộc bên ngoài phụ thuộc vào phần sản phẩm của bạn được hoàn thành. Phấn đấu cho sự hoàn hảo trong một phần nhỏ của sản phẩm làm tổn thương toàn bộ sản phẩm.


2
Cảm ơn David, điều đó nhắc nhở tôi rất nhiều về một câu trích dẫn thích hợp mà tôi đọc gần đây: "Hoàn hảo là kẻ thù của sự hoàn thành".
Andy Bowskill

1
Vì bản gốc là tiếng Pháp (Voltaire), thật khó để nói phiên bản nào là "chính xác" - trừ khi người ta viết nó bằng tiếng Pháp, nghĩa là như vậy.
David Hammen

24

Trước hết, tôi muốn nhiều nhà phát triển gặp vấn đề này, không phải vì phần mềm cuối cùng sẽ được phát hành muộn hơn dự kiến ​​mà bởi vì nó có thể sẽ là một bản phát hành chất lượng cao hơn.

Nếu bạn vượt quá ước tính ban đầu của riêng mình, có lẽ bạn cần bao gồm các bước "mạ vàng" như một phần của ước tính. Nếu chúng không phải là ước tính của riêng bạn, có lẽ bạn nên tham gia vào việc xây dựng chúng.

Trong mọi trường hợp, nếu bạn có thời hạn phát hành, bạn nên tuân thủ. Bất kỳ "mạ vàng" nào cũng nên được để lại như một bước cuối cùng không nên giữ bản phát hành. Nếu bạn hoàn toàn cảm thấy nó phải được đưa vào như một phần của bản phát hành, hãy xem xét thêm "mạ vàng" vào thời gian của bạn (tức là ngoài giờ làm việc).

Những gì bạn nên làm là đưa các bước "mạ vàng" của bạn đến nhóm và / hoặc quản lý của bạn và thảo luận về lý do tại sao bạn cảm thấy chúng quan trọng. Nếu bạn có thể thuyết phục họ rằng những bước này có lợi, họ sẽ trở thành một phần của các bản phát hành trong tương lai.


Cảm ơn bạn Bernard, lời khuyên tốt. Có, điều này cũng làm nổi bật thời gian và chi phí so với chất lượng của sự đánh đổi sản phẩm cuối cùng.
Andy Bowskill

@AndyBowskill, tôi cũng gặp vấn đề tương tự như bạn. Làm thế nào bây giờ?
datan.io

14

Phần mềm mạ vàng

Lần đầu tiên tôi thấy mạ vàng được sử dụng làm mô tả cho phần mềm là trong một bài báo của Barry Boehm , nơi ông đã đưa ra nguyên nhân gốc rễ sau:

Mạ vàng. Đã sửa các yêu cầu kỹ thuật trước khi thiết kế có xu hướng khuyến khích phần mềm mạ vàng. Người dùng hỏi về yêu cầu của họ sẽ thường xuyên lý do, tôi không biết liệu tôi có cần tính năng này hay không, nhưng tôi cũng có thể chỉ định nó trong trường hợp.

Trong mô tả của mình, ông khuyến nghị sử dụng các phương pháp được mô tả trong nghiên cứu của mình, bao gồm mô hình vòng đời phần mềm xoắn ốc trong đó các dự án được đặt trong phạm vi để tạo ra một loạt các nguyên mẫu một chu kỳ và khi các xoắn ốc lớn hơn, một sản phẩm đầy đủ tính năng. Xoắn ốc có ảnh hưởng lan rộng giữa các nhà nghiên cứu phần mềm và là cầu nối quan trọng giữa thác nước và Agile. Một hạn chế quan trọng của xoắn ốc là mỗi lần xung quanh vòng xoắn ốc, chu kỳ trở nên dài hơn và tốn kém hơn.

Cũng như Agile, xoắn ốc cố gắng tránh mạ vàng bằng cách thu hẹp hơn và lên lịch cho dự án có thể cung cấp đủ lâu để các đội có thể hoàn thành các yêu cầu, đồng thời đủ ngắn để cho phép tập trung vào mục tiêu từ ngày đầu tiên cho đến ngày giao hàng. Một cách mà các phương thức Agile như Scrum vượt trội là Scrum chạy nước rút cho khung thời gian không kéo dài hơn với các lần lặp. Từ bài báo, quản lý dự án dường như có ảnh hưởng nhiều hơn đến mạ vàng so với các nhà phát triển cá nhân.

Tài năng cho thời gian đấm bốc

Có thể hộp thời gian là rất quan trọng, nhưng nó không phải là một kỹ năng nhị phân. Bạn không có nó hoặc thiếu nó. Bạn tốt hơn hoặc kém hơn với nó. Cho dù nó đến từ ông chủ của bạn hoặc từ bạn, tôi sẽ thích hơn nếu không ai nói rằng bạn không thể ngừng mạ vàng. Điều đó nghe có vẻ cá nhân, phổ biến và vĩnh viễn.

Một phân tích nguyên nhân gốc rễ có thể giúp xác định một số vấn đề. Tôi khá chắc chắn rằng tất cả họ sẽ không chỉ vào bạn, và trừ khi bạn làm việc với những kẻ thái nhân cách, những người khác trong nhóm của bạn sẽ thấy những nhu cầu tương tự để cải thiện bộ kỹ năng Agile của họ. Nếu bạn biết ai đó không có vấn đề gì, bạn không biết họ rất rõ. Nếu bạn biết ai đó nghĩ rằng họ không cần phải cải thiện, họ sẽ không biết rõ về mình.

Tôi hy vọng những cải tiến mà bạn xác định sẽ là những điều bạn có thể giải quyết với nhận thức và sự giúp đỡ của chính bạn từ nhóm. Tuy nhiên, tôi nghĩ rằng đó không phải là nơi kết thúc. Kỳ vọng của tôi từ người giám sát hoặc người quản lý viết đánh giá của bạn sẽ là họ cũng có thể huấn luyện cấp dưới của mình thành công. Điều này đặc biệt quan trọng khi tổ chức đang trải qua một sự thay đổi mang tính cách mạng như chuyển từ kế hoạch sang Agile (hoặc ad-hoc sang Agile).

Nguyên mẫu nhanh và bẩn hoặc được quản lý rủi ro?

Tôi đã có một người quản lý đã từng yêu cầu các nhiệm vụ được thực hiện theo cách nhất định.

Nhanh và bẩn, nhưng một điều của vẻ đẹp.

Anh ta biết sự điên cuồng của việc này, và đó là một phần của khiếu hài hước. Nhiều người nói những điều như thế này và họ đã chết nghiêm trọng. Ở đâu đó, có một sự thỏa hiệp hoặc một cơ hội để giảm bớt vấn đề với một công nghệ hoặc phương pháp cải tiến.

Những gì chúng ta có thể hy sinh để phù hợp với hộp thời gian của chúng tôi?

Trong chương một của Extreme Lập trình giải thích , ấn bản thứ hai, Kent Beck nói về những gì nó cần để di chuyển nhanh. Câu trả lời của ông là "bạn chỉ làm những gì bạn cần làm để tạo ra giá trị cho khách hàng".

Rủi ro

Trong phiên bản đầu tiên của cùng một cuốn sách, Beck xác định chặt chẽ hơn một chút với quan điểm của Boehm về việc kiểm soát rủi ro là quan trọng đối với phương pháp luận của mình bằng cách nói:

"Rủi ro là vấn đề cơ bản của phát triển phần mềm"

Trong cả hai phiên bản, Beck liệt kê và mô tả tám rủi ro phổ biến, theo sau là một khẳng định rằng XP (hoặc có lẽ bằng phần mở rộng, Agile) giải quyết từng rủi ro theo một cách cụ thể. Đối với tôi, hầu hết những lời giải thích của anh ấy đều tập trung vào việc sử dụng các mức tăng nhỏ hơn và lặp lại nhanh hơn cho phép chúng tôi điều khiển mọi thứ trở lại trước khi rủi ro tăng quá lớn để xử lý.

Tâm lý của sự ổn định

Beck thảo luận về các tài nguyên trong bối cảnh của một câu chuyện về Người dân miền núi và Người rừng và giới thiệu một khái niệm gọi là "Tinh thần của sự ổn định". Trong bối cảnh tình huống của bạn, anh ấy hỏi "Làm thế nào bạn sẽ làm điều đó nếu bạn có đủ thời gian?" Chỉ một chương đầu tiên này, có sẵn dưới dạng xem trước sách, có thể cung cấp rất nhiều thực phẩm để suy nghĩ về cách XP (và các phương pháp Agile khác) nghĩ về các ràng buộc như thời gian.

Bắt buộc có thể là triệu chứng, không phải là bệnh

Nhiều năm trước tôi đã xem một cuốn sách về sự trì hoãn nói rằng rất nhiều sự trì hoãn bắt nguồn từ nỗi sợ hãi. Nếu bạn không bắt đầu, bạn sẽ không phạm sai lầm và có thể bạn sẽ không bị chỉ trích. Bắt buộc và cầu toàn cho một cái gì đó mà ý thức đạo đức của chúng ta nói với chúng ta tốt hơn sự trì hoãn, nhưng có lẽ có kết quả tương tự. Hãy xem xét rằng có lẽ bạn đang gặp vấn đề với sự trì hoãn ở dạng khác?

Phê bình và cạnh tranh

Trong các phương pháp Agile như Scrum, cơ hội bị chỉ trích hoặc trừng phạt vì sự trì hoãn chưa bao giờ cao hơn. Đó là một vòng luẩn quẩn. Tôi chần chừ vì tôi bị chỉ trích, tôi bị chỉ trích vì tôi chần chừ. Với các cuộc họp scrum hàng ngày, chúng tôi luôn cảnh giác vì chúng tôi luôn luôn báo cáo cho nhóm những gì chúng tôi đạt được.

Trong một nhóm lý tưởng, Scrum mang đến cơ hội hàng ngày để sửa chữa sự trì hoãn. Những sai lầm không nên có thời gian để nhận được lớn trước khi sự giúp đỡ đến. Các nhóm không phải lúc nào cũng là nơi họ nên tin tưởng, vì vậy các nhà lãnh đạo trong nhóm có thể cần phải chủ động giải quyết hoặc chỉ trích hoặc sợ chỉ trích để cho phép mọi thứ tiến lên.

Trong thế giới làm việc của chúng ta, mỗi người trong một nhóm cũng phải cạnh tranh với những người khác. Có một chút tâm thần phân liệt khi tin rằng có một nhóm chia sẻ công việc và vinh quang cho những thành tựu, nhưng sau đó sử dụng quy trình quản lý hiệu suất hàng năm để thưởng cho 20% thành viên của mình, trừng phạt hoặc trục xuất 10% thành viên trở lên và giả vờ rằng 70% đa số đóng góp tốt nhất của mình mà không cần khuyến khích. Tôi nghĩ rằng đây là một con voi lớn trong phòng WRT thúc đẩy tinh thần đồng đội và để tham khảo câu chuyện của Kent Beck, nó cho thấy mối quan hệ văn hóa sâu sắc để trở thành Người dân miền núi.

Con đường phía trước

Là thành viên của nhóm Agile, sẽ rất tốt nếu nghiên cứu và đối thoại với những người khác về những gì hoạt động. Nếu nhóm của bạn đang sử dụng TDD để tự động hóa các bài kiểm tra đơn vị của họ bằng một công cụ, hãy nhờ người làm điều đó tốt nhất để huấn luyện bạn. Nếu người giám sát hoặc người quản lý của bạn có vấn đề với cách tiếp cận tài liệu của bạn, hãy tìm hiểu xem anh ấy thích gì hoặc ai đang làm theo cách anh ấy thích và làm theo cách tiếp cận của họ. Nếu nó sôi xuống với tốc độ mã hóa thô, hãy điều tra những gì nó cần để mã hóa nhanh hơn.

Các nhà lãnh đạo có thể thực hiện các bước đi đúng hướng bằng cách mô hình hóa các hành vi mong muốn như nói thẳng thắn về vấn đề của chính họ (không phải của người khác), đề nghị và làm theo thông qua trợ giúp, có một cuộc đối thoại về cách nhóm có thể chuyển sang phong cách Agile Marine (tức là không có người đàn ông bỏ lại phía sau). Không phải ai trong đội cũng có khả năng như nhau. Có thể thích hợp để khám phá việc ghép các thành viên trong nhóm hoặc phân công nhiệm vụ và vai trò có thể nhấn mạnh các điểm mạnh bổ sung của những người liên quan. Lập kế hoạch cho sự phát triển hoặc khắc phục các kỹ năng nên là một phần bổ ích của công việc cho cả người giám sát và cấp dưới, nhưng phải diễn ra sớm và thường xuyên để có hiệu quả.


Đẹp, trả lời chi tiết. +1. "Nhưng phải xảy ra sớm": Đó là mùa thu, vì vậy tôi sẽ sử dụng một phép loại suy thể thao của Mỹ. Hãy tưởng tượng nếu một đội bóng đá hoạt động như một doanh nghiệp điển hình với các đánh giá nhân viên hàng năm. "Chúng tôi đang cắt giảm 50% tiền lương của bạn. Bạn đã bỏ lỡ ba lần bắt dễ dàng trong trò chơi đầu tiên, trong bốn trò chơi tiếp theo, bạn đã không thể đối mặt với trò chơi của mình cho đến quý thứ hai và việc chạy của bạn đã giảm dần trong suốt mùa giải." Mỗi năm một lần chỉ trích làm hại nhiều hơn lợi. Sẽ không có những lời chỉ trích mang tính xây dựng nếu quá muộn trong thời gian tới.
David Hammen

Liên kết bị hỏng với người dân miền núi và người rừng.
tự đại diện

7

Bạn có lập trình cho vui không? Tôi cũng cảm thấy khó chịu với những hạn chế trong công việc khiến cho việc lập trình trở nên thú vị và để bù đắp đôi khi tôi sẽ khởi động một dự án mới tại nhà và "làm đúng". Sự phân chia cho phép tôi thỏa mãn cả hai: nhu cầu của tôi và của công ty.

Hoặc, bạn có thể phát triển một kỹ năng mới ngoài lập trình để thực hiện trong thời gian rảnh mà cuối cùng (thỏa mãn) thỏa mãn những gì công việc không thể cung cấp. ;)


Chào mừng và cảm ơn vì đã đăng bài đầu tiên của bạn trên Stack Exchange lập trình viên. Vui lòng xem xét nhập câu hỏi tiếp theo dưới dạng nhận xét cho câu hỏi thay vì trả lời. Bạn có thể tìm hiểu thêm về các tiêu chí để viết câu hỏi và câu trả lời được đánh giá cao và nhận được huy hiệu bằng cách đọc faq tại lập trình
DeveloperDon

Cảm ơn duanev, đoạn đầu tiên của bạn chắc chắn cũng đúng với tôi!
Andy Bowskill
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.