คำถามติดแท็ก teamwork

คำถามเกี่ยวกับการทำงานร่วมกับเพื่อนร่วมงานหรือทีม (คำถามจากการทำงานเป็นทีมมีความเสี่ยงที่จะถูก "ถูกพักการเรียนนอกเวลา" เนื่องจากเป็นคำแนะนำด้านอาชีพหรือการศึกษา)

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

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

23
ฉันจะจัดการกับสมาชิกในทีมที่ไม่ชอบแสดงความคิดเห็นในโค้ดได้อย่างไร
หนึ่งในสมาชิกในทีมของฉันหลีกเลี่ยงการแสดงความคิดเห็นในรหัสของเขาอย่างสม่ำเสมอ รหัสของเขาไม่ใช่การทำเอกสารด้วยตนเองและโปรแกรมเมอร์คนอื่น ๆ มีช่วงเวลาที่ยากลำบากในการทำความเข้าใจโค้ดของเขา ฉันขอให้เขาแสดงความคิดเห็นรหัสของเขาหลายครั้ง แต่เขาแค่ให้ข้อแก้ตัวหรืออ้างว่าเขาจะทำในภายหลัง ความกังวลของเขาคือการเพิ่มความคิดเห็นจะใช้เวลามากเกินไปและล่าช้าโครงการ ฉันสามารถนำเสนอข้อโต้แย้งอะไรกับเขาเพื่อโน้มน้าวให้เขาจัดทำรหัสของเขาอย่างเหมาะสม? ในบันทึกนั้นฉันผิดที่จะมุ่งเน้นไปที่ความคิดเห็นของรหัสหรือสิ่งนี้บ่งบอกถึงปัญหาที่ใหญ่กว่าซึ่งควรได้รับการแก้ไขหรือไม่?
182 teamwork  team  comments 

13
หากทีมของฉันมีทักษะต่ำฉันควรลดความสามารถของรหัสของฉันลงหรือไม่ [ปิด]
ตัวอย่างเช่นมีตัวอย่างทั่วไปใน JS เพื่อรับค่าเริ่มต้น: function f(x) { x = x || 'default_value'; } ข้อมูลโค้ดประเภทนี้ไม่สามารถเข้าใจได้ง่ายโดยสมาชิกทุกคนในทีมของฉันระดับ JS ของพวกเขาต่ำ ฉันไม่ควรใช้เคล็ดลับนี้หรือไม่? มันทำให้โค้ดอ่านน้อยลงโดยเพียร์ แต่อ่านได้มากกว่าต่อไปนี้ตาม JS dev ใด ๆ : function f(x) { if (!x) { x = 'default_value'; } } แน่นอนว่าถ้าฉันใช้เคล็ดลับนี้และเพื่อนร่วมงานเห็นมันพวกเขาก็สามารถเรียนรู้บางสิ่งได้ แต่บ่อยครั้งที่พวกเขาเห็นสิ่งนี้ว่า "พยายามฉลาด" ดังนั้นฉันควรลดระดับรหัสของฉันหรือไม่หากเพื่อนร่วมทีมของฉันมีระดับต่ำกว่าฉัน

5
ฉันก็ 'ฉลาด' เหมือนกันที่จูเนียร์ devs สามารถอ่านได้หรือไม่? การเขียนโปรแกรมที่ใช้งานได้มากเกินไปใน JS ของฉัน? [ปิด]
ฉันเป็นนักพัฒนาซอฟต์แวร์ระดับสูงที่เข้ารหัสใน Babel ES6 ส่วนหนึ่งของแอปของเราทำการเรียก API และตามแบบจำลองข้อมูลที่เราได้รับกลับมาจากการเรียก API ต้องกรอกแบบฟอร์มบางอย่าง แบบฟอร์มเหล่านั้นจะถูกเก็บไว้ในรายการที่เชื่อมโยงเป็นสองเท่า (ถ้าส่วนหลังระบุว่าข้อมูลบางอย่างไม่ถูกต้องเราสามารถนำผู้ใช้กลับไปที่หน้าหนึ่งที่พวกเขาทำผิดพลาดได้อย่างรวดเร็วแล้วนำกลับมาที่เป้าหมาย รายการ.) อย่างไรก็ตามมีฟังก์ชั่นมากมายที่ใช้ในการเพิ่มหน้าและฉันสงสัยว่าตัวเองฉลาดเกินไปหรือเปล่า นี่เป็นเพียงภาพรวมพื้นฐาน - อัลกอริทึมที่เกิดขึ้นจริงมีความซับซ้อนมากขึ้นโดยมีหน้าและประเภทหน้าเว็บที่แตกต่างกันมากมาย แต่นี่จะเป็นตัวอย่างให้คุณ นี่คือวิธีที่ฉันคิดว่าโปรแกรมเมอร์มือใหม่จะจัดการกับมัน export const addPages = (apiData) => { let pagesList = new PagesList(); if(apiData.pages.foo){ pagesList.add('foo', apiData.pages.foo){ } if (apiData.pages.arrayOfBars){ let bars = apiData.pages.arrayOfBars; bars.forEach((bar) => { pagesList.add(bar.name, bar.data); }) } if (apiData.pages.customBazes) { let …

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

11
ทีมของฉันควรเริ่มจากที่“ ทันสมัย” ที่ไหน? [ปิด]
ฉันเป็นนักพัฒนาใหม่ที่ค่อนข้างใหม่จากวิทยาลัย ในขณะที่อยู่ในวิทยาลัยและในระหว่างการหางานฉันพบว่ามีวิธีการพัฒนาซอฟต์แวร์ที่ "ทันสมัย" จำนวนมากที่การศึกษาของฉันขาด: การทดสอบหน่วยการบันทึกการทำฐานข้อมูลให้เป็นมาตรฐานการพัฒนาแบบเปรียว (เทียบกับแนวคิดแบบเปรียวทั่วไป) คู่มือ, การเปลี่ยนโครงสร้าง, การตรวจสอบโค้ด, ไม่มีวิธีการเอกสารที่เป็นมาตรฐาน (หรือแม้กระทั่งข้อกำหนด), ฯลฯ โดยรวมแล้วฉันไม่เห็นว่านี่เป็นปัญหา ฉันคาดว่างานแรกของฉันที่จะโอบกอดความคิดเหล่านี้ทั้งหมดและเพื่อสอนพวกเขาให้ฉันในงาน จากนั้นผมได้งานแรกของฉัน (การพัฒนาเว็บแบบเต็มสแต็ค) ที่เป็น บริษัท ขนาดใหญ่และฉันรู้ว่าเราทำไม่มีสิ่งเหล่านี้ ในความเป็นจริงฉันเป็นคนที่มีประสบการณ์น้อยที่สุดในทีมเป็นคนที่พยายามเป็นหัวหอกในการนำทีมของฉันให้เร็วขึ้นด้วยเทคนิคการเขียนโปรแกรม "ทันสมัย" เพราะฉันกังวลว่าการไม่ทำเช่นนั้นคือการฆ่าตัวตายอย่างมืออาชีพ ก่อนอื่นฉันเริ่มด้วยซอฟต์แวร์การบันทึก (log4J) แต่จากนั้นฉันก็รีบเขียนการแนะนำสไตล์ของตัวเองแล้วละทิ้งมันไปสู่การแนะนำสไตล์ Google - จากนั้นฉันก็รู้ว่าการพัฒนาเว็บ Java ของเราใช้ตัวควบคุมด้านหน้าเขียนด้วยมือ การยอมรับสปริงของเรา - แต่จากนั้นฉันก็รู้ว่าเราไม่ได้ทำการทดสอบหน่วย แต่ฉันก็เรียนรู้ฤดูใบไม้ผลิแล้วและอย่างที่คุณเห็นมันจะท่วมท้นเร็วเกินไปโดยเฉพาะเมื่อจับคู่กับงานพัฒนาปกติ ยิ่งไปกว่านั้นมันยากสำหรับฉันที่จะกลายเป็น "ผู้เชี่ยวชาญ" เพียงพอในวิธีการเหล่านี้ในการสอนคนอื่นในพวกเขาโดยไม่ต้องสละเวลามากเกินไปให้กับพวกเขาคนเดียว จากเทคนิคเหล่านี้ทั้งหมดที่ฉันเห็นว่า "คาดหวัง" ในโลกการพัฒนาซอฟต์แวร์ในปัจจุบันฉันจะรวมพวกเขาเข้ากับทีมในฐานะผู้เล่นใหม่โดยไม่ครอบงำทั้งตัวฉันและทีมได้อย่างไร ฉันจะทำให้ทีมของฉันมีความคล่องตัวมากขึ้นได้อย่างไร มีความเกี่ยวข้อง แต่ฉันไม่ได้เป็นนักพัฒนาแบบ Agile อย่างผู้ถามที่นี่และฉันกำลังดูชุดวิธีการที่กว้างกว่า Agile
106 agile  teamwork 

30
โปรแกรมเมอร์ในตะวันตกเห็นโปรแกรมเมอร์ในตะวันออกได้อย่างไร
อีกครึ่งหนึ่งของคำถามนี้: โปรแกรมเมอร์ในภาคตะวันออกเห็นโปรแกรมเมอร์ในตะวันตกได้อย่างไร ภาคตะวันออกของโลก (อินเดีย / จีน / ฟิลิปปินส์) ส่วนใหญ่ให้บริการเอาท์ซอร์สไปยังโลกตะวันตก (สหรัฐอเมริกาและยุโรป) คุณมีประสบการณ์ในการทำงานกับทีมในต่างประเทศหรือไม่? ถ้าใช่มันเป็นอย่างไร คุณมีความคิดเห็นทั่วไปหรือความคิดเห็นเกี่ยวกับโปรแกรมเมอร์จากตะวันออก (เช่นร่วมมือกันส่งตรงเวลาหรือทำงานที่มีคุณภาพหรือไม่) สิ่งเหล่านี้มีพื้นฐานมาจากอะไร?
101 teamwork 

13
วิธีการเตือนโปรแกรมเมอร์อื่น ๆ ของการใช้งานในชั้นเรียน
ฉันกำลังเขียนชั้นเรียนที่ "ต้องใช้ในทางที่เฉพาะเจาะจง" (ฉันเดาว่าชั้นเรียนทั้งหมดต้อง ... ) ตัวอย่างเช่นผมสร้างfooManagerชั้นซึ่งต้องมีInitialize(string,string)การเรียกร้องให้พูดให้ และเพื่อผลักดันตัวอย่างต่อไปอีกเล็กน้อยชั้นเรียนจะไร้ประโยชน์หากเราไม่ฟังการThisHappenedกระทำของมัน ประเด็นของฉันคือชั้นเรียนที่ฉันเขียนต้องใช้วิธีการโทร แต่มันจะรวบรวมได้ดีถ้าคุณไม่เรียกวิธีการเหล่านั้นและจะจบลงด้วย FooManager ใหม่ที่ว่างเปล่า ในบางจุดมันอาจจะไม่ทำงานหรืออาจผิดพลาดขึ้นอยู่กับคลาสและสิ่งที่ทำ โปรแกรมเมอร์ที่ใช้ชั้นเรียนของฉันจะมองเข้าไปข้างในอย่างชัดเจนและตระหนักว่า "โอ้ฉันไม่ได้เรียก Initialize!" และมันก็ใช้ได้ แต่ฉันไม่ชอบมัน สิ่งที่ฉันต้องการนึกคิดคือรหัสที่จะไม่คอมไพล์หากไม่มีการเรียกใช้เมธอด ฉันเดาว่ามันเป็นไปไม่ได้ หรือบางสิ่งที่จะมองเห็นได้ชัดเจนทันที ฉันพบว่าตัวเองมีปัญหาด้วยวิธีการปัจจุบันที่ฉันมีที่นี่ซึ่งต่อไปนี้: เพิ่มค่าบูลีนส่วนตัวในชั้นเรียนและตรวจสอบทุกที่ที่จำเป็นหากมีการเริ่มต้นชั้นเรียน ถ้าไม่ฉันจะโยนข้อยกเว้นว่า "ชั้นไม่ได้เริ่มต้นคุณแน่ใจหรือว่าคุณโทร.Initialize(string,string)?" ฉันค่อนข้างโอเคกับวิธีการนี้ แต่มันนำไปสู่โค้ดจำนวนมากที่ถูกคอมไพล์และในที่สุดก็ไม่จำเป็นสำหรับผู้ใช้ปลายทาง นอกจากนี้บางครั้งรหัสก็ยิ่งมากขึ้นเมื่อมีวิธีการมากกว่าการInitiliazeโทร ฉันพยายามทำให้ชั้นเรียนของฉันมีวิธีการ / การกระทำสาธารณะไม่มากเกินไป แต่นั่นก็ไม่ได้แก้ปัญหา แต่ก็ทำให้มันสมเหตุสมผล สิ่งที่ฉันกำลังมองหาคือ วิธีการของฉันถูกต้องหรือไม่ มีดีกว่าไหม พวกคุณทำอะไร / ให้คำแนะนำ? ฉันพยายามที่จะแก้ปัญหาที่ไม่ใช่ปัญหาหรือไม่? ฉันได้รับการบอกเล่าจากเพื่อนร่วมงานว่าเป็นโปรแกรมเมอร์ที่จะตรวจสอบชั้นเรียนก่อนที่จะพยายามใช้ ฉันไม่เห็นด้วยอย่างเคารพ แต่นั่นเป็นอีกเรื่องที่ฉันเชื่อ พูดง่ายๆก็คือฉันกำลังพยายามหาวิธีที่จะไม่ลืมที่จะโทรออกเมื่อมีการนำคลาสนั้นมาใช้ในภายหลังหรือโดยคนอื่น การจำแนก: เพื่อชี้แจงคำถามมากมายที่นี่: ฉันไม่เพียง แต่พูดถึงส่วนเริ่มต้นของชั้นเรียนเท่านั้น แต่ยังเป็นตลอดชีวิต ป้องกันไม่ให้เพื่อนร่วมงานเรียกวิธีการสองครั้งตรวจสอบให้แน่ใจว่าพวกเขาเรียก X …

13
วิธีจัดการกับโค้ด 'เกือบจะดี' จากนักพัฒนารุ่นเยาว์ [ปิด]
ฉันมีคำถามเกี่ยวกับการจัดการทีม ตอนนี้ฉันกำลังติดต่อกับนักพัฒนารุ่นน้องที่ทำงานจากระยะไกลจากโรงงานเข้ารหัส ผู้ชายคนนี้เปิดรับการวิจารณ์และยินดีที่จะเรียนรู้ แต่ฉันมีข้อสงสัยว่าฉันควรผลักดันบางสิ่ง ตอนนี้เมื่อมีบางสิ่งที่ตรงและชัดเจนว่าเป็นการละเมิดแนวปฏิบัติที่ดี: เช่นการละเมิด SRP วัตถุพระเจ้าชื่อที่ไม่มีความหมายสำหรับวิธีการหรือตัวแปร ฉันชี้ให้เห็นสิ่งที่เขาต้องแก้ไขและพยายามอธิบายว่าทำไมมันผิด คำถามของฉันคือ: ฉันจะหยุดเมื่อไหร่ ตอนนี้ถ้ามีการละเมิดเล็กน้อยของรูปแบบการเข้ารหัสเช่นชื่อตัวแปรในภาษาที่ไม่ถูกต้อง (ทีมก่อนหน้าผสมสเปนและอังกฤษและฉันกำลังพยายามแก้ไขปัญหานั้น) หรือปัญหาโครงสร้างเล็กน้อยที่ฉันปล่อยและแก้ไขถ้า ฉันมีเวลาว่างหรือต้องการแก้ไขคลาสที่มีปัญหา ฉันรู้สึกว่านี่เป็นสิ่งที่ดีสำหรับขวัญกำลังใจของทีมดังนั้นฉันจึงไม่กดรหัสกลับไปเรื่อย ๆ เกี่ยวกับสิ่งที่มือใหม่อาจดูเหมือนรายละเอียดเล็กน้อยซึ่งค่อนข้างน่าหงุดหงิด แต่ฉันก็กังวลว่าการที่ 'อ่อน' เกินไปอาจป้องกันผู้ชาย จากการเรียนรู้วิธีทำบางสิ่ง ฉันจะรักษาความสมดุลระหว่างการสอนผู้ชายกับไม่วิจารณ์เขาอย่างต่อเนื่องได้อย่างไร? สำหรับรุ่นน้องมันน่าหงุดหงิดถ้าคุณบอกให้เขาทำซ้ำสิ่งที่ตาของเขากำลังทำงานอยู่

10
วิธีการจูงใจเพื่อนร่วมงานให้เขียนการทดสอบหน่วย? [ปิด]
เรากำลังทำงานเกี่ยวกับผลิตภัณฑ์ขนาดใหญ่ที่ได้รับการผลิตประมาณ 5 ปี codebase นั้น .. กำลังทำงานอยู่ ไม่ค่อยดี แต่มันใช้งานได้ ฟีเจอร์ใหม่ ๆ จะถูกนำไปผลิตและทดสอบด้วย QA ขนาดเล็ก ข้อบกพร่องได้รับการแก้ไข ฯลฯ แต่ไม่มีใครยกเว้นฉันเขียนการทดสอบหน่วย ไม่มีใครใช้พลังของ "การติดตาม" ข้อบกพร่องลงโดยการเขียนการทดสอบหน่วยเพื่อให้แน่ใจว่าข้อผิดพลาดพิเศษ (กรณีทดสอบ) นี้จะไม่เกิดขึ้นอีกเลย ฉันได้คุยกับฝ่ายบริหาร ฉันได้พูดคุยกับนักพัฒนา ฉันได้พูดคุยกับทุกคนใน บริษัท ทั้งหมด ทุกคนพูดว่า: "ใช่เราต้องเขียนบททดสอบเพิ่มอีก!" ประมาณหนึ่งปีที่แล้ว ตั้งแต่นั้นมาฉันได้บังคับให้แนะนำการตรวจสอบโค้ดล่วงหน้า ( Gerrit ) และการรวมอย่างต่อเนื่อง ( Jenkins ) ฉันจัดการประชุมเกี่ยวกับการทดสอบหน่วยและฉันก็แสดงให้เห็นถึงประโยชน์ของการเขียนการทดสอบหน่วย แต่ดูเหมือนไม่มีใครสนใจ คำถามที่ 1: ฉันจะกระตุ้นเพื่อนร่วมงานให้เขียนการทดสอบหน่วยได้อย่างไร Q2: ฉันจะยังคงมีแรงจูงใจในการปฏิบัติตามมาตรฐานคุณภาพรหัสส่วนตัวของฉันได้อย่างไร (บางครั้งมันน่าผิดหวังจริงๆ!) PS: ข้อเท็จจริงที่น่าผิดหวังบางอย่าง (เข้าถึงได้ใน 1 …

19
โปรแกรมเมอร์ในภาคตะวันออกมองเห็นโปรแกรมเมอร์ในตะวันตกได้อย่างไร
อีกครึ่งหนึ่งของคำถามนี้: โปรแกรมเมอร์ในเวสต์เห็นโปรแกรมเมอร์ในตะวันออกได้อย่างไร ฉันคิดว่ามันน่าสนใจและสำคัญมากที่จะเห็นว่าโปรแกรมเมอร์ในภาคตะวันออกมองโปรแกรมเมอร์ในทิศตะวันตกอย่างไร ส่วนทางตะวันออกของโลก (อินเดีย / จีน / ฟิลิปปินส์) มักถูกมองว่าเป็นการให้บริการเอาท์ซอร์สไปยังโลกตะวันตก (สหรัฐอเมริกาและยุโรป) เป็นหลัก คุณมีประสบการณ์ในการทำงานเป็นส่วนหนึ่งของทีมต่างประเทศหรือไม่? ถ้าใช่มันเป็นอย่างไร คุณมีความคิดทั่วไปหรือความคิดเห็นเกี่ยวกับโปรแกรมเมอร์จากตะวันตก (เช่นร่วมมือกันส่งตรงเวลาหรือทำงานคุณภาพหรือไม่)
89 teamwork  culture 

21
คุณจะตอบสนองอย่างไรถ้ามีคนบอกว่ารหัสของคุณยุ่งเหยิง?
ฉันเป็นโปรแกรมเมอร์ที่ดีหรือฉันคิดอย่างนั้นมาก่อน ฉันรักการเขียนโปรแกรมเสมอ และฉันต้องการเรียนรู้หลายสิ่งหลายอย่างเกี่ยวกับการเขียนโปรแกรมเพื่อทำให้ฉันเป็นโปรแกรมเมอร์ที่ดีขึ้น ฉันศึกษาการเขียนโปรแกรมเป็นเวลา 1 ปีและตอนนี้ฉันทำงานเป็นโปรแกรมเมอร์เกือบ 2 ปี ดังนั้นในระยะสั้นฉันมีประสบการณ์การเขียนโปรแกรมเกือบ 3 ปี ทีมงานของเราประกอบด้วยโปรแกรมเมอร์ 5 คนและเรา 4 คนใหม่ 1 คนมีประสบการณ์มากกว่า 3 ปี เราได้ทำงานกับโปรแกรมมาเกือบปีแล้วและไม่มีใครเคยตรวจสอบรหัสของฉันและฉันได้รับหน้าที่ให้ทำงานด้วย เราไม่เคยมีรีวิวรหัสและเราใหม่ทั้งหมดดังนั้นเราไม่ทราบว่ารหัสที่สะอาดดูเหมือนอะไร ฉันคิดว่าโปรแกรมเมอร์เรียนรู้ด้วยตัวเองเหรอ? เราปรับใช้โปรแกรมของเรากับโปรแกรมโดยไม่มีการทดสอบอย่างละเอียด ตอนนี้มันแน่นและเราต้องได้รับการอนุมัติและตรวจสอบรหัสก่อนที่เราจะทำการเปลี่ยนแปลงกับรหัส เป็นครั้งแรกที่มีคนตรวจสอบรหัสของฉันและเขาบอกว่ามันไม่เป็นระเบียบ ฉันรู้สึกเศร้าและเจ็บปวดมาก ฉันรักการเขียนโปรแกรมและทำให้พวกเขาพูดอะไรบางอย่างที่ทำให้ฉันเจ็บจริงๆ ฉันต้องการพัฒนาตนเอง แต่ดูเหมือนว่าฉันไม่ใช่โปรแกรมเมอร์อัจฉริยะเหมือนในภาพยนตร์ คุณสามารถให้คำแนะนำกับฉันให้ดีขึ้นได้อย่างไร คุณเคยพบเห็นบางสิ่งที่วิจารณ์รหัสของคุณและคุณรู้สึกเจ็บจริง ๆ ไหม? คุณทำอะไรกับเหตุการณ์เหล่านั้น

16
ฉันจะจัดการกับเพื่อนร่วมงานที่ช้าและไม่ทุ่มเทในทีมได้อย่างไร [ปิด]
ฉันทำงานเกี่ยวกับโครงการใหม่ โครงการทำงานดังนี้: ผู้ใช้สามารถเข้าถึงเว็บแอพได้โดยใช้ลิงค์และเขาสามารถเพิ่มหลายระบบในเครือข่ายของเขาและจัดการรายละเอียดของระบบนั้น ๆ ส่วนของฉันเกี่ยวข้องกับส่วนหน้าและเว็บเซิร์ฟเวอร์ซึ่งทำในหลาม หลามของฉันสื่อสารกับโครงการจริงซึ่งทำใน c & c ++ ทั้งหมด โครงการ c / c ++ เป็นแอพหลักที่ใช้งานได้ทั้งหมด หลามของฉันส่งคำขอของผู้ใช้ไปยังมันและแสดงการตอบสนองจากมันไปยังผู้ใช้ ฉันคุ้นเคยกับงานของฉันมากและจะเสร็จเร็ว ๆ นี้ เนื่องจากนั่นไม่ได้ทำงานมากในนั้น และฉันเป็นคนที่ชอบทำงาน ฉันใช้เวลาส่วนใหญ่ในสำนักงานและกลับบ้านเมื่อฉันรู้สึกง่วงนอนเท่านั้น แอป c / c ++ ได้รับการจัดการโดยเพื่อนร่วมงานอีกคนที่มีประสบการณ์มากกว่า 5 ปีและสามารถทำสิ่งต่าง ๆ ได้เร็วกว่าฉันมาก แต่เขาไม่เคยทำเลย อาจเป็นเพราะเขาไม่ชอบทำ แอพของเขาล้มเหลวบ่อยครั้งเมื่อหลามของฉันสื่อสารกับมันหรือคืนค่าผิด มันเต็มไปด้วยข้อบกพร่อง เนื่องจากแอพของฉันขึ้นอยู่กับว่าฉันกำลังสร้างมันยาก แทนที่จะแก้ไขข้อบกพร่องเขาขอให้ฉันทำให้งานของฉันช้าลง เขาขอให้ฉันบอกผู้จัดการว่างานของฉันต้องใช้เวลานานมาก เขาขอให้ฉันหลอกผู้จัดการและบังคับให้ฉันทำงานช้าเหมือนเขา ในระหว่างการประชุมโครงการเมื่อผู้จัดการถามเขาเกี่ยวกับข้อบกพร่องเขาบอกว่าเขาแก้ไขทุกอย่างและทำงานได้ดี เนื่องจากเขาเป็นเพื่อนร่วมงานของฉันฉันจึงไม่สามารถบอกอะไรกับผู้จัดการได้ เห็นได้ชัดว่าฉันต้องมีความสัมพันธ์ที่ดีกับเพื่อนร่วมงานมากกว่าผู้จัดการของฉันเนื่องจากส่วนใหญ่เราจะอยู่กับเพื่อนร่วมงานไม่ใช่ผู้จัดการ ฉันไม่สามารถบอกอะไรเกี่ยวกับเรื่องนี้กับผู้จัดการได้เพราะถ้าผู้จัดการถามเขาว่าทำไมเขาอาจคิดว่าฉันบ่นกับเขาถึงผู้จัดการ และเขายังโกหกต่อไปในการประชุม และเนื่องจากเขาแก้ไขข้อผิดพลาดอย่างช้าๆมันก็ยิ่งทำให้งานของฉันช้าลง ตอนนี้ฉันคิดถึงการทำงานในส่วนหน้าของแอพของฉันและทำให้มันเสร็จสิ้นเพื่อว่าในเวลาเดียวกันเขาสามารถทำให้โครงการของเขามีเสถียรภาพ ตอนนี้เขาขอให้ฉันบอกผู้จัดการว่าส่วนหน้าของฉันต้องการงานจำนวนมากและฉันอาจต้องใช้เวลามากขึ้นเพื่อที่เขาจะสามารถลากโครงการลง …
85 teamwork 

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

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