it-swarm-vi.com

Làm thế nào để giải thích một cư dân tại sao một nhà phát triển không nên bị gián đoạn trong khi mã hóa sâu?

Nếu bạn chỉ xem xét phần thứ hai của câu hỏi của tôi, "Tại sao một nhà phát triển không nên bị gián đoạn trong khi mã hóa sâu", điều đó đã được thảo luận nhiều lần bởi những người thông minh. Heck, ngay cả người đồng sáng lập của SO, Joel Spolsky, đã viết một bài đăng trên blog về việc "vào khu vực" và "bị đánh bật khỏi khu vực" và tại sao phải mất trung bình 15 phút để đạt được năng suất khi tham gia vào các nhiệm vụ liên quan đến phát triển phần mềm, phức tạp. Vì vậy, tôi nghĩ tại sao đã được thành lập.

Điều tôi quan tâm là làm thế nào để giải thích tất cả những điều đó cho ai đó không biết về đậu (ý tôi là phát triển phần mềm). Làm thế nào để nói với vợ, hoặc anh chàng vui tính từ kế toán tại nơi làm việc, hoặc người bạn lâu năm làm phiền bạn trên Skype cứ sau 30 phút với "Wazzzzzzup?!", Rằng tất cả các gián đoạn có tác động sâu sắc hơn đến công việc của bạn hơn 30 giây rõ ràng họ mất từ ​​thời gian của bạn. Rõ ràng bạn không thể giải thích điều đó bằng những câu như "Tôi phải sắp xếp rất nhiều tên biến trong bộ nhớ ngắn hạn của mình" trừ khi bạn muốn trở thành mục tiêu của những cái nhìn chằm chằm hoặc lạm dụng thân thiện.

Tôi muốn có thể giải thích tất cả những điều đó cho những người không phải là nhà phát triển theo cách sẽ khiến họ hiểu rõ ràng - mà không gây khó chịu, tinh hoa hay quá kỹ thuật.

EDIT: Cảm ơn tất cả mọi người vì những hiểu biết tuyệt vời của họ. Tôi đã chấp nhận câu trả lời của EpsilonVector vì sự tương tự của anh ấy là nhu cầu gần nhất với nhu cầu ban đầu của tôi. Lời giải thích "ngủ thiếp đi" không gây khó chịu cũng như kỹ thuật, hầu như ai cũng có thể liên quan đến nó và hậu quả của việc bị xáo trộn khi ngủ hoặc khi ở trong khu vực rất giống nhau: bạn cảm thấy thất vọng và bạn "mất" 15-20 phút của thời gian.

92
András Szepesházi

Hãy thử các phép tương tự sau: Cách thứ nhất: "Mất bao lâu để bạn ngủ?" "X phút" "Bây giờ hãy tưởng tượng rằng khi bạn gần ngủ, ai đó bước vào và ngắt lời bạn, bạn sẽ mất bao lâu để ngủ bây giờ? Vài giây bạn đã rời đi, hoặc bạn sẽ phải bắt đầu lại ' chìm trở lại 'đến nơi bạn đã ở? " "Tôi sẽ phải bắt đầu lại" "Tuyệt vời. Điều tương tự. Giống như ngủ thiếp đi, tôi phải mất một lúc để 'chìm' vào chế độ lấy nét, và tôi phải mất một lúc để quay lại với nó một khi tôi bị gián đoạn, ngoại trừ việc tôi cũng quên một nửa những gì tôi đang làm. "

Thứ hai: "Bạn biết làm thế nào khi bạn đọc một cuốn sách mà bạn 'chìm đắm vào đó' - sau một thời gian bạn thậm chí không chú ý đến những từ đó nữa, và bạn chặn mọi thứ xung quanh mình, và hoàn toàn đắm chìm trong những hình ảnh tinh thần bạn thấy đấy. " "Đúng." "Mất bao lâu để bạn đến đó?" "Khoảng X phút" "Bây giờ hãy tưởng tượng rằng khi bạn đắm chìm trong cuốn sách có ai đó bước vào và ngắt lời bạn, bạn sẽ mất bao lâu để quay lại điều đó? Sẽ xảy ra ngay lập tức, hoặc bạn sẽ phải bắt đầu lại ' chìm trở lại 'đến nơi bạn đã ở? " "Tôi sẽ phải bắt đầu lại" "Tuyệt vời. Điều tương tự. Cũng giống như với việc đọc, tôi phải mất một lúc để 'chìm' vào chế độ lấy nét, thật khó chịu khi ai đó phá vỡ tôi và điều đó khiến tôi mất hết miễn là quay lại với nó một khi tôi bị gián đoạn, ngoại trừ việc tôi cũng quên một nửa những gì tôi đã đọc. "

