題:
如何在不感到失敗的情況下接管實習生的任務?
Premier Bromanov
2015-06-24 00:04:47 UTC
view on stackexchange narkive permalink

背景:我在目前的工作地點實習了一年,直到5月全職受僱為止。我是一名程序員,主要開發移動應用程序,但也開發了一些Web應用程序。從那時起,我們聘請了幾名實習生,其中2名在我的領導下。這樣做的原因是老闆希望我通過委派給其他人來學習委派和鞏固我所學到的東西。

所以,背景是我給實習生一個重要但很小的任務。他正在我正在從事的項目中編寫某些程序。他要么誤解了任務,要么我沒有很好地解釋任務,但是他做錯了。到目前為止,他的工作還沒有完成,但是我可以從他的著作中看出它是行不通的,而且他對任務的理解是錯誤的(或者解釋得不夠充分),而且他完成錯誤任務的方式也不是很好。在他的辯護中,他正在大學二年級,我已經畢業,所以我之前有幾年的教育和整年的工作經驗。我想廢棄他的代碼,編寫我自己的代碼,並向他解釋我以這種方式進行編碼的方式和原因,但是我不希望他因失敗而感到愚蠢或失敗。我擔心他可能會覺得愚蠢,是因為我不知道他打算如何工作,而且對我來說這感覺像是一種愚蠢的方式,但是我敏銳地意識到我也寫了愚蠢的東西在我實習期間,與許多其他人相比,我仍然在寫愚蠢的東西。然而,他失敗了。我們都會在某個時候或另一個時候失敗。

那麼,我如何接管他的任務並說明如何正確地做,而不會讓他因失敗而失敗?

您是否嘗試過測試驅動開發?如果他可以針對一組測試進行編碼,那麼錯誤傳達任務的機會就很小。
@StevenGubkin-誰編寫測試?如果他自己去做,他只會寫不正確的測試。
@Davor一種常見的方法是,開發人員編寫單元測試,而產品所有者/老闆/客戶編寫驗收測試。該代碼必須通過這些,才能被視為“完成”。
@Angew-是的,聽起來不錯。我只想到單元測試。
“我想廢棄他的代碼,編寫我自己的代碼,並向他解釋我如何以及為什麼用這種方式進行編碼”:這是他學習編碼以及您學習委託的最糟糕的方法。請避免。
與技術水平較低的人員一起工作時,最好縮短反饋循環。經常檢查他們的工作,並確保他們的工作方向正確。歸根結底,您要為他們的工作負責。如果他們編碼錯誤的內容,只會減慢您的速度。
@FreeAsInBeer我將考慮到這一點。我們將努力檢查代碼,然後再出門。
@coredump絕對為時已晚。他告訴我他了解我們受到時間限制,我想教給他一種新的做事方法。我們坐下,走了我的路,走過他的路。我解釋了他為什麼不好(因為他有硬編碼的東西,當我們希望我們的代碼更加健壯和靈活時),我教了他掌握數據的技巧,並解釋了他何時何地走上正確的道路並且有正確的想法,但還需要更多。我不知道這是否是最佳決定,但我不認為這是錯誤的決定。
@TomSterkenburg我很高興它進展順利,您似乎採取了很好的方法。我擔心您會開始光顧這位實習生並對其進行微觀管理(是的,我傾向於悲觀)。很高興它對你有效。
@coredump我了解您的擔憂,我也有。 FreeAsInBeer建議使用較小的反饋循環,因此我今天在離開之前回顧了他的代碼以完成其他任務。這絕對是個好主意,我能夠指出他的總體設計中的小缺陷(不使用吸氣劑,不必要地更改全局變量),並確保他知道我們為什麼要以另一種方式來做。這聽起來有點像微觀管理,但是我認為這種類型是有必要的,因為我的工作部分是教他,因為他只有2年級的大學生。我認為一切順利,謝謝大家的幫助!
您對待別人就像對待他們負責。對你好。如果可以的話,我會給你買啤酒。
七 答案:
Myles
2015-06-24 00:19:50 UTC
view on stackexchange narkive permalink

最好問他“我們看看您對功能X所做的工作。您的總體計劃是什麼?您如何收集輸入,處理輸入,產生輸出?為什麼要用這種方式進行ABC?”。作為主管,這不一定是指責。它會創建一個對話框,通過該對話框您可以看到他們的計劃,然後讓他們詢問他們如何解決他們將遇到的障礙。

也許他們有一個您看不到的出色解決方案,也許他們沒有意識到即將到來的障礙。您必須先與他們交談才能知道。

如果他們在給定的時間範圍內沒有令人滿意的解決方案,則不必苛刻。 “我們的時間緊迫,所以我要自己考慮。這是一個很好的嘗試,當我是實習生時,我犯了一個類似的錯誤。請(指示其他任務)。”

最終選擇了這個答案,因為它更符合問題和我的時間範圍。他一周工作兩天,寧願他在本週的最後一天度過另一項任務。在代碼中,重新開始而不是使用損壞的系統通常是明智的,我認為這是其中之一。在我解釋瞭如何以及為什麼取消他的當前任務之後,最好讓他重新開始一個新任務,而不是浪費時間嘗試將他的當前代碼管理成我的實際意思。我們一定會進行溝通。
-1
@TomSterkenburg您已聲明,自5月以來,您只是一名全職開發人員。我認為現在進行廣泛的概括還為時過早,例如“在代碼中,重新開始而不是使用損壞的系統通常是明智的……”您會發現,通常,您將無法工作在未開發的項目中,而是使用舊的系統和舊的代碼,實際上可能會被破壞。您不會簡單地拋棄舊代碼並從頭開始編寫它。
-1
-1
嘗試配對編程。您仍然可以正確地做到這一點,而他會一步一步地向您學習。
-1
GreenMatt
2015-06-24 00:31:57 UTC
view on stackexchange narkive permalink

總之……不。 (是的,這是一種收縮。)

您說過,您要監督這些實習生,因為您的老闆希望您學會委派。不僅僅是“這裡有一些工作,去做”。如果您現在接手實習生的工作,在我看來,您還沒有了解到老闆想讓您學到的東西。

您已經承認存在溝通問題。要學習委派,您將需要學習更有效地溝通。通信週期涉及說,聽,反饋和更正/重述。在最後一部分中,循環重新開始,並根據需要持續進行。到目前為止,您似乎只嘗試使用前兩個部分。但是,您需要後兩個部分來確保准確的溝通。

我的建議是回到實習生,讓他知道你們兩個人溝通不暢。複查該項目應該是什麼,並確保實習生對該項目有充分的了解;不要只是讓他說:“是的,我明白。”請他重述(用他自己的話)他應該做什麼,並根據需要進行更正。然後請他制定一個計劃並仔細閱讀,然後再開始編碼。另外,要保持開放的心態。他的方法不一定是錯誤的,僅僅是因為這不是您應該做的。當然,他的方法可能不起作用,但是引導他找到可行的解決方案是您的工作,而不是自己做。

我要添加到此答案中的唯一一件事是:將來,請勿將*重要*任務委派給實習生。實習生應該只在沒有成功的情況下工作。
另外,我認為您應該減少實習生的數量(一名高級工人應該足夠),以便能夠正確地指導他們並能夠自己完成一些工作。
@NotMe我不同意這種觀點,至少在我的工作地點如何處理實習生方面。他們是有償的,他們在這裡獲得寶貴的經驗,我正在努力確保他們得到它。我真的可以給他們不重要的任務
@TomSterkenburg,聽起來您的公司文化傾向於賦予實習生比平常更多的責任(我目前處於類似環境)。這樣的環境可能會接受這樣一個事實,即實習工作可能不會順利進行,並了解這可能會對項目造成風險。我認為項目負責人應該就您是否指導實習生使任務重回正軌還是接手他們的工作提供意見。我沒有發布答案,因為這無法為您的實際問題提供建議。 :)
@blaughw對。好吧,在這種情況下,我是項目經理。這不是一個很大的項目,但是我基本上是在運行整個過程,包括與客戶的交互等等。我決定仔細閱讀他的代碼和新代碼,看看他在做什麼
@TomSterkenburg如果您真的希望他們學習,則可以要求他們重寫代碼-這次根據*您的*標準。我從來沒有向為我寫過代碼的人學習過,我的確向那些告訴我前進方向的人學習過(使用列表進行遍歷,使用x技術等等)。另外,不要告訴任何陷阱,例如“在此處檢查是否為空”。這些是最有價值的。另外,您說您與客戶互動。如有可能,將實習生包括在該部分中。我總是喜歡這樣的時刻。
@EdwinLambregts很好的建議,但是不幸的是,他們是否與客戶互動是我無法控制的。他們只被授權這樣做。儘管他們可以看到客戶端記錄的錯誤,但只有全職員工可以直接與客戶端交互
這個。如果實習生不了解任務,並且您沒有再嘗試更好地溝通,那麼*您*不會感到失敗嗎?實習生的工作要比有經驗的員工慢,但您仍應盡可能完成任務的所有階段,“刮碎並重新開始”是任何嘗試都完全沒有用的任務的階段。
HLGEM
2015-06-25 22:49:19 UTC
view on stackexchange narkive permalink

永遠不要只為其他人剪貼然後重寫代碼。如果此人為您工作,請坐下並解釋什麼地方出了問題以及您真正想要什麼,然後強迫他們進行改寫,直到他們改正為止。

否則,您將同時完成自己的工作和他們的工作,而他們將仍然無法勝任。發生這種情況時,許多人感到沮喪,因為他們不知道為什麼要重寫它,而只是假設他們所做的一切都會被重寫,因為喬是一個控制狂,而不是因為它有問題。

當您這樣做時,它們並不會變得更好,這會給他們帶來極大的傷害。這也意味著您未正確委派任務,您將不知所措,他們會高興地認為自己很棒並且很混蛋。培訓某個人要比重寫它難。但是一旦您花了幾次時間。那麼您將獲得進步,因為很少有人喜歡重做他們的工作。

現在,如果他們真的很少有知識,您可能需要與這個人坐在一起並配對程序。但是在這種特定情況下,您需要讓他們提出解決方案,並且當實習生開始走錯方向時,您只需停止實習生。您一直在問諸如“為什麼選擇這種方法?您是否考慮過...圖書館?您認為這樣做的時間影響會是什麼?”等問題。

記住這是不只是實習生的錯如果您不清楚所要提供的內容,或者您​​每天都沒有檢查它們並查看其代碼的中間部分,那麼您應該像實習生一樣受到指責。因此,不要將此歸咎於會議,而要使其成為富有成效的,建設性的批評。

panoptical
2015-06-24 00:20:06 UTC
view on stackexchange narkive permalink

簡而言之,請與實習生坐下來,一邊看他一邊編碼項目,向他/她解釋為什麼要按自己的方式對項目進行編碼,並在此過程中教導實習生良好的編碼習慣。與其反思實習生的失敗,不如將其變成一種教學經驗。失敗確實是學習無效方法的最佳方法之一,儘管您不應該以糟糕的代碼來抨擊實習生,但您應該粗暴地對待它,但是您確實需要說明為什麼他們的代碼不起作用,並且為什麼最好的計劃是重新開始。

實習生是否感到失敗取決於實習生。如果他們還沒有的話,他們將必須能夠學會處理失敗。但是,如果您正確對待這種情況,至少實習生應該學到一些東西。在這種情況下,這比擔心他們感到生氣或羞辱要重要得多。

如果他現在有空,我肯定會和他一起編碼,但是很受時間限制,很不幸,我今天必須完成它。
如果是時間問題,這是對自己的又一次提醒,以確保他知道時間期望。我以為你上班遲到了,他已經走了?在這種情況下,沒有什麼可做的,然後自己動手做。他將失去看到您進行編碼的機會。
@TomSterkenburg:,如果截止日期是今天並且實習生尚未完成任務並且今天不在辦公室,那麼聽起來好像您沒有給實習生足夠的時間來完成任務,和/或您沒有儘早發現實習生的錯誤,以便他們恢復。當然,這是教育的全部內容,您必須留出時間讓實習生變慢。這些事情發生了。
在任何情況下都不應編寫任務代碼。觀看並提供口頭指導時,您應該讓他為任務編碼。如果您重做他的工作,他將永遠不會變得更好。
zonabi
2015-09-11 01:14:15 UTC
view on stackexchange narkive permalink

考慮與實習生進行配對編程。配對程序將通過錯誤的代碼進行嘗試並對其進行修復,或者配對程序通過其代碼進行操作,解釋其缺陷,然後討論和配對新的更好的代碼。結對編程是最好的學習工具,知識傳遞,代碼審查,質量保證都包裝在一個之中!

有時,由於時間限制,您可能只需要廢棄自己的東西並完成工作即可。之前已經做過,而且是在一個高級開發人員那裡進行的。您可以說他們感到有些失落,但他們知道,我們需要完成一項工作。

如果時間允許,請抓住機會一起學習。他們將學習如何更好地編程,而您將了解錯誤溝通發生的地方。如果您看到其他人如何解釋請求,您將學到更好地解釋和編寫任務故事的方法。

配對編程很棒,但是如果您要這樣做,實習生必須是實際操作鍵盤的人。
完全同意@HLGEM
TOOGAM
2016-04-15 08:01:37 UTC
view on stackexchange narkive permalink

我想廢棄他的代碼,編寫自己的代碼,並向他解釋我如何以及為什麼用這種方式進行編碼

是的!

Err,也許吧。

我已經讀過對這種方法非常明智的反對意見。現在,我剛剛將一桶裝滿汽油的汽油倒入了這場大火,我知道我需要做一些解釋。我的簡要總結是,這種方法確實很有可能會有用。

一個被廣泛引用的例子是美國政府培訓人們如何識別假幣。人們通過非常了解正確的事物而不是研究錯誤的事物而被教會了這種技能。如果您的同事創建的代碼足夠令人沮喪,那麼最好的選擇可能是消除無用的東西並證明什麼是好的,並討論什麼是好的,並確保他可以做的更好。

因此,儘管其他人提出了反對意見,我還是建議您的計劃可能有其優點,甚至可能是最好的計劃。但是,也可能不是。當我的職業生涯成為大學講師時,我看到了一群學生創造的工作質量。我還看到人們在學習某些東西而不是其他東西方面的效率。我開始真正地看到了不同的教學方式對不同的人有多麼有效。

我還了解到,成功委派涉及給某人一個他們可以成功完成的任務,並且涉及確定他們的技能水平。恰當的例子:有些人不願做決定,但他們確實知道應該怎麼做。您可以問他們,“嗯,您認為應該怎麼做?”通過促使他們採取必要的行動,您可以使他們開始意識到他們可能正在利用的力量,並且可以蓬勃發展。但是,如果您向剛加入組織的人員提出相同的問題,並且該人員不知道足夠的詳細信息來做出明智的決定,那麼相同的提議只會帶來災難性的後果。

如果您要培訓某個人,請務必(在過程的早期)提出問題,以驗證您的理解並確定哪種方法有效地起作用,哪些方法無效。專注於為他們提供所需的結構,以及明確定義的預期結果,甚至可能明確定義的方法,然後將其交給完成您提出的簡單目標的任務。至於提供示例(由您自己製作,由他自己製作)並提供說明,具體方法的用處因人而異。

user8365
2016-04-16 02:08:28 UTC
view on stackexchange narkive permalink

將來,您需要讓實習生知道他們正在執行一項關鍵任務,但是如果您在某個時間之前無法批准他們的工作,則將由其他人來完成。這是公平,開放和誠實的。這並不意味著他們不應該認真對待它,因為您希望能夠給他們一個很好的建議。實習生不應該承擔任務關鍵的壓力。沒有理由不為您和您的公司提供這種學習體驗。

由於您沒有這樣做,因此我將以這種解釋開始,並為沒有首先說明而道歉。我的猜測是實習生會理解。讓他們了解您的方法。花時間盡可能多地解釋。如果可能,請不要重做。希望那裡有一些可兌換的代碼。

盡快給實習生一些東西。摔倒後讓他們重新騎上馬。也許他們可以用您的最新建議重寫該項目。

我只是認為,如果您冷靜而專業地接受培訓,實習生不會為自己打得太多。重要的是他們了解您想擴展他們的技能,應該有一些實際的失敗水平,而不是完全失敗。有時,您時間用光了。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...