วิธีนำโครงการพัฒนาโดยปราศจากความเชี่ยวชาญด้านเทคนิค


17

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

ตอนนี้ฉันพบว่าตัวเองอยู่อีกด้านหนึ่งของกระจกมอง ฉันเป็นผู้นำในการพัฒนาลูกค้าอ้วนที่จะนำไปใช้ใน C # อย่างไรก็ตามความเชี่ยวชาญของฉันคือการสร้างเว็บแอปพลิเคชัน Java ในขณะที่ฉันรู้ว่าฉันสามารถใช้ประโยชน์จากรูปแบบการออกแบบและกระบวนทัศน์ OO ในภาษาใด ๆ ฉันก็หลงทางเมื่อพูดถึงมาตรฐานการเข้ารหัสเครื่องมือวงจรชีวิตโครงการและขั้นตอนการเผยแพร่ / แจกจ่าย ฉันไม่สงสัยเลยว่าฉันจะสามารถรับพื้นฐานได้ภายในหนึ่งหรือสองเดือน แต่มีประสบการณ์บางอย่างที่สามารถรวบรวมได้ด้วยเวลาเท่านั้น

ฉันควรทำอย่างไรและฉันจะหลีกเลี่ยงการเป็นผู้นำโครงการที่ฉันเกลียดเมื่อฉันพัฒนาได้อย่างไร


12
เพื่อหลีกเลี่ยงความเกลียดชังเช่นนั้นเพียงแค่พูดคุยกับสมาชิกในทีมของคุณ พูดคุยเป็นประจำพูดคุยบ่อยคุย 1: 1 "... รางวัลของคุณสำหรับวัฒนธรรมที่มีสุขภาพดี 1: 1s คือการขาดละครที่แตกต่าง"
ริ้น

1
ชื่อของคุณและความรับผิดชอบของคุณสำหรับ porject นี้คืออะไร? คุณเป็นนักพัฒนาอาวุโสหรือไม่?
NoChance

เรียนรู้จากดีที่สุด ... youtube.com/watch?v=GjJCdCXFslY
jfrankcarr

1
แต่จริงจังฉันเขียนบทความชุดนี้ในขณะที่คุณอาจพบว่ามีประโยชน์: vbnotebookfor.net/2007/07/25/ …
jfrankcarr

คำตอบ:


19

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

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

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

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

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

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


2
ขวา. สิ่งสำคัญคือต้องยอมให้ "ดาว" ทางเทคนิคของคุณตัดสินใจที่แตกต่างจากสิ่งที่คุณจะทำ หากคุณสามารถทำได้ทุกคน (ยกเว้นแน่นอนว่าผู้บริหารระดับสูง) จะมีความสุขและมีประสิทธิผล
Daniel R Hicks

'ดังนั้นคุณไม่ต้องพูดว่า "นี่คือสิ่งที่ดีที่สุดในการใช้งาน" คุณสามารถพูดว่า "ฉันเคยใช้สิ่งนี้ใน Java คุณรู้หรือไม่ว่าเทียบเท่ากับ. NET' ในกรณีส่วนใหญ่หากมีเครื่องมือที่เทียบเท่าจะมีคำนำหน้าด้วย 'N' ดังนั้นคุณจึงสามารถค้นหาสิ่งเหล่านี้ได้ด้วยตัวเอง
Dan Neely

โปรดทราบว่าเขากำลังแท็กตัวเองเป็น "นักพัฒนานำ" และไม่ใช่ "ผู้จัดการโครงการ" จากประสบการณ์ของฉันนี่เป็นสองสิ่งที่แตกต่างกันมาก
Wonko the Sane

@WonkotheSane: มันเป็นความจริงที่ว่า OP หมายถึงหัวหน้าโครงการ, หัวหน้าทีมและหัวหน้าทีมพัฒนาราวกับว่าพวกเขาเหมือนกันทั้งหมดและมันสับสน แต่ฉันเอาคิวของฉันจากบริบทที่พวกเขาใช้
สาธารณรัฐประชาธิปไตยประชาชนลาว

@pdr - เห็นด้วยเกือบ ส่วนเกี่ยวกับ "ฉันสามารถยกระดับรูปแบบการออกแบบและกระบวนทัศน์ OO" ทำให้ฉันสงสัยเล็กน้อย
Wonko the Sane

6

ฉันมีผู้จัดการ / ผู้นำทีมที่ดีมากที่รู้เรื่องเทคโนโลยีน้อยมากและผู้จัดการที่แย่ที่สุดของฉันบางคนเป็นคนที่คิดว่าพวกเขารู้ทุกอย่าง

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

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


4

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

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

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

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


2

จับมือกัน เริ่มต้นด้วยการจับไพรเมอร์ C # แบบง่าย ๆ แล้วเขียนโค้ด ลองทำสิ่งพื้นฐานสองสามอย่างที่คุณจะรู้วิธีปิดตาในภาษาอื่น

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

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

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


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

@MikeBrown สิ่งนี้ถือเป็นจริงถ้าตำแหน่งนั้นเป็นตำแหน่งที่จัดการ ตำแหน่งผู้นำทีมทั้งหมดที่ฉันดำรงไว้ต้องใช้การเข้ารหัสเวลาเป็นจำนวนมากนอกเหนือจากการจัดการโครงการการวางแผนและความรับผิดชอบอื่น ๆ ที่คุณคาดหวังจากตำแหน่งนี้ หาก OP กล่าวว่าเขาจะเป็นผู้จัดการจากนั้นคำตอบของฉันจะแตกต่างกันมาก
S.Robins

คุณถูก. ฉันถูกสมมติผู้จัดการจากความจริงที่ว่ามันเป็นเทคโนโลยีที่เขามีประสบการณ์ในการไม่ทำการแก้ไขและฉันจะยกเลิก downvote ของฉัน :).
ไมเคิลบราวน์

@ MikeBrown ฉันไม่แน่ใจว่าคุณต้องการแก้ไขอะไร ฉันตอบคำถามของ OP ตามคำพูดของเขาว่าเขาจะเป็นหัวหน้าโครงการ ... แต่ฉันจะขยายคำตอบเล็กน้อย :)
S.Robins

โอ้ไม่ใช่ว่าฉันรู้สึกว่าคุณจำเป็นต้องแก้ไข ... เพียงแค่นั้นดังนั้นจะไม่ให้ฉันเปลี่ยนการลงคะแนนของฉันโดยไม่ต้องแก้ไข: (
Michael Brown

1

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


1

ดูเหมือนว่าจะมีปัญหาเล็กน้อยในการเล่นที่นี่

เทคโนโลยีที่ใช้ในโครงการที่คุณเป็นผู้นำและกระบวนการที่ควบคุมการพัฒนาของโครงการนั้น

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

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

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

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

โชคดี!


0

โอกาสมาสักครู่ .. คว้ามัน .. ฉันจะบอกว่าลองเรียนรู้พื้นฐานของ C # รับบทช่วยสอนออนไลน์จากนั้นลองใช้งานดู ในขั้นต้นมันจะยากที่จะเรียนรู้แนวคิดใหม่หลังจากนั้นเมื่องานแรกของคุณทำคุณจะมีความมั่นใจในมัน

คิดในแง่บวกพยายามทำงานหนักแก้จุดบกพร่องรหัสของคุณเองและมั่นใจว่าคุณจะเชี่ยวชาญในเรื่องนี้ ..

อย่าปล่อยโอกาสของคุณ


0

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

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


-1

ฉันหลงทางเมื่อพูดถึงมาตรฐานการเขียนโปรแกรมเครื่องมือวงจรชีวิตโครงการและขั้นตอนการเผยแพร่ / แจกจ่าย

ค้นหาผลิตภัณฑ์โอเพ่นซอร์สที่ใช้เทคโนโลยีเดียวกับที่คุณจะใช้

หากเป็นไปได้ให้ค้นหาวิธีที่คล้ายกับโดเมนปัญหา สิ่งนี้ไม่สำคัญเท่ากับการค้นหาโครงการด้วยเทคโนโลยีเดียวกันและการอัปเดตที่ใช้งานอยู่

ดาวน์โหลดรหัสทำงาน อ่านมัน

คิดออกว่าพวกเขาใช้เครื่องมืออะไร ใช้มัน.

หาวิธีการสร้างและปล่อยโครงการโอเพนซอร์ซ สร้างมันและปล่อยมัน

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

ฉันไม่สงสัยเลยว่าฉันจะสามารถรับพื้นฐานได้ภายในหนึ่งหรือสองเดือน แต่มีประสบการณ์บางอย่างที่สามารถรวบรวมได้ด้วยเวลาเท่านั้น

จริง

เรียนรู้จากชุมชนโอเพนซอร์ส


2
บางครั้งผู้คนที่ทำงานในโครงการโอเพ่นซอร์สจะไม่ใช้เครื่องมือที่ดีที่สุดหรือแม้แต่ทำตามมาตรฐาน (แนวปฏิบัติที่ดี) ฉันรู้ว่าโครงการโอเพ่นซอร์สน้อย (ฉันไม่ต้องการตั้งชื่อ) ซึ่งแย่มากจริง ๆ ในแง่ของการใช้เครื่องมือที่เหมาะสมหรือแม้แต่ทำตามอนุสัญญาอุตสาหกรรม
คริสเตียน P

@ChristianP: ในขณะที่มีโครงการโอเพนซอร์สที่น้อยกว่าตัวเอกมันง่ายที่จะหาโครงการขนาดใหญ่ที่ค่อนข้างดี และการหาโครงการโอเพ่นซอร์สใด ๆเป็นตัวอย่างนั้นดีกว่าไม่มีตัวอย่างเลย
S.Lott

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