124
EpsilonVector

Tôi không nghĩ rằng trạng thái của Reverie mà Joel mô tả là kỹ thuật. Đó là cùng một sự thay đổi não phải mà bất cứ ai cũng trải qua khi họ vẽ hoặc rơi vào thần chú của một cuốn sách thực sự hay. ("Vẽ bên phải não" của Betty Edwards mô tả nó một cách hoàn hảo.) Mọi người đều trải nghiệm cảm giác tập trung mà bạn không biết về thời gian trôi qua.

Tôi nghĩ rằng nó đã hạ thấp con dơi ngay lập tức để tưởng tượng rằng đây là điều mà chỉ những người kỹ thuật mới hiểu, rằng khái niệm này cần phải được giảm bớt để những người không phải là nhà phát triển hiểu được. Chỉ cần giải thích bằng ngôn ngữ đơn giản - họ sẽ hiểu.

30
duffymo

Định tuyến lại chủ đề nội bộ của bạn đến IO bằng lời nói, tức là quay vòng khi chúng làm gián đoạn bạn và tiếp tục lẩm bẩm mã và nhìn vào khoảng cách giữa cho đến khi chúng bỏ cuộc và biến mất. Nếu họ nói chuyện, chỉ cần lẩm bẩm to hơn.

23
Peter

Nói với họ rằng mã hóa (hoặc chèn hoạt động tập trung cao độ khác vào đây) giống như là một người biểu diễn xiếc, người thực hiện quay đĩa hoạt động .

Trước tiên, bạn bắt đầu bằng cách quay một đĩa trên que, bắt đầu, sau đó bắt đầu quay đĩa thứ hai, tiếp tục quay lại đĩa đầu tiên, quay thêm một chút để giữ cho nó tiếp tục, sau đó bắt đầu quay đĩa thứ ba , làm cho nó đi, sau đó quay trở lại tấm thứ hai, quay thêm ít, quay thêm tấm thứ nhất, quay thêm tấm thứ ba, sau đó bắt đầu quay thứ tư, v.v.

Sau đó, điện thoại đổ chuông và tất cả các tấm rơi xuống.

Trạng thái dòng chảy đã biến mất. Bây giờ bạn phải bắt đầu lại tất cả. Lấy một đĩa quay ...

Tôi thích nghĩ về mỗi tấm như một khối dữ liệu, biến, khái niệm, trạng thái, vv mà bạn phải duy trì trong đầu.

16
Dhaust

Vài tháng trước tôi đã có ai đó bước vào khối lập phương của mình và rút tai nghe ra trong khi tôi đang viết mã. Bỏ qua sự giận dữ bên trong, cách tiếp cận của tôi là giải thích rằng thường thì các lập trình viên thường suy nghĩ logic sâu sắc đòi hỏi một cách tiếp cận khác biệt và tập trung để suy nghĩ và việc gián đoạn đột ngột có thể thực sự làm rối loạn quá trình suy nghĩ. Nó đã không xảy ra từ người đó một lần nữa, vì vậy có lẽ nó đã hoạt động. Một điều khác bạn có thể xem xét là dấu hiệu bận rộn/miễn phí. Tôi có một người bạn làm thuật toán và anh ta có một dấu hiệu hai mặt có nội dung "Mã hóa - Không ngắt" ở một bên và "Miễn phí để trò chuyện" ở bên kia. Xóa bỏ sự mơ hồ là chìa khóa ở đây.

13
n1reu

