อะไรคือสิ่งสำคัญที่โปรแกรมเมอร์คาดหวังจากโปรแกรมเมอร์อาวุโส


41

เมื่อเร็ว ๆ นี้ฉันได้อ่านบอส 5 ประเภทต่อไปนี้และวิธีจัดการกับพวกเขา ซึ่งอธิบายถึงการแต่งตัวของเจ้านายที่แย่ที่สุด ฉันเพิ่งเริ่มนำทีมนักพัฒนาซอฟต์แวร์เล็ก ๆ

ฉันอยากจะรู้ว่าอะไรคือสิ่งสำคัญที่โปรแกรมเมอร์คาดหวังจากโปรแกรมเมอร์อาวุโสหรืออะไรคือสิ่งที่เราควรหลีกเลี่ยงขณะจัดการทีม

นอกจากนี้ฉันต้องการทราบวิธีการทำให้โปรแกรมเมอร์พึงพอใจและสร้างสภาพแวดล้อมที่มีประสิทธิผลและสมบูรณ์สำหรับทีมของฉัน


19
joelonsoftware.comอ่านบล็อกของเขามากเท่าที่คุณมีเวลา
P.Brian.Mackey

@ P.Brian.Mackey ลิงก์สุดยอด!
Avatar

2
ว่าโปรแกรมเมอร์อาวุโสมี avatar มิยาซากิที่เกี่ยวข้องอาจจะไม่ต้อง แต่ก็ใหญ่บวก :-)
leonbloy

1
น่าสนใจ ... เจ้านายของฉันทำคะแนนได้ 4 จาก 5 จากการทดสอบนั้น ... ฉันควรเตือนเขาถึงข่าวดี;)
Aeo

1
เกี่ยวข้อง: programmers.stackexchange.com/questions/27164/…
Machado

คำตอบ:


79

สิ่งที่ดูเหมือนจะทำงานได้ดีสำหรับฉัน:

  • ให้งานที่มีความหมายและกระตุ้นให้เกิดความเป็นเจ้าของ - แม้เมื่อมีปัญหาเกิดขึ้นอย่าแก้ปัญหาพูดคุยผ่านมันและให้ข้อมูลเชิงลึกแก่บุคคลเพื่อที่พวกเขาจะสามารถแก้ไขได้ด้วยตนเอง
    • แก้ไข - การเพิ่ม - สิ่งนี้ยังหมายรวมถึง - หลีกเลี่ยงรายละเอียด สมมติว่าคนของคุณรู้พอที่จะทำงานที่ได้รับมอบหมายโดยไม่ต้องมีหน่วยงานเล็ก ๆ หรือต้องการตรวจสอบอย่างต่อเนื่องสร้างชุดแนวทางสำหรับเวลาที่พวกเขาควรจะเช็คอิน - ซึ่งควรจะเป็นเมื่องานเสร็จแล้ว จำเป็น หากเป็นไปได้ให้หลีกเลี่ยงแม้กระทั่งต้องอยู่ในลูปในปัญหาการสนับสนุนระหว่างกัน
  • ซื่อสัตย์ - ที่มีข้อพิสูจน์หลายอย่าง:
    • ซื่อสัตย์กับตัวเอง - "ฉันจะไม่มีเวลาจนถึงวันอังคาร", "ฉันไม่เคยทำแบบนั้นมาก่อนนี่คือการคาดเดาที่ดีที่สุดของฉัน" ฯลฯ
    • ซื่อสัตย์เกี่ยวกับทีมและสถานที่ที่พวกเขาเหมาะสมกับ บริษัท - ถ้าคุณรู้อะไรเกี่ยวกับเรื่องธุรกิจบอกพวกเขาว่าคุณทำได้และบอกพวกเขาว่าคุณรู้อะไรในข้อเท็จจริงตรงๆ
    • ซื่อสัตย์ในการให้คำติชม - อย่าสับคำหรือเหยียบนุ่ม ๆ ถ้าคุณให้คำติชมเชิงลบ มันแตกต่างจาก "ความซื่อสัตย์อย่างไร้ความปราณี" - คุณยังสามารถมีความเห็นอกเห็นใจ แต่ถ้ามีอะไรผิดปกติ
    • ซื่อสัตย์เมื่อคุณรู้ว่างานเป็นเรื่องของ redtape มากกว่าการทำสิ่งที่มีความหมาย ในชีวิตของทุกคนงานที่ไร้ความหมายจะตก อย่าทำเป็นว่ามีความหมาย เรียกว่าเป็นดังนั้นคุณสามารถมุ่งเน้นไปที่การผ่านมันและการทำสิ่งที่มีประโยชน์
  • ฟังนะ อย่างน้อย 50% ของงานของคุณกำลังฟังอยู่อาจจะมากกว่านี้ คุณมีความรับผิดชอบไม่เพียง แต่สำหรับงานด้านเทคนิคเท่านั้น คุณต้องฟังเพื่อเรียนรู้ไม่เพียง แต่เกี่ยวกับปัญหาที่ทีมมี แต่ยังรวมถึงวิธีที่คนของคุณจัดการกับปัญหาและความบกพร่องของทีมในฐานะกลุ่ม
    • ข้อพิสูจน์ที่สำคัญ - การฟังสามารถนำไปสู่ประเด็นที่ 1 ได้โดยตรง - ให้งานที่มีความหมาย - วิศวกรยอดเยี่ยมในการหาวิธีที่จะทำให้การพัฒนาง่ายขึ้น คุณไม่สามารถอนุมัติทุกสิ่งได้ แต่ที่ความคิดดีให้วิศวกรมอบหมายและพวกเขาทำให้คุณทำงานให้คุณได้จริง - พวกเขาสร้างงานที่มีความหมายและบอกคุณว่ามันคืออะไร
  • พูดว่า "ขอบคุณ" ฉันรู้ว่ามันชัดเจน ในขณะที่เราทุกคนรักเงินเครื่องมือที่ดีกว่าสภาพแวดล้อมในการทำงานและการส่งเสริมการขายที่ดีกว่า - วิธีที่จะได้รับสิ่งเหล่านี้คือความพยายามที่ดีหลาย ๆ อย่างซึ่งแต่ละคนสมควรได้รับ "ขอบคุณ" "ขอบคุณ" ไม่มีค่าใช้จ่ายใด ๆ ทั้งสิ้นคุณจะไม่มีวันหมดพวกเขาและรู้ว่าผู้จัดการของคุณได้เห็นและชื่นชมการทำงานหนักของคุณนั้นเป็นแรงจูงใจอย่างแน่นอน
  • ใช้เวลากับภาพรวมแม้ว่ามันหมายถึงการเสียสละบางส่วนของงานประจำวันที่ทำให้คุณได้ตำแหน่ง อาจเป็นเรื่องจริงที่คุณสามารถเขียนโค้ดได้ดีกว่าบางคน แต่ถ้าคุณไม่ได้ใช้เวลาอย่างเหมาะสมกับภาพรวม - ทีมทิศทางของโครงการโดยรวมสถานะของ codebase ของคุณประสิทธิภาพของกระบวนการของคุณ สภาพแวดล้อมของทีม - จากนั้นคุณจะไม่ทำงานที่พวกเขาต้องการให้คุณทำ
  • เรียนรู้ที่จะเป็นกันชนให้กับทีมของคุณ ทีมวิศวกรรมทำงานได้ดีที่สุดเมื่อพวกเขามีเวลาทำ ... วิศวกรรม ระบบราชการขององค์กรไม่ใช่วิศวกรรม ทุกสิ่งที่คุณสามารถทำได้เพื่อจัดการประชุมที่น่ารำคาญ 1 ครั้งต่อปี / เดือน / สัปดาห์กับคนภายนอกนั้นดีกว่า หมายเหตุ: นั่นไม่ได้หมายถึงการประชุมที่คล่องตัวกับผู้ถือหุ้น - นั่นคือวิศวกรรมทีมของคุณต้องอยู่ที่นั่น ฉันหมายถึงการประชุมด้วยสิ่งอำนวยความสะดวกที่ต้องการวางชิ้นส่วนเครื่องจักรที่ส่งเสียงร้องดังอยู่ใกล้กับทีมของคุณหรือกลุ่มกระบวนการที่ต้องการให้ทีมของคุณกรอกเอกสารเป็นสามเท่าก่อนที่จะมีการตรวจสอบรหัสใด ๆ
  • สมมติว่าคนที่มีปัญหาไม่ใช่คนชั่วพวกเขาคือคนที่ต้องการทำสิ่งที่ดี แต่ยังไม่สามารถหาวิธีได้ คุณจะไม่สามารถแก้ไขทุกคนได้ แต่บ่อยครั้งที่สกรูอัพที่สมบูรณ์สองสามตัวแรกนั้นเป็นปัจจัยหนึ่งของการสื่อสารที่ล้มเหลวเนื่องจากพวกเขาขาดคุณสมบัติหรือมีเจตนาร้าย หากคุณเริ่มต้นด้วยการสันนิษฐานว่าผู้คนไม่ใช่คนชั่วคุณก็มีความหวังที่จะหลีกเลี่ยงเจ้านายต้นแบบที่ชั่วร้ายในรายการด้านบน

และอาจจะสำคัญที่สุด ... เคารพ หากคุณไม่สามารถเคารพสมาชิกในทีมของคุณอย่างซื่อสัตย์คุณต้องทำงานเพื่อเปลี่ยนแปลงสิ่งนั้น (ไม่ว่าจะเป็นการสอนคนหรือการเปลี่ยนจำนวนคน) ให้ความเคารพในวันแรกและคุณจะได้รับมันคืนรักษาผู้คนด้วยความเคารพและคุณจะไม่ได้รับความเคารพตอบแทน

นำมารวมกันหากคุณทำสิ่งเหล่านี้ส่วนใหญ่แล้วทีมของคุณจะได้รับประโยชน์จากความสงสัยเมื่อคุณแสดงให้เห็นว่าคุณเป็นมนุษย์ :) บอสทุกคนมีข้อเสียของตัวเองและมันก็เป็นเรื่องเกี่ยวกับการสร้างความสัมพันธ์กับทีมของคุณซึ่งพวกเขาสามารถช่วยคุณชดเชยความอ่อนแอของคุณเมื่อคุณช่วยเหลือพวกเขา


1
คำตอบที่ดีฉันจะเพิ่มนี้ให้อิสระพวกเขา ไม่มีอะไรเลวร้ายไปกว่าการถูก micromanaged หรือต้องขออนุญาตจากทุกรายละเอียดเล็กน้อย
agradl

3
สุดยอดจริง ๆ .. ฉันหวังว่า StackExchange สามารถให้การสนับสนุนผู้ใช้ที่ติดตาม (หมายเหตุสั้น ๆ เกี่ยวกับ Joel และ Jeff) :)
PrinceCoder

2
WAAOW !! ... นั่นเป็นหนึ่งในคำตอบที่ดีที่สุดที่ฉันเคยเจอ @Stackexchange
สำรวจ

ว้าวและว้าว และเนื่องจากฉันต้องพิมพ์อักขระเพิ่มอีกสองสามตัวเพื่อส่งความคิดเห็นนี้ว้าว
Amir Afghanani

2
@PrinceCoder ผู้ใช้ทุกคนมีฟีดของตัวเองคุณสามารถติดตามได้ใน RSS reader
svick

12

สิ่งสำคัญที่สุดอย่างหนึ่งในการเรียนรู้คือบ่อยครั้งที่คุณจะไม่สามารถทำให้พวกเขามีความสุขเพราะคุณไม่มีความสามารถที่จะให้สิ่งที่พวกเขาต้องการ

ผู้จัดการที่ดีที่สุดที่ผมเคยทำงานให้ฉันได้พบได้รับคนที่ซื่อสัตย์ที่สุดที่จะปกป้องทีมของพวกเขาจากทั่วทุกอึที่บนลองจัดการโยนที่พวกเขาและที่เหนือสิ่งอื่นฟังให้กับทีมงานของพวกเขา


2
มีความแตกต่างใหญ่ระหว่างผู้จัดการและโปรแกรมเมอร์อาวุโส ฉันยังไม่ได้พบกับผู้จัดการอย่างที่คุณอธิบาย โปรดบอกฉันว่าฉันสามารถหาพวกเขาได้ที่ไหน ;-)
fretje

ยุติธรรมพอนั่นคือสิ่งที่ชื่อกล่าว แต่คำถามยังคงพูดคุยเกี่ยวกับผู้บังคับบัญชา ฉันมีผู้จัดการ / dev ที่ดีมากมายในอาชีพของฉัน
ozz

+1 @James มีคนแก้ไขชื่อที่ดูเหมือน โดยคำถามหมายถึงผู้นำ / ผู้จัดการ คำว่า "เจ้านาย" ดูดุร้ายดังนั้นฉันเลือกโปรแกรมเมอร์อาวุโส
Avatar

6

ฉันเชื่อมั่นว่าหนึ่งในส่วนที่สำคัญที่สุดของการเป็นผู้อาวุโสหรือโอกาสในการขายคือความสามารถของผู้อยู่ใต้บังคับบัญชา ผู้อาวุโสและผู้นำมักมีงานที่มี แต่พวกเขาเท่านั้นที่มีสิทธิ์ทำ (เราไม่ให้สิทธิ์ในการเขียนสำหรับการแสดงละครและการกระทุ้งเป็นต้น) นอกจากนี้งานที่สำคัญของคุณก็คือการให้คำปรึกษาแก่ผู้อยู่ใต้บังคับบัญชาซึ่งหมายถึงการตอบคำถามโดยไม่เพิกเฉย ยิ่งคุณเป็นคนที่มีความเป็นไปได้สูงเท่าไรก็ยิ่งมีโอกาสมากขึ้นเท่านั้นที่คนอื่นจะต้องถูกขัดจังหวะโดยคุณ คุณต้องยอมแพ้ว่า "ห้ามรบกวน" ลงชื่อและเรียนรู้ที่จะทำงานกับการขัดจังหวะ

การฟังเป็นสิ่งสำคัญ

ได้โปรดและขอบคุณคุณสำคัญและไม่มีค่าใช้จ่าย

อย่าคาดหวังมากกว่าที่คุณเต็มใจจะให้ ถ้าคุณต้องการให้ฉันทำงานจนถึงตี 3 คุณควรอยู่ข้าง ๆ ฉันด้วย ไม่มีอะไรท้อใจกว่าการทำงานกับคนที่ออกตรงเวลาทุกวันทันทีหลังจากให้งานที่ต้องทำในเวลา 7 โมงเช้า

ยุติธรรม. อย่าเล่นรายการโปรด (โดยเฉพาะอย่าเล่นรายการโปรดโดยให้สิ่งที่ดีที่สุดกับแฟนหรือแฟนของคุณ) ปฏิบัติต่อพนักงานทุกคนด้วยความเคารพ (แม้แต่คนที่คุณไม่ชอบเป็นการส่วนตัว)

เด็ดขาด อย่าปล่อยให้การตัดสินใจออกไปเที่ยวเพื่อที่จะไม่มีใครก้าวหน้าหรือแย่ไปกว่านั้นเปลี่ยนทุก ๆ ห้านาที

ยืนหยัดเพื่อคนของคุณ คุณจะไม่ชนะพวกเขาทั้งหมด แต่คนจะเดินผ่านไฟสำหรับคนที่สนับสนุนพวกเขาขึ้นโซ่

เต็มใจที่จะเป็นคนเลวเมื่อจำเป็น แอปเปิ้ลที่ไม่ดีอย่างหนึ่งสามารถทำลายทีมนักพัฒนาได้อย่ายึดติดกับบุคคลนั้นเพราะคุณไม่ต้องการเผชิญหน้ากับพฤติกรรมที่ไม่ดีของพวกเขา เมื่อคุณมีข่าวร้ายบอกทีมอย่าเก็บเป็นความลับ (ในที่สุดพวกเขาจะค้นหาและจากนั้นพวกเขาก็คลั่งไคล้ข่าวร้ายและการเก็บความลับ) คุณไม่ได้อยู่ที่นั่น แต่ได้รับความนิยม ทุกคนในฝ่ายบริหารหรือตำแหน่งกึ่งจัดการต้องมีความเต็มใจที่จะไม่เป็นที่นิยม

เรียนรู้วิธีการขายความคิดเพื่อให้สูงขึ้นและสอนทักษะเหล่านี้ให้กับผู้พัฒนาของคุณ

ทำความเข้าใจถึงความสำคัญของโดเมนธุรกิจและกลายเป็นผู้เชี่ยวชาญในนั้นรวมถึงการเขียนโปรแกรม


3

คำหลักที่นี่คือความไว้วางใจและความรับผิดชอบ

คุณเพียงแค่ต้องเชื่อมั่นว่าสมาชิกในทีมของคุณมีความสามารถและมุ่งเน้นไปที่การทำงานให้เสร็จ โดยไม่เข้าไปยุ่งมากเกินไปคุณต้องให้ความรับผิดชอบ "ของตัวเอง" กับงานของพวกเขา

IMHO สิ่งนี้เพียงอย่างเดียวก็สร้างความมหัศจรรย์ในการสร้างบรรยากาศที่ดีต่อสุขภาพ


2
ให้พวกเขามีความสามารถและแรงจูงใจที่เหมาะสม หากทีมนั้นได้รับการสืบทอดตามที่ควรจะเป็นนี่เป็นสิ่งที่น่าเสียดาย หากคุณเลือกสมาชิกด้วยตัวเองแน่นอนว่ามันเป็นเรื่องราวที่แตกต่าง
PéterTörök

1
ในความคิดของฉันแม้แต่คนที่ไม่เก่งเกินไปเมื่อได้รับความรับผิดชอบอย่างเต็มที่หรือที่เรียกว่า "ความเป็นเจ้าของ" ในส่วนหนึ่งของโครงการก็จะทำทุกอย่างเพื่อให้งานสำเร็จลุล่วง ฉันไม่สนใจเลยว่าจะมีการรวบรวมบางส่วนของรหัสโดยการถามคำถามในฟอรัมและบอร์ดตราบใดที่งานเสร็จ
Jas

โชคไม่ดีที่ฉันได้พบกับคู่ตัวอย่าง :-( ในกรณีที่แย่ที่สุดที่ฉันเคยเห็นนักพัฒนาไม่ได้ทำอะไรเลยเมื่อเขาได้รับอิสรภาพและความรับผิดชอบอย่างเต็มที่เป็นเวลาประมาณสองเดือน - เมื่อปรากฏออกมาเขาก็ไม่ได้เข้ามาทำงาน บางคนไม่ดึงน้ำหนักของพวกเขาในทีมและถ้าคุณปล่อยให้พวกเขาวิ่งอย่างอิสระโดยไม่มีการตรวจสอบอย่างใกล้ชิดคุณจะทำสิ่งที่แย่กว่านั้นถ้าคุณไม่กำจัดคนเหล่านี้ในเวลาพวกเขาสามารถสร้างความเสียหายให้กับทีมทั้งหมด
PéterTörök

@ PéterTörök - แน่นอนว่าทุกคนรู้จักคนเหล่านี้ไม่กี่คนในทุก ๆ บริษัท (จริง ๆ แล้วการอ่านนี้ฉันคิดว่าคุณรู้จักผู้ชายคนเดียวกันกับฉัน :) แต่จากประสบการณ์ของฉันคนส่วนใหญ่มุ่งเน้นและพยายามทำให้ดีที่สุด
Jas

ฉันเห็นด้วยคนส่วนใหญ่พยายามทำให้ดีที่สุด (หรือฉันจะบอกว่าทุกคนพยายามทำให้ดีที่สุด - แค่บางคน "ดีที่สุด" ไม่ถึงขีด จำกัด ของความชัดเจน? :-) เราควรแจ้งเตือนให้สังเกตข้อยกเว้นในเวลา - เพราะยังมีข้อยกเว้นอยู่ เช่นเดียวกับในรหัสการผลิตเราต้องจัดการกรณีข้อผิดพลาดอย่างถูกต้องแม้ว่าจะพบได้ยากในสถานการณ์ปกติ
PéterTörök

3

ดี IMO ฉันคาดหวังว่านักพัฒนาอาวุโส / ผู้นำ / อะไรก็ตามที่อยู่เคียงข้างกับทีมพัฒนากับสิ่งต่าง ๆ เช่นกำหนดเวลาที่งี่เง่าไม่มีทรัพยากร แต่คาดว่าจะสร้างกรุงโรมการทำงานล่วงเวลาที่ได้รับคำสั่ง ฯลฯ ทุกสิ่งที่ลดประสิทธิภาพการทำงาน

สิ่งสำคัญที่ IMO ต้องหลีกเลี่ยงคือการเป็น "ใช่ชาย" เพื่อผู้บริหารระดับสูงและมักจะเห็นด้วยไม่ว่าพวกเขาจะพูดอะไร (นักจูบในคำอื่น ๆ )


+1: ใช่ และหากคุณพบว่าตัวเองรายงานว่า 'ใช่ชาย' ให้ออกโดยเร็ว
Jim G.

1
น่าเศร้าที่มีหลาย ๆ สภาพแวดล้อมที่โปรแกรมเมอร์อาวุโส / ผู้จัดการโครงการไม่ได้เป็นอะไรนอกจาก Yes-Man (หรืออย่างที่ฉันชอบเรียกพวกเขาว่า "Smithers") และส่วนที่แย่ที่สุดคือเวลาส่วนใหญ่ที่คุณไม่รู้ จนกระทั่งหลังจากที่คุณทำงาน
Wayne Molina

3

ทักษะคน บางครั้งผู้คนจะได้รับชื่อ "อาวุโส" และพวกเขาลืมว่าพวกเขาจะไม่รอบรู้ พวกเขารู้สึกว่าการส่งเสริมการขายเป็นความเห็นเกี่ยวกับทักษะทางเทคนิคสูงสุดและอัจฉริยะแฝง ในความเป็นจริงพวกเขาเป็นผู้จัดการระดับต่ำสุดในขณะนี้ พวกเขาควรเข้าใจว่าใครและแรงจูงใจใครควรจะเป็นอย่างไรจะประนีประนอมและฟังเมื่อใด

ความเป็นเจ้าของ โปรแกรมเมอร์อาวุโสที่แย่ที่สุดไม่ได้เป็นเจ้าของสิ่งที่พวกเขาเป็น "รุ่นพี่" พวกเขาถอยกลับไปใช้กลวิธีของการทำงานที่ผิดเพี้ยนและการเล่นเกมโทษที่นำไปสู่การส่งเสริมการขายของพวกเขา ตอนนี้พวกเขาต้องเข้าใจก้นของพวกเขาในสลิงและความรับผิดชอบในการเป็นเจ้าของการออกแบบแผนและการแบ่งงาน

ประสบการณ์. ฉันคาดหวังว่านักพัฒนาอาวุโสจะได้เห็นทุกอย่างสองครั้ง พวกเขาควรเข้าใจโดเมนและเทคโนโลยี พวกเขาควรโจมตีความเสี่ยงอย่างจริงจังและสามารถหาเวลาที่สูญเสียฝูงแดง


2

ความมั่นคงเป็นหนึ่งในสิ่งที่สำคัญที่สุด หากนักพัฒนาสามารถทำนายได้ว่าคุณจะทำอย่างไรพวกเขาจะมีความสุขมากขึ้น แม้ว่าคุณจะเป็นเครื่องมือรวมอยู่ตลอดเวลามันก็ดีกว่าบางครั้งก็เท่ห์และบางครั้งก็เป็นเครื่องมือ การพูดแบบนั้นไม่ใช่เครื่องมือ


2

ความรู้และการสื่อสาร รู้แหล่งที่มาและมากมากที่สำคัญกว่าความสามารถในการอธิบายให้ทุกคนในทางที่พวกเขาจะเข้าใจและรักษา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.