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? [đóng cửa]


92

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ề "vào khu vực" và "bị loại 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 khu phức hợp, phát triển phần mềm nhiệm vụ liên quan. Vì vậy, tôi nghĩ rằng 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à tương 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 hay 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


36
Có họ bắt đầu từ 0 và đếm đến một số rất lớn, giữa chừng nhìn qua la hét ! sóc!
Tim Post

8
Chắc chắn có liên quan đến hầu hết các ngành nghề, hãy thử dừng một bác sĩ phẫu thuật giữa dòng.
ozz

24
xuống skype tại nơi làm việc
Josh

6
"Không gây khó chịu", tôi biết có một cái bẫy ở đâu đó. :)
biziclop

7
@Josh Tại nơi làm việc, chúng tôi sử dụng Skype để liên lạc nội bộ. Chúng tôi cần nó mở. Tôi có một tài khoản làm việc riêng, nhưng bạn vẫn gặp phải những vấn đề này.
Matthew Scharley

Câu trả lời:


124

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 đó? 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 thời gian để 'chìm' vào chế độ lấy nét, thật khó chịu khi ai đó phá vỡ tôi,


14
+1 xuất sắc, xuất sắc, đặc biệt là người "ngủ quên". Chính xác là loại giải thích tôi đang tìm kiếm.
András Szepesházi

1
Có thể không giúp - Tôi có thể ngủ thẳng trở lại bình thường ...
Armand

1
@ Alison Tôi không biết về không thể, nhưng có rất nhiều người không đọc và do đó không thể liên quan đến điểm thứ hai.
Matthew Scharley

3
Yêu phép ẩn dụ khi ngủ, nhưng tôi sẽ không sử dụng điều đó để giải thích công việc của mình cho vợ tôi bất cứ lúc nào! ;>
dthorpe

7
Đừng đánh thức lập trình viên alexthunder.livejournal.com/309815.html
Chris Nava

30

Tôi không nghĩ rằng trạng thái của Reverie mà Joel mô tả là kỹ thuật. Đó là sự thay đổi não phải tương tự mà bất kỳ 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.


17
Theo kinh nghiệm của tôi, họ không nhất thiết phải có được nó - họ có thể chấp nhận nó như một sự thật, nhưng vẫn không thể liên quan đến điều đó. Đối với hầu hết những người tôi biết, công việc chỉ là công việc có thể bị nghi ngờ hoặc tiếp tục bất cứ lúc nào.

3
Không phải những người tôi nói chuyện. Theo kinh nghiệm của tôi, tất cả những người làm công việc đang thực hiện các nhiệm vụ không thuộc lòng sẽ có thể liên hệ hoàn hảo. Có lẽ bạn đang nói chuyện với quá nhiều người làm nhiệm vụ vẹt.
duffymo

3
@duffymo: Hừm. Tôi không xem xét một nhân viên bán hàng đang viết một đề nghị tùy chỉnh cho một khách hàng thực hiện một nhiệm vụ vẹt. Tuy nhiên, nếu tôi ngắt lời anh ấy / cô ấy, anh ấy / cô ấy sẽ mất tối đa nửa phút cho đến khi trở lại đúng hướng. Đó là điều tôi muốn nói - hầu hết các công việc dễ dàng bị đình chỉ / tiếp tục hơn rất nhiều so với chúng ta. IMHO.

5
Đó là vấn đề bạn mất bao nhiêu trạng thái. Các lập trình viên có xu hướng cần giữ toàn bộ trạng thái chương trình trong đầu khi viết mã, nhưng các ngành nghề khác liên quan đến việc viết nhiều hơn sẽ giữ trạng thái trên tài liệu họ đang xây dựng. Nhà nước nào dễ khôi phục hơn?
Michael K

2
Tôi nghĩ rất nhiều phụ thuộc vào việc người đó thực sự trải qua trạng thái chảy trong khi làm việc (hoặc thời gian rảnh). Nếu họ đã từng làm, họ sẽ hiểu rõ hơn những gì chúng ta muốn nói.
Péter Török

23

Đị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ỉ lẩm bẩm to hơn.


16
LOL điều này là tốt nhưng chắc chắn dẫn đến ly hôn nếu người can thiệp là vợ.
András Szepesházi

Đây chắc chắn là cách tiếp cận nhanh hơn, hiệu quả hơn! : P
Robin Maben

16

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 các đĩa quay .

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.


13

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.


16
Miễn là bạn rời khỏi phần "Miễn phí để trò chuyện", hãy dành thời gian hợp lý. Nếu phía "Đừng ngắt lời" luôn hoạt động, bạn cũng có thể không có dấu hiệu nào cả ...
Dean Harding

4
Có vẻ như nó sẽ gây phiền nhiễu, phải lật bảng hiệu mọi lúc.
Không ai

3
Bạn có thể có một Thinking Cap thay vì một dấu hiệu. Bất cứ khi nào bạn có Cap Thinking, mọi người không nên làm phiền bạn.
Kiến

3
Sẽ không "Miễn phí trò chuyện" ngụ ý (đối với người quản lý): "Tôi không có đủ việc để làm"?
badgerr

8
Tại nơi làm việc của tôi, chỉ báo "trong khu vực" không có giấy tờ của chúng tôi là sự hiện diện của tai nghe. Ông chủ đã nói, "ngay cả khi bạn không nghe bất cứ điều gì, hãy đặt chúng vào nếu bạn đang tập trung. Chúng tôi sẽ coi điều đó có nghĩa là bạn đang bận rộn."
JYelton

12

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 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ư vậy.


1
Đó là một sự tương tự tốt. Chỉ cần xóa phần 'lần đầu tiên' và nhấn mạnh rằng đó là một con đường rất bận rộn, với rất nhiều ngã tư, đèn giao thông, xe tải một chiếc xe đạp và đó là nó. Đặc biệt là vì ngã tư là tốt để đại diện cho tất cả các quyết định bạn phải đưa ra, mà không phải luôn luôn biết những gì có thể đâm vào chiếc xe của bạn phía sau góc.
Goran Jovic

Tôi không nghĩ rằng đây là một sự tương tự tốt và tôi nghĩ rằng bạn thừa nhận rằng chính bạn, nhưng nếu nó khiến họ tôn trọng thời gian phát triển của bạn, thì hãy sử dụng nó.
Bernard

Không tệ.
Marcie

4
Chỉ cần thêm rằng đã có ba đứa trẻ la hét ở phía sau mà bạn đang cố gắng bỏ qua (tất cả những phiền nhiễu tự nhiên của riêng bạn).
Stewol

7

" Mihaly Csikszentmihalyi đang hoạt động " là một bài nói hay của TED về ý tưởng này thực sự có năng suất trong những điều kiện nhất định có thể hoặc không thể thu hút 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.


+1 Tôi đang ở giữa viết một câu trả lời trên Flow: en.wikipedia.org/wiki/Flow_%28psychology%29
StuperUser

+1 Ngoài việc tham khảo tốt về dòng chảy, tôi thấy phần "đập con ngựa chết đệ quy ad infinitum" đơn giản là vui nhộn.
András Szepesházi

4

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 thứ đó sẽ mất nhiều thời gian hoặc lâu hơn và sẽ không bao giờ giống với bản gốc. (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.


Tôi thích cái này nhất, bởi vì nhiều người sẽ hiểu nó, và vì nó đủ thể hiện rằng sẽ không mất 15 phút để quay lại, nó sẽ mất nhiều thời gian hơn lần đầu tiên và có kết quả tồi tệ hơn,
orbfish

3

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ụ tốt hơn cho bạ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.


2

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.

Đây là chỉ có hiệu quả nếu có ai đọc và bạn không luôn luôn có tai nghe của bạn trên.


Đối với tôi nó là cách khác. Nghe nhạc và tập trung sâu sắc không đi cùng với tôi.
CodeInChaos

2

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ã. 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 trong 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ủ ngừng hoạt động vào tuần trước, bạn đã làm gì nói với khách hàng? "), 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 gián đoạn nhỏ đó làm giảm năng suất của tôi xuống một nửa .


1

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 những lời khuyên 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 RAM;)


Nói về việc truy cập ngẫu nhiên và loại mất trí nhớ đánh bại mục tiêu "không phải là kỹ thuật", tôi nghĩ.
András Szepesházi

0

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

Tôi đang ở nơi 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 "Wazzzzzzup?!"


1
Bạn có biết rằng bạn có thể ngoại tuyến hoặc chỉ cần thoát IM Client, Skype, v.v.
Spoike

@Spoike Không nếu IM cũng đang được sử dụng cho công việc, như thường thấy.
Eric Wilson

1
@EricWilson Đăng ký một tài khoản khác để sử dụng tại nơi làm việc và đừng nói với người bạn lâu năm
Daniel Beck

@EricWilson: Nếu bạn muốn tập trung vào công việc của mình trong một số thời gian, bạn vẫn có thể tắt hoặc đăng xuất IM / email ngay cả khi nó được sử dụng cho công việc. Tôi đã có thể làm như vậy tại những nơi tôi từng làm việc.
Spoike

0

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 lời họ , 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 hay thậm chí tốt hơn là đếm thứ gì đó. Sau đó, tất cả những gì bạn phải giải thích là nó chính xác như thế đối với 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ự :).


Ai đó rõ ràng không thích cách tiếp cận vấn đề của tôi, nhưng đôi khi cách duy nhất là giải thích bằng ví dụ . Đặc biệt là nếu chủ đề không rõ ràng với những người bạn đang giải thích.
Goran Jovic

Nó không giống như giải thích bằng ví dụ. Nghe có vẻ như "trả thù của bạn."
Marcie

0

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.


4
Gợi ý này nằm dọc theo cùng một dòng là "hãy thô lỗ và mọi người sẽ ngừng làm phiền bạn." Nó có thể hiệu quả, nhưng không phải là một cách tốt để làm việc theo nhóm.
Marcie

Tôi không tin rằng "cách tốt để làm việc trong nhóm" được chỉ định là một yêu cầu :) Theo tôi hiểu, câu hỏi được chuyển đến các gián đoạn - có thể hoặc không thể trực giao với tư cách thành viên nhóm.
throwback1986

0

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

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

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."

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.