Ok, tôi đang thêm câu trả lời của riêng mình (tôi biết điều này hơi khó hiểu, nhưng có lẽ nó làm sáng tỏ thêm về những gì tôi đang nhắm đến).

Tôi đã nói như sau với một người đã làm phiền tôi gần đây vào một thời điểm tồi tệ: "Phát triển phần mềm giống như lái xe hơi trên một con đường rất bận rộn lần đầu tiên trong đời. Tất cả sự chú ý của bạn tập trung vào bánh xe và bàn đạp và xe hơi vội vã xung quanh bạn, và bạn đơn giản là không có thêm chút chú ý nào cho một cuộc trò chuyện thú vị. Nếu bạn bắt đầu tập trung vào nội dung của cuộc trò chuyện, bạn chắc chắn sẽ mất kiểm soát chiếc xe và bạn sẽ kết thúc trong một Tai nạn".

Đây là một cái gì đó mà người đó có thể liên quan đến, nhưng nó không phải là một sự tương tự tốt. Nếu tôi bị gián đoạn thì hậu quả sẽ rất khác với một tai nạn. Tôi đã thực hiện phát triển sw trong 2 thập kỷ, vậy tại sao tôi lại so sánh điều này với việc đang được thực hiện lần đầu tiên. Và như thế.

12
András Szepesházi

" Mihaly Csikszentmihalyi trên dòng chảy " là một TED tốt nói về ý tưởng này thực sự có năng suất trong một số điều kiện có thể hoặc không thể hấp dẫn mọi người. Đừng quên rằng đối với một số người, họ có thể không bao giờ muốn hiểu lời giải thích và do đó, nó giống như việc đánh bại con ngựa chết theo cách đệ quy ad infinitum.

7
JB King

Tôi gọi nó là một lập trình trance. Có rất nhiều điểm tương đồng tốt ở đây, vậy còn gì nữa nhỉ? Như đã nói trước đó, một lập trình viên sẽ điều hướng một cách tinh thần một số luồng logic khác nhau cho đến khi cái đúng xuất hiện. THEN nó được viết bằng mã và được lưu trên máy tính.

Vì vậy, giả sử bạn đang viết một bài viết hạn hoặc tài liệu quan trọng. Những suy nghĩ đang chảy thành lời vào máy tính nhưng bạn vẫn chưa lưu các thay đổi. Sau đó gặp sự cố, điện bị hỏng hoặc máy tính gặp sự cố. Lấy lại tất cả những gì sẽ mất nhiều thời gian hoặc lâu hơn và sẽ không bao giờ giống như ban đầu. (Có bao nhiêu người trong số chúng ta đã có THAT xảy ra?)

Đây là những gì xảy ra với mã trong đầu của bạn khi bị gián đoạn. Những suy nghĩ mong manh như làn khói. Nếu chúng chưa được cứu và có thứ gì đó xuất hiện để phá vỡ chúng, chúng sẽ biến mất.

4
R Hughes

Kính gửi CoWorker, Trong nỗ lực để trở nên hiệu quả hơn, tôi đang tập trung vào công việc của mình và đang trả lời các câu hỏi qua email vào những thời điểm giữa công việc để giữ sự gián đoạn ở mức tối thiểu để phục vụ bạn tốt hơn và Tên công ty _. Vui lòng gửi email cho tôi và tôi sẽ lấy lại cho bạn ngay khi tôi có thể. Cảm ơn bạn.

3
user16784

Nếu bạn nghe nhạc, hãy đặt một dấu hiệu cho biết điều gì đó dọc theo dòng

Headphones on? Please do not interrupt.

Điều này chỉ hiệu quả nếu có ai đọc và bạn không luôn luôn bật tai nghe.

2
Ian Potter

Tôi nghĩ về nó như một mạng lưới lớn các kết nối phức tạp mà tôi phải xây dựng trong đầu, một cấu trúc của các mối quan hệ đan xen ảnh hưởng lẫn nhau theo những cách khác nhau, không phải lúc nào cũng rõ ràng, tất cả đều phải được hiểu và giữ rõ ràng tập trung khi tôi viết mã. Việc xây dựng trang web này mất từ ​​5 đến 15 phút cho một dự án mà tôi khá quen thuộc và nhiều lần so với một dự án ít thân mật hơn.

Khi sự tập trung của tôi bị gián đoạn, web bắt đầu sụp đổ và nếu sự gián đoạn kéo dài hơn một vài giây hoặc Tôi bắt buộc phải suy nghĩ về một số điều thậm chí hơi phức tạp khác ("Khi máy chủ hoạt động xuống tuần trước, bạn đã nói gì với khách hàng? "), trang web hoàn toàn sụp đổ. Khi sự gián đoạn kết thúc, tôi phải xây dựng lại toàn bộ web, phần lớn là từ đầu.

Nếu tôi mất 10 phút để xây dựng web và tôi bị gián đoạn chỉ 2 phút ba lần một giờ, bạn cần hiểu rằng thay vì mã hóa trong 50 phút mỗi giờ tôi chỉ hoàn thành 24 phút công việc. 3 tiny bị gián đoạn làm giảm năng suất của tôi trong một nửa.

2
Matthew Frederick

Neil Ford đã nói về nó lần cuối Devoxx. Ông đã viết một cuốn sách về nó: Các lập trình viên năng suất. Ông giải thích các mẹo về bộ ngắt 'dòng chảy'. Nếu bạn đang trong dòng chảy, bạn đang ở điểm tập trung cao nhất. Nhưng nếu bạn bị gián đoạn, phải mất hơn -20 phút để quay lại dòng chảy của bạn.

Bạn có thể muốn giải thích nếu bạn thoát khỏi dòng chảy của mình, bộ nhớ truy cập ngẫu nhiên trong não sẽ mất dữ liệu về những gì bạn đang làm việc và bạn cần 20 phút để lấy lại dữ liệu trong bạn RAM ;)

1
Jeff

Tôi không biết về phần còn lại nhưng đối với Skype ít nhất tôi sẽ đề xuất sử dụng chế độ "Không làm phiền". Và nếu bạn phải sử dụng nó để liên lạc trong công việc, có tài khoản chỉ dành cho công việc thứ hai mà bạn không chia sẻ với bất kỳ ai mà bạn không muốn làm phiền bạn tại nơi làm việc :)

0
sashoalm

Tôi thường đặt trạng thái sau trên Khách hàng IM của mình:

Tôi đang làm việc và vì tôi không thể đa tác vụ, xin đừng làm phiền tôi ...

Ít nhất thì nó dường như cũng làm được điều đó với

người bạn lâu năm làm phiền bạn trên Skype cứ sau 30 phút với một "Wazzzzzzup?!"

0
Yaneeve

Bạn có thể thử giải thích, nhưng bạn cũng có thể thử điều này:

Bạn ngắt chúng , trong khi họ đang làm một việc gì đó đòi hỏi sự tập trung cao độ, cho dù đó là đọc, xem phim, tính toán hoặc thậm chí tốt hơn đếm một cái gì đó. Sau đó, tất cả những gì bạn phải giải thích là nó chính xác là như vậy cho bạn khi họ làm phiền bạn. Nên làm thủ thuật. Xin vui lòng đừng làm phiền họ khi họ đang lái xe hoặc những thứ tương tự :).

0
Goran Jovic

Tôi không giải thích. Tôi vui lòng thông báo cho họ rằng sự gián đoạn chỉ cần thêm 6 tuần để lên lịch.

0
Throwback1986

Những gì tôi làm tại văn phòng là tìm các điểm nóng (điểm ẩn) trong các phòng ban khác nhau trong văn phòng, theo cách này không ai biết bạn đang ở đâu và không thể làm phiền bạn, nhưng nếu đây không phải là một lựa chọn, chỉ cần lấy một dấu hiệu và loại bỏ điều đó trừ khi nó có tầm quan trọng sống còn đừng làm phiền!

0
kyndigs

Nó không phải là phức tạp. Một cái gì đó đơn giản và không thù địch như "Tôi đang làm việc gì đó cần rất nhiều sự tập trung. Điều này có thể được gửi trong email không? Tôi hứa sẽ xem xét ngay khi tôi hoàn thành công việc này."

0
Andy Lester