題:
禮貌地告訴一個不稱職的軟件項目志願者,他們太缺乏經驗了
joe schmoe
2017-11-17 08:28:50 UTC
view on stackexchange narkive permalink

我目前是一個在線志願者運行軟件項目的項目負責人。我最初是創建此文件,然後在空閒時間進行處理。還有其他一些人對此項目感興趣並自願提供幫助。我以前從未與其他開發人員合作過。目前,還有另一位開發人員自願為該項目編程。他們沒有很多軟件工程經驗,但是他們確實知道項目使用的編程語言有些了解。這時,我正在尋找另一位程序員來幫助加速開發,並告訴他們他們可以幫助對該項目進行編碼。我希望儘管他們缺乏經驗,但我仍能夠在我的指導下加快他們的步伐。

我錯了。

這是兩個月前,直到現在我已經意識到,要培訓他們成為一名完全勝任的開發人員將需要很長的時間。目前,他們的技能還不足以立即從事該項目,他們需要我的協助才能完成幾乎所有任務。回想起來,這可能是我的錯,因為我錯誤地估計了培訓新開發人員所需的時間。我希望這聽起來不會有同情心,但是從純粹面向業務的角度來看,我花大量時間指導他們的時間根本不值得我本來可以花在項目本身上的時間。

我認為,指導他們是一項投資,最終,他們將具備提高項目效率的技能。但是,按照目前的情況,在承擔了許多職責之後,我會很有趣地做這個項目,所以我真的沒有精力每天晚上回家時教別人。 指導讓我享受項目帶來的樂趣。此外,我計劃在未來3個月內放棄和/或完成該項目,因此對我將要放棄的東西進行投資對我來說毫無意義。總之,

總的來說,將他們從開發人員職位中刪除或將他們重新分配給另一個角色對我和項目都是非常有益的。但是,這很尷尬,原因有以下三個:

  1. 他們是該項目的志願者。實際上,他們表現出了提供幫助的熱情,我感到他們很高興成為一名開發人員。這與解僱有薪工人不同,因為他們為此項目犧牲了自己的放鬆時間和空閒時間。僅僅“解僱”他們將是非常不尊重的。

  2. 他們已經成為開發人員大約兩個月了。如果我因經驗不足而拒絕他們,我(通常)會立即這樣做。正如我之前提到的,我不知道他們的經驗不足會對項目造成如此大的干擾。一直是該項目的熱情支持者。我不想燒任何橋樑。

  3. ol>

    在此先感謝您的任何建議。我現在寧願沒有其他開發人員也能獨自工作。開發人員-實際上,我已經提到我是他們的朋友。

    類似地,我查看了有關因技能而解僱某人的這個問題,但這是為了專業環境。正如我在尷尬原因1中提到的那樣,他們是自願者,應該為此犧牲一些寶貴的空閒時間。

您說的是“從純粹面向業務的角度來看”……這是否意味著您正在考慮從志願者開發的軟件中賺錢?他們知道嗎?
@SembeiNorimaki抱歉讓您感到困惑!該項目不會產生任何收入。我所說的“面向業務的觀點”是從客觀的角度來看完成的工作量。
非營利組織也是企業。專業的方法非常有生產力。照做生意。
“從純粹的*實用*的角度來看,我花大量時間指導他們,根本不值得我原本可以花在項目本身上的時間。”
即使某人對代碼一無所知,也可以*總是*為開源項目做貢獻(您是否有事要做?)。文檔,外展,Q / A測試,此列表不勝枚舉。
六 答案:
mag
2017-11-17 13:19:55 UTC
view on stackexchange narkive permalink

您可以完全避開該問題。

您甚至不必欺騙它。

簡單地對他們說,他們可以切實地完成項目的一部分現在已經完成了幫助(既然如此,這完全是事實),並且如果出現其他可以幫助他們的情況,您將再次與他們聯繫。這具有關鍵優勢:

  • 您不會燒掉任何橋樑。
  • 這可能會促使初級開發人員學習更多的知識,以期獲得與項目更相關的技能。
  • 您根本不會開除他們或暗示他們根本沒有能力。
  • 這對於協作性業餘時間項目來說是正常的。在某些時候,沒有某些技能的人可以做的事情結束了。

使用這種策略,您可以完全避免必須完全解僱他們的問題。

  • 編寫文檔 ​​li>
  • 代碼審查
  • 廣泛的Q / A測試

尋找那些在工作上做得不好但不會花錢的任務,但是當他們熱情地完成任務時確實可以提供很多幫助。

代碼審查絕對需要有能力的開發人員...
代碼審查並不僅僅要求有能力的開發人員。我只要求那些會否定我的能力。我會接受任何人的意見和建議。我需要我的代碼對所有人有意義。
我發現經驗不足的眼睛已經揭示出我的代碼容易被有經驗的眼睛根本無法抓住的方式所誤解。
很好由於您不希望他們感到難過,因此您專注於說明項目的複雜性如何增長,並需要一名熟練的開發人員,而不是專注於志願者缺乏技能。
AllTheKingsHorses
2017-11-17 16:15:52 UTC
view on stackexchange narkive permalink

我不確定您是否必須完全從項目中解僱他們,也可以將它們移到不會阻礙其他人(包括您)的位置。

首先,聽起來就像您遇到的主要問題是教練-因此請縮減教練。您可以這樣說:

嗨,鮑勃,目前我的生活中有很多事情,我根本找不到時間參加我們的培訓課程了, 對於那個很抱歉。

然後,通過為它們分配一個或兩個具有非緊急優先級的簡單任務,將它們“移開”。如果他們能夠自己學習並完成任務:那就太好了,給他們一些更具挑戰性的東西,然後重複進行,直到找到他們的能力水平為止。如果不是,請在任務優先級提升時(很快需要時)與他們聯繫。如果您想對此保持外交,則可以說:

嗨,鮑勃,我們需要文檔/翻譯/測試執行/ foobar。

如果您能說服文檔和測試是重要的任務,因為它們 >是。許多開發人員不想編寫文檔,而這密封了許多小型開源軟件項目的命運:他們的軟件解決了一些問題,但大多數人不知道如何使用它,所以沒人使用它。

最後:您提到“我以前從未與其他開發人員一起工作過”,對我來說,如何組織項目中的工作還不清楚。組織軟件開發是非常有價值的技能,因此您可能想利用這個機會來學習和發展自己。學習將工作分解為任務和子任務,找出依賴關係,估算所需時間,確定重要的事情和可以等待的事情的優先級,確定誰可以做什麼。了解如何與開發人員進行最佳溝通,以及在事情無法按預期方式進行時進行重新計劃。使用協作工具(問題跟踪器,版本控制系統等)。

也許當前在商業界流行的方法(Scrum,看板等)會為您提供一些有用的指南。

>

akaioi
2017-11-17 22:37:40 UTC
view on stackexchange narkive permalink

首先,我同意關於感謝志願者迄今為止的時間/努力的部分,並說您需要他從事的主要開發工作已經完成。

我可以建議,為您著想,您需要再進行一次輔導。主題:向他的壞人展示如何編寫單元測試。然後告訴他,如果他想提供更多技術幫助(而不是其他種類的幫助),則應該開始擴展測試的穩定性。優點:

  • 您將獲得單元測試!

  • 志願者被介紹了單元測試的重要性質!

  • 如果志願者行動緩慢或被困住,則不會干擾主線發展

然後,按照其他答案,您可以請您接受更多培訓,因為您的日程安排已經失去了任何鬆弛。

單元測試是代碼。編寫好的單元測試與編寫好的代碼一樣困難。知道何時進行單元測試不合適以及需要進行集成測試同樣困難。知道單元測試何時在代碼中揭示設計問題與何時在測試方法中揭示問題同樣困難。我目前在一個大約5年前編寫的項目上花費了大量時間,而單元和集成測試都沒有經過深思熟慮。如果有的話,它們提供的價值很小。像軟件中的絕大多數事物一樣,單元測試也不是靈丹妙藥。
Jesse
2017-11-17 12:29:59 UTC
view on stackexchange narkive permalink

因為他們是志願者,所以我認為根本沒有必要“開除”他們,因為這樣的措辭會很粗魯。相反,說您現在需要他們完成的志願者工作可能更合適。另外,請務必感謝他們已經完成的工作,對它的成功和個人成長發表評論,只是沒有給他們任何新的任務。

這特別適合志願者,因為他們從未在技​​術上受僱,只會幫助他們需要的地方,如果您可以用表明他們成功完成任務的方式來表述,那麼不再接受更多的任務應該是積極的,而不是消極的。

非常感謝{name},{X}項目的一部分已經建立並且運行良好!您已經完成了我所需要的一切,但是如果一切正常,我可能會要求您將來做更多的工作?

問是否對他們會滿意 > like很方便,因為它保持了您提到的隱喻橋樑,使他們同意您的想法,並為他們提供了選擇,無論他們選擇哪種方法,都可以實現停止他們繼續當前項目的目標,這是禮貌的。 / p>

不幸的是,這並非在所有情況下都有效,並且我不知道您的項目/他被分配了什麼的詳細信息。如果您不得不在變鈍還是說謊之間做出選擇,從長遠來看,變鈍可能會有所幫助(這並不是說您應該專注於壞事!)。

您已經幫助了我們進步了很多,但我認為如果{others}和我完成其餘任務會更好。

如果有的話將來會出現更適合您的技能的東西。我一定會按照您的方式發送。

在某些情況下可能更合適。

user9091
2017-11-18 08:31:42 UTC
view on stackexchange narkive permalink

我對這種情況的理解是……有點憤世嫉俗。在那裡,不斷有新開發人員建議在拉動請求中獲得他們的名字,以增強他們在GitHub上對潛在雇主的信譽。在其他站點上尋找時,不斷有建議新開發人員加入開源項目,以獲取經驗。這種經驗是以花時間指導那些項目中的高級開發人員為代價的。

雖然是的,但是初級開發人員正在放棄他們的空閒時間-我不這麼認為。這是一名初級開發人員,正在免費指導並恢復構建,但需要花費您運行的志願者項目。 (我認為)在志願者項目上進行指導的成本很少值得花時間,除非該人致力於該項目並在GitHub信譽之外對此有真正的興趣。

有兩種方法可以考慮

初級開發者。您將繼續管理每一項提交,並確保提交的材料符合您的項目標準。您在這方面的主要角色是指導者,以確保您的項目和初級開發者對該項目的提交均符合您的期望。

不要指導初級開發者。您自願參與項目工作的時間與他的時間一樣寶貴,甚至更多。可能有許多關閉商店準備說“已完成”並轉到另一個項目。這些任務通常是乏味且乏味的任務,但仍需要完成。

  • 文檔之類的東西-另一個人通讀所有書面文本,並確保其具有正確的拼寫,標點,語法,格式等。
  • style cleanup-抓取您最喜歡的linter,然後根據所需樣式運行代碼。將每個樣式清理項記錄為要清理的每個文件的問題。
  • 測試寫作-致力於提高代碼覆蓋率。總是有待編寫的測試。

意識到並記住,如果有一項任務需要您4h來完成自己的工作,或者需要3h的時間和3h的初中開發時間,除非您考慮讓初級開發人員獲得經驗的價值,否則讓初級開發人員進行業務/時間意義不大。

調查每個人(您和初級開發人員)的情況)不在安排之列。你們都是志願者如果沒有志願人員要做的事-沒關係。

“指導他們/不指導他們”完全是錯誤的二分法。只需將它們重新分配給它們可以處理的內容(非編碼,例如單元測試和/或文檔)。簡單。無論如何,OP的短時限幾乎都不允許指導核心設備上的任何人,即使這在其他方面是有意義的,但事實並非如此。
jpmc26
2017-11-19 09:55:09 UTC
view on stackexchange narkive permalink

告訴他們真相,但要堅持事實。

要坦率而誠實,在您在此處介紹事實時要列出事實:

  • 從事後看來,您會發現他們需要的幫助非常耗時。它已經開始阻礙您自己進行項目工作的能力。
  • 您正在結束項目。您正在接近不再從事該項目的地步。讓他們知道原因。 (例如,可能它被具有更好支持/資金的新項目所取代,或者根本沒有太多工作要做。)
  • 感謝他們為該項目付出的所有努力,並告訴他們您希望該經驗對他們的能力發展有所幫助。
  • 可能會幫助他們找到另一個可以繼續從事開發工作的項目,也許與他們目前的水平相適應

注意,他們可能會詢問是否可以在沒有如此密切監督的情況下繼續工作。如果可行,您可以考慮有意採取更多不干預的方法,然後在完成後重新檢查他們的工作(例如,作為拉取請求)。這是否可行取決於您。如果您可以找到一些小的更改來實施,則可以考慮這樣做。如果嘗試了一下,但效果不佳,則可以向他們具體說明他們的工作出了什麼問題,您可能需要返回到有關沒有時間和項目結束的討論。

事情不是要說的:

  • 您正在解僱他們。
  • 因為他們,您不再喜歡這個項目了。
  • 他們沒有能力或其他與生俱來的能力。

有時候,最好不要說出您的想法和感受。不是因為您不誠實,而是因為您知道自己的感受和想法並不完全客觀。我們的判斷有時會因我們未實現的願望而蒙上陰影,因此有時我們對我們知道不是真的有效的思想和感受保持警惕。 任何方法都存在風險。無所事事有使您沮喪和以非建設性的方式釋放它的風險,而撒謊或捏造事實的風險則有可能使另一個人發現真正發生的事情。誠實可以讓別人信任自己來評估情況並像您所做的那樣看待事情。該人可以看到您並沒有受到不公平的對待,並且您正在嘗試客觀地處理這種情況。如果他們不理解您的觀點,可以與他們討論並解釋;如果您不直率,那實際上是不可能的。

如果您感覺到對方開始懷疑您的友誼會繼續下去,請明確表示您想繼續下去。這樣做超出了此問題的範圍,因為它取決於其他人的響應方式。



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