สิ่งที่กำหนดบทบาท“ ผู้พัฒนาซอฟต์แวร์”


10

ฉันเป็นผู้พัฒนาซอฟต์แวร์รุ่นเยาว์และฉันทำงานให้กับ บริษัท น้อยกว่าหนึ่งปี

ในขณะที่ฉันคิดอยู่เสมอว่าการเป็นนักพัฒนาซอฟต์แวร์หมายถึงการพัฒนาซอฟต์แวร์และ CODE บางอย่างงานของฉันมีมากขึ้นในประเภทการบริหารงานเช่นการตั้งค่า Jenkins การจำลองแบบ SQL และอื่น ๆ

งานประเภทเหล่านี้รวมอยู่ในบทบาทนักพัฒนาซอฟต์แวร์หรือผู้พัฒนาซอฟต์แวร์เท่านั้น ฉันควรจะพูดคุยกับผู้จัดการเกี่ยวกับเรื่องนี้หรือไม่? นี่เป็นวิธีทั่วไปสำหรับ บริษัท ในการประเมินทักษะ "กำลังพัฒนา" หรือไม่?


9
ขึ้นอยู่กับว่าเจ้านายที่มีผมแหลมของคุณคือใคร
Neil

แต่ละ บริษัท จะกำหนดบทบาทแตกต่างกันเล็กน้อย ถามผู้จัดการเกี่ยวกับความรับผิดชอบและความคาดหวังของบทบาท
เบอร์นาร์ด

4
มีระยะเวลาที่ช่างไม้ต้องโหลดไม้กดล้อสาลี่ ฯลฯ มันเป็นส่วนหนึ่งของงานทั้งหมด หากคุณเป็นช่างไม้ที่ไม่มีประสบการณ์คุณอาจทำสิ่งนั้นมากกว่าช่างไม้อาวุโส
Bryan Oakley

1
การพัฒนาซอฟต์แวร์> การเขียนโค้ด หากนักพัฒนาซอฟต์แวร์ไม่ทราบวิธีการตั้งค่า / ใช้งานและ / หรือไม่ทราบคุณค่าของ (เครื่องมือเช่น) เจนกินส์จากนั้นตามคำนิยามพวกเขาจะเป็นนักพัฒนาซอฟต์แวร์จูเนียร์ (มาก) พิจารณาการฝึกอบรมภาคปฏิบัติและนับว่าคุณโชคดีที่คุณไม่ได้ทำงานในสภาพแวดล้อมที่คุณต้องใช้งานเซิร์ฟเวอร์ CI ของคุณเองบน VM ของคุณเองตามเวลาที่กำหนดเพื่อรักษาระดับคุณภาพของซอฟต์แวร์ ที่คาดไว้ แต่ในทางปฏิบัติไม่สนับสนุนหากเครื่องมือเช่นนี้ไม่อนุญาตให้ใช้ใน "กระบวนการ" (ด้วยตนเอง)
ไมเคิล

คำตอบ:


11

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

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

มันโชคร้ายเพราะมันทำให้คุณและเจ้านายของคุณอยู่ในตำแหน่งที่ยุ่งยาก

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

แต่ปัญหาเล็กน้อยเกิดขึ้นจากสิ่งนี้

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

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

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

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

ถ้าคุณทำไม่ได้คุณอาจต้องการที่อื่น


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

@michael_n: ไม่เห็นด้วยอย่างสิ้นเชิง มีความแตกต่างระหว่างการตั้งค่าเจนกินส์และการตั้งค่าสภาพแวดล้อมการสร้างทั้งหมดในแบบที่จะลดความพยายามในส่วนของนักพัฒนาทั้งหมดในขณะที่อนุญาตการปรับใช้ที่ปลอดภัยคลิกเดียว ฯลฯ และนั่นคือความแตกต่างระหว่างสิ่งที่จูเนียร์จะให้คุณ และอาวุโสจะให้อะไรเมื่อถูกขอให้ตั้งค่าเซิร์ฟเวอร์การสร้าง
pdr

... และยังฉันเห็นด้วยกับคุณ: "มีความแตกต่างระหว่างการตั้งค่าเจนกินส์และการตั้งค่าสภาพแวดล้อมการสร้างทั้งหมด" เผง ดังนั้นฉันเดาว่ามันขึ้นอยู่กับว่าคุณตีความคำถามอย่างแท้จริง (ฉัน) การติดตั้งเจนกินส์เป็นเวลาบ่าย การตั้งค่าการสร้าง / ant / maven ของคุณใช้เวลาหลายวันและสามารถเปลี่ยนเป็นสัปดาห์ได้อย่างง่ายดายและต้องทำถูกต้อง ผู้จัดการที่ดีสามารถแยกแยะสิ่งต่าง ๆ และมอบหมายตามประสบการณ์ (ในแง่นี้ฉันเป็นผู้จัดการที่ไม่ดีในอดีตเลือกที่จะทำทุกอย่างด้วยตัวเองเพียงเพราะมันจะเร็วกว่าจริง ๆ แต่นั่นไม่ได้ปรับขนาดและ " ทีม "ไม่วิวัฒนาการ")
ไมเคิล

@michael_n: ดูว่าคุณหมายถึงอะไร ฉันมักจะมีความคาดหวังต่ำกว่าผู้จัดการฉันเดา โดยเฉพาะผู้ที่จ้างจูเนียร์ด้วยเหตุผลทางการเงินแทนที่จะวางแผนในอนาคต
pdr

7

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

แต่สำหรับทีมพัฒนาเพื่อให้ทำงานได้อย่างมีประสิทธิภาพคุณต้องมีสิ่งเหล่านี้ตั้งค่าเซิร์ฟเวอร์ CI การจำลองแบบ SQL การปรับใช้เพื่อทดสอบเซิร์ฟเวอร์การตรวจสอบเซิร์ฟเวอร์ทดสอบการเก็บถาวรการสร้าง ฯลฯ (อาจไม่ใช่ทั้งหมดในสถานการณ์ใด ๆ ) .

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

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

ฉันไม่เคยพบ บริษัท ใดที่ใช้งานเหล่านี้เป็นเครื่องมือในการประเมินทักษะ

หากคุณไม่พอใจกับความรับผิดชอบในปัจจุบันของคุณฉันขอแนะนำให้จัดการปัญหากับผู้จัดการสายงานของคุณ


1
มีความแตกต่างระหว่างคำตามเป็นนี้
เบอร์นาร์ด

1
ยังเป็นไปตามนี้
smp7d

2

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

คำตอบทางทฤษฎีคือนักพัฒนา (เปรียบเทียบกับ coder / โปรแกรมเมอร์) เป็นคนที่ "แก้ปัญหา" แม้ว่าพวกเขาจะไม่ต้องทำอะไรกับ "การเขียนโค้ดบางอย่าง"

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


2

มันไม่ได้เป็นเรื่องแปลกสำหรับนักพัฒนาที่จะคาดว่าจะมีบางทักษะการบริหารระบบ ในฐานะนักพัฒนาอาวุโสฉันประเมินว่าประมาณ 5% ของเวลาที่ใช้ไปกับงานดังกล่าว

อย่างไรก็ตามหากคุณไม่ได้เขียนโปรแกรมใด ๆคุณควรพูดคุยกับผู้จัดการของคุณเกี่ยวกับการเขียนโปรแกรม ท้ายที่สุดคุณต้องการสร้างประสบการณ์การเข้ารหัส คุณมีค่ามากกว่าในฐานะโปรแกรมเมอร์มากกว่าผู้ดูแลระบบ


1

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

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


0

เป็นเรื่องปกติสำหรับนักพัฒนาใน บริษัท ขนาดเล็กถึงขนาดกลางที่จะทำหน้าที่ดูแลระบบเซิร์ฟเวอร์ / งาน DBA / การกำหนดค่าทั่วไปบางอย่าง

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

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

หากคุณไม่ต้องการติดอยู่ในตำแหน่งปัจจุบันของคุณฉันจะพยายามแก้ไขสถานการณ์ในไม่ช้า

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