คำถามติดแท็ก project-management

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

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

30
เหตุใดอุตสาหกรรมไอทีจึงไม่สามารถส่งมอบโครงการขนาดใหญ่ที่ปราศจากข้อผิดพลาดได้อย่างรวดเร็วเหมือนในอุตสาหกรรมอื่น ๆ
หลังจากดูซีรีส์ MegaStructuresของ National Geographic ฉันรู้สึกประหลาดใจที่โครงการขนาดใหญ่เสร็จสมบูรณ์ เมื่อทำงานเบื้องต้น (การออกแบบรายละเอียดอื่น ๆ ) จะทำบนกระดาษสำนึกตัวเองของโครงการขนาดใหญ่ที่ใช้เวลาเพียงไม่กี่ปีหรือบางครั้งไม่กี่เดือน ตัวอย่างเช่นแอร์บัส A380 "เปิดตัวอย่างเป็นทางการในวันที่ 19 ธันวาคม 2000" และ "ในช่วงต้นเดือนมีนาคม 2548"เครื่องบินได้ทำการทดสอบแล้ว เช่นเดียวกันกับเรือบรรทุกน้ำมันขนาดใหญ่ตึกระฟ้า ฯลฯ เมื่อเทียบกับความล่าช้าในอุตสาหกรรมซอฟต์แวร์ฉันไม่สามารถช่วยสงสัยได้ว่าทำไมโครงการไอทีส่วนใหญ่จึงช้าหรือแม่นยำกว่าทำไมพวกเขาจึงไม่รวดเร็วและไม่ผิดพลาดในระดับเดียวกันทำให้มีคนมากพอ? โครงการต่างๆเช่น Airbus A380 มีทั้ง: ความเสี่ยงที่คาดไม่ถึงที่สำคัญ: แม้ว่านี่จะไม่ใช่เครื่องบินลำแรกที่สร้างขึ้น แต่ก็ยังคงผลักดันขีด จำกัด ของเทคโนโลยีและสิ่งต่าง ๆ ที่ทำงานได้ดีสำหรับสายการบินขนาดเล็กอาจไม่ทำงานสำหรับเครื่องบินที่ใหญ่กว่าเนื่องจากข้อ จำกัด ทางกายภาพ ในทำนองเดียวกันเทคโนโลยีใหม่ที่ใช้ซึ่งยังไม่ได้ใช้เพราะตัวอย่างเช่นพวกเขายังไม่พร้อมใช้งานในปี 1969 เมื่อโบอิ้ง 747 เสร็จสิ้น ความเสี่ยงที่เกี่ยวข้องกับทรัพยากรมนุษย์และการจัดการโดยทั่วไป: ผู้คนเลิกกลางโครงการไม่สามารถเข้าถึงบุคคลเพราะเธออยู่ในช่วงหยุดพักร้อนข้อผิดพลาดทั่วไปของมนุษย์ ฯลฯ ด้วยความเสี่ยงเหล่านี้ผู้คนยังคงประสบความสำเร็จในโครงการเช่นสายการบินขนาดใหญ่เหล่านั้นในระยะเวลาอันสั้นและแม้จะมีความล่าช้าในการส่งมอบโครงการเหล่านั้นก็ยังคงประสบความสำเร็จอย่างมากและมีคุณภาพสูง เมื่อพูดถึงการพัฒนาซอฟต์แวร์โครงการขนาดใหญ่และซับซ้อนเหมือนสายการบิน (ทั้งในเชิงเทคนิคและในแง่ของการจัดการ) และมีความเสี่ยงที่ไม่คาดคิดจากโลกจริงน้อยลงเล็กน้อย อย่างไรก็ตามโครงการไอทีส่วนใหญ่นั้นช้าและล่าช้าและการเพิ่มนักพัฒนาให้กับโครงการไม่ใช่ทางออก (จากทีมนักพัฒนาสิบถึงสองพันคนบางครั้งจะอนุญาตให้ส่งมอบโครงการเร็วขึ้นบางครั้งก็ไม่ได้และบางครั้งจะเป็นอันตรายต่อ โครงการและเพิ่มความเสี่ยงของการไม่จบเลย) …

19
ฉันได้รับรหัสปาเก็ตตี้ 200K บรรทัดแล้วตอนนี้เป็นอย่างไร
ฉันหวังว่านี่ไม่ใช่คำถามทั่วไปเกินไป ฉันสามารถใช้คำแนะนำที่ปรุงรสได้จริงๆ ฉันเพิ่งได้รับการว่าจ้างให้เป็น "SW Engineer" แต่เพียงผู้เดียวในร้านค้าเล็ก ๆ ของนักวิทยาศาสตร์ที่ใช้เวลา 10-20 ปีที่ผ่านมาในการปูก้อนกรวดด้วยกันเป็นฐานรหัสที่กว้างใหญ่ (มันถูกเขียนในภาษาที่ล้าสมัยจริง: G2 - คิดว่า Pascal ด้วยกราฟิก) ตัวโปรแกรมเองเป็นแบบจำลองทางกายภาพของโรงงานแปรรูปสารเคมีที่ซับซ้อน ทีมที่เขียนมันมีความรู้เกี่ยวกับโดเมนอย่างไม่น่าเชื่อ แต่มีการฝึกอบรมอย่างเป็นทางการเพียงเล็กน้อยในการเขียนโปรแกรมพื้นฐาน พวกเขาเพิ่งเรียนรู้บทเรียนที่ยากลำบากเกี่ยวกับผลที่ตามมาของการจัดการการกำหนดค่าที่ไม่มีอยู่จริง ความพยายามในการบำรุงรักษาของพวกเขายังถูกขัดขวางอย่างมากจากการสะสม "ตะกอน" ที่ไม่มีเอกสารในรหัสด้วย ฉันจะให้คุณ "การเมือง" ของสถานการณ์ (มีเสมอ การเมือง!) แต่ก็เพียงพอที่จะบอกว่าไม่มีความเห็นเป็นเอกฉันท์เกี่ยวกับสิ่งที่จำเป็นสำหรับเส้นทางข้างหน้า พวกเขาขอให้ฉันเริ่มนำเสนอหลักการบางประการของการพัฒนาซอฟต์แวร์ที่ทันสมัยให้กับทีม พวกเขาต้องการให้ฉันแนะนำวิธีปฏิบัติและกลยุทธ์มาตรฐานอุตสาหกรรมบางประการเกี่ยวกับข้อกำหนดการเข้ารหัสการจัดการวงจรชีวิตรูปแบบการออกแบบระดับสูงและการควบคุมแหล่งที่มา ตรงไปตรงมามันเป็นงานที่ค่อนข้างน่ากลัวและฉันไม่แน่ใจว่าจะเริ่มต้นที่ไหน ในตอนแรกฉันมีแนวโน้มที่จะสอนพวกเขาในบางแนวคิดหลักของThe Pragmatic ProgrammerหรือRefactoringของ Fowler ("Code Smells" ฯลฯ ) ฉันหวังว่าจะแนะนำวิธีการแบบ Agile จำนวนมาก แต่ท้ายที่สุดเพื่อให้มีประสิทธิภาพฉันคิดว่าฉันจะต้องฝึกฝนพื้นฐาน 5-7 หลัก กล่าวอีกนัยหนึ่งอะไรคือหลักการหรือวิธีปฏิบัติที่สำคัญที่สุดที่พวกเขาสามารถเริ่มใช้งานได้อย่างแนบเนียน นั่นคือคำถามของฉัน: สิ่งที่คุณจะรวมไว้ในรายการกลยุทธ์ที่มีประสิทธิภาพที่สุดเพื่อช่วยยืดเส้นสปาเก็ตตี้ออกไป (และป้องกันไม่ให้เกิดขึ้นในอนาคต)

20
ฉันจะประพฤติตนเป็นผู้พัฒนาในโครงการที่มุ่งหน้าสู่ความล้มเหลวได้อย่างไร
ฉันเป็นนักพัฒนาในทีม 5 คนและฉันเชื่อว่าโครงการของเรามุ่งเน้นไปที่ภัยพิบัติ ฉันจะอธิบายว่าทำไมในอีกสักครู่ แต่คำถามของฉันคือ: ฉันจะทำงานได้อย่างไร กำหนดเส้นตายใน 1.5 เดือนและฉันรู้สึกว่าไม่ว่าเราจะทำอะไรโครงการนี้จะล้มเหลว ฉันเห็นว่าเราควรยุติโครงการและหยุดการสูญเสียเวลา แต่ในทางการเมืองฉันคิดว่ามันเป็นไปไม่ได้ที่ผู้จัดการของเราจะทำเช่นนั้น ฉันควรทำอย่างไรในกรณีนี้? ฉันควรจะใช้ความพยายามพิเศษหรือควรใช้ง่ายไหม? และฉันควรพูดกับผู้จัดการอย่างไร เหตุผลที่โครงการนี้มุ่งหน้าไปสู่ความล้มเหลว: ด้วยกำหนดเส้นตายที่กำลังจะมาถึงคุณสมบัติที่ต้องมีมากมายยังไม่เสร็จสิ้น แอปพลิเคชันไม่เสถียรและใช้งานยากมาก ระบบมีความซับซ้อนมากรหัสยากที่จะเข้าใจยากมากที่จะเปลี่ยนแปลง - โมเดลข้อมูลถูกขับเคลื่อนโดยฐานข้อมูลเชิงสัมพันธ์ที่ซับซ้อน (100+ ตาราง) ความเป็นผู้นำที่ไม่ชัดเจน ผู้จัดการตอบกลับข้อมูลใหม่พร้อมการเปลี่ยนแปลงครั้งสำคัญ เกือบจะไม่มีการทดสอบอัตโนมัติหรือการทดสอบหน่วย อย่างหนักขึ้นอยู่กับระบบอื่น ๆ แต่ยังไม่มีการทดสอบการรวม ในความเป็นจริงเราเพิ่งได้รับโครงการนี้ (พร้อมกับระเบียบ) ประมาณ 1-2 เดือนที่ผ่านมาจากทีมพัฒนาอื่นภายใต้ผู้จัดการเดียวกันซึ่งทำงานในโครงการนี้มาสองสามเดือน

12
กลยุทธ์ในการเก็บรักษาข้อมูลลับเช่นคีย์ API อยู่นอกการควบคุมของแหล่งที่มาหรือไม่
ฉันกำลังทำงานบนเว็บไซต์ที่จะอนุญาตให้ผู้ใช้เข้าสู่ระบบโดยใช้ข้อมูลประจำตัว OAuth จาก Twitter, Google และอื่น ๆ ในการทำเช่นนี้ฉันต้องลงทะเบียนกับผู้ให้บริการที่หลากหลายเหล่านี้และรับคีย์ API ลับสุดยอดที่ฉันมี เพื่อปกป้องด้วยคำมั่นสัญญาจากส่วนต่างๆของร่างกาย หากคีย์ของฉันถูก ganked ส่วนนั้นจะถูกดึง คีย์ API ต้องเดินทางไปพร้อมกับที่มาของฉันเนื่องจากมันถูกใช้ที่รันไทม์เพื่อทำการร้องขอการตรวจสอบสิทธิ์ ในกรณีของฉันคีย์ต้องมีอยู่ภายในแอปพลิเคชันในไฟล์กำหนดค่าหรือภายในโค้ดเอง นั่นไม่ใช่ปัญหาเมื่อฉันสร้างและเผยแพร่จากเครื่องเดียว อย่างไรก็ตามเมื่อเราส่งการควบคุมแหล่งที่มาลงในการผสมสิ่งต่าง ๆ ก็ซับซ้อนขึ้น ในฐานะที่ฉันเป็นไอ้เลวราคาถูกฉันก็อยากใช้บริการควบคุมแหล่งข้อมูลฟรีเช่น TFS ในคลาวด์หรือ GitHub สิ่งนี้ทำให้ฉันมีปริศนาเล็กน้อย: ฉันจะรักษาร่างกายของฉันให้เหมือนเดิมได้อย่างไรเมื่อคีย์ API ของฉันอยู่ในรหัสของฉันและรหัสของฉันจะมีอยู่ในที่เก็บสาธารณะ ฉันสามารถนึกถึงวิธีการต่าง ๆ ในการจัดการกับสิ่งนี้ แต่ไม่มีวิธีใดที่น่าพอใจ ฉันสามารถลบข้อมูลส่วนตัวทั้งหมดจากรหัสและแก้ไขกลับมาหลังจากการใช้งาน นี่จะเป็นความเจ็บปวดที่รุนแรงในการติดตั้ง (ฉันจะไม่ให้รายละเอียดหลาย ๆ วิธี) และไม่ใช่ตัวเลือก ฉันสามารถเข้ารหัสได้ แต่เมื่อฉันต้องถอดรหัสมันทุกคนที่มีแหล่งที่มาสามารถคิดวิธีการดังกล่าว ไม่มีจุดหมาย ฉันสามารถจ่ายสำหรับการควบคุมแหล่งข้อมูลส่วนตัว ฮ่า ๆ j / k ใช้เงินไหม …

17
คุณสมดุลระหว่าง“ ทำถูกต้อง” และ“ ทำเร็วที่สุด” ในการทำงานประจำวันของคุณอย่างไร? [ปิด]
ฉันพบว่าตัวเองครุ่นคิดกับคำถามนี้เป็นครั้งคราวอีกครั้งและอีกครั้ง ฉันต้องการทำสิ่งที่ถูกต้องในการเขียนโค้ดที่สะอาดเข้าใจและถูกต้องซึ่งง่ายต่อการบำรุงรักษา อย่างไรก็ตามสิ่งที่ฉันทำคือการเขียนแพทช์ลงบนแพทช์ เพียงเพราะไม่มีเวลาลูกค้ากำลังรอข้อผิดพลาดควรได้รับการแก้ไขในชั่วข้ามคืน บริษัท กำลังสูญเสียเงินในปัญหานี้ผู้จัดการก็กดยาก ฯลฯ ฉันรู้ดีว่าในระยะยาวฉันจะเสียเวลามากขึ้นในการแก้ไข แต่เมื่อถึงเวลาทำงานหลายเดือนไม่มีใครใส่ใจ ในฐานะที่เป็นหนึ่งในผู้จัดการของฉันเคยพูดว่า: "เราไม่ทราบว่าจะมีในระยะยาวถ้าเราไม่แก้ไขในตอนนี้" ฉันแน่ใจว่าฉันไม่ใช่คนเดียวที่ถูกขังอยู่ในวัฏจักรทางเลือกที่เหมาะสมที่สุด ดังนั้นเพื่อนโปรแกรมเมอร์ของฉันจะรับมือกับสิ่งนี้ได้อย่างไร ปรับปรุง: ขอบคุณทุกท่านสำหรับการสนทนาที่น่าสนใจนี้ เป็นเรื่องน่าเศร้าที่ผู้คนจำนวนมากต้องเลือกประจำวันระหว่างปริมาณและคุณภาพของรหัส ยังมีอีกหลายคนที่คิดว่าเป็นไปได้ที่จะชนะการต่อสู้ครั้งนี้ดังนั้นขอขอบคุณทุกท่านที่ให้กำลังใจ

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

30
เป็นเรื่องผิดปกติสำหรับ บริษัท ขนาดเล็ก (นักพัฒนา 15 คน) ที่จะไม่ใช้การควบคุมแหล่งที่มา / รุ่นที่จัดการหรือไม่ [ปิด]
ไม่ใช่คำถามทางเทคนิค แต่มีคำถามอื่น ๆ อีกมากมายเกี่ยวกับการควบคุมแหล่งที่มาและแนวปฏิบัติที่ดีที่สุด บริษัท ที่ฉันทำงานด้วย (ซึ่งจะไม่เปิดเผยชื่อ) ใช้เครือข่ายแชร์เพื่อโฮสต์ซอร์สโค้ดและโค้ดที่นำออกใช้ เป็นความรับผิดชอบของนักพัฒนาหรือผู้จัดการในการย้ายซอร์สโค้ดไปยังโฟลเดอร์ที่ถูกต้องด้วยตนเองโดยขึ้นอยู่กับว่ามันเปิดตัวแล้วหรือยังและเป็นเวอร์ชั่นอะไร เรามีสเปรดชีตหลายจุดที่เราบันทึกชื่อไฟล์และเวอร์ชันและสิ่งที่เปลี่ยนแปลงไปและบางทีมก็ใส่รายละเอียดของเวอร์ชันต่าง ๆ ไว้ที่ด้านบนของแต่ละไฟล์ แต่ละทีม (2-3 ทีม) ดูเหมือนจะทำสิ่งนี้แตกต่างกันภายใน บริษัท อย่างที่คุณสามารถจินตนาการได้มันเป็นระเบียบที่จัดระเบียบเพราะ "คนที่ใช่" รู้ว่าสิ่งของของพวกเขาอยู่ที่ไหน แต่เป็นระเบียบเพราะมันแตกต่างกันไป ฉันพยายามผลักดันการควบคุมแหล่งที่มาที่มีการจัดการมาระยะหนึ่งแล้ว แต่ดูเหมือนว่าฉันจะไม่ได้รับการสนับสนุนเพียงพอภายใน บริษัท ข้อโต้แย้งหลักของฉันคือ: ปัจจุบันเรามีช่องโหว่; ณ จุดใด ๆ ที่ใครบางคนอาจลืมที่จะทำหนึ่งในหลาย ๆ การกระทำที่เราต้องทำซึ่งอาจหมายถึงการจัดเก็บทั้งเวอร์ชันไม่ถูกต้อง อาจต้องใช้เวลาหลายชั่วโมงหรือหลายวันกว่าจะแยกรุ่นกลับมารวมกันหากจำเป็น เรากำลังพัฒนาคุณสมบัติใหม่พร้อมกับการแก้ไขข้อบกพร่องและมักจะต้องชะลอการปล่อยของหนึ่งหรืออื่น ๆ เพราะงานบางอย่างยังไม่เสร็จสมบูรณ์ เราต้องบังคับให้ลูกค้าใช้เวอร์ชันที่มีคุณสมบัติใหม่แม้ว่าพวกเขาต้องการแก้ไขบั๊กเพราะมีเพียงเวอร์ชันเดียวเท่านั้นที่พวกเรากำลังทำงานอยู่ เรากำลังประสบปัญหากับ Visual Studio เนื่องจากผู้พัฒนาหลายรายกำลังใช้โครงการเดียวกันในเวลาเดียวกัน (ไม่ใช่ไฟล์เดียวกัน แต่ยังคงทำให้เกิดปัญหา) มีนักพัฒนาเพียง 15 คน แต่เราทำทุกอย่างแตกต่างกัน มันจะดีกว่าไหมถ้ามีแนวทางแบบมาตรฐานทั่ว บริษัท ที่เราทุกคนต้องปฏิบัติตาม …

27
อะไรคือเศรษฐกิจเท็จที่เลวร้ายที่สุดในการพัฒนาซอฟต์แวร์? [ปิด]
อะไรคือเศรษฐกิจเท็จที่เลวร้ายที่สุด (นั่นคือวิธีการประหยัดเงินที่มีราคาสูงกว่าการประหยัด) ในอุตสาหกรรมซอฟต์แวร์และคุณต่อสู้กับพวกเขาอย่างไร?

18
เมื่อใดที่ฉันควรจะใช้การควบคุมแหล่งข้อมูลเป็นอันดับแรก
ฉันไม่แน่ใจว่าเมื่อโครงการไกลพอที่จะยอมรับการควบคุมแหล่งที่มาก่อน ฉันมักจะชะลอการคอมมิทจนกว่าโครงการจะเสร็จสมบูรณ์ (ฉันไม่ได้ทำโครงการส่วนตัวใด ๆ ที่ใหญ่พอที่จะมีกรอบการทำงานหลักที่ใหญ่เกินไปสำหรับเรื่องนี้) ฉันมีความรู้สึกว่านี่ไม่ใช่วิธีปฏิบัติที่ดีที่สุดแม้ว่าฉันจะไม่แน่ใจว่าสิ่งใดผิดไป ตัวอย่างเช่นฉันมีโครงการที่ประกอบด้วยไฟล์รหัสเดียว จะใช้เวลาประมาณ 10 บรรทัดของรหัสสำเร็จรูปและ 100 บรรทัดเพื่อให้โครงการทำงานด้วยฟังก์ชั่นพื้นฐานที่ยอดเยี่ยม (1 หรือ 2 คุณสมบัติ) ฉันควรเช็คอินก่อน: ไฟล์ว่างเปล่า? รหัสสำเร็จรูป? คุณสมบัติแรก? เมื่อถึงจุดอื่น? นอกจากนี้สาเหตุที่ต้องเช็คอิน ณ จุดใดจุดหนึ่ง?

18
การจัดการกับวิศวกรที่ออกจากงานบ่อย ๆ [ปิด]
เพื่อนของฉันเป็นผู้จัดการโครงการสำหรับ บริษัท ซอฟต์แวร์ สิ่งที่น่าผิดหวังมากที่สุดสำหรับเขาคือการที่เขาวิศวกรบ่อยออกจากงานของพวกเขา บริษัท ทำงานอย่างหนักในการสรรหาวิศวกรใหม่โอนโครงการและรักษาคุณภาพของผลิตภัณฑ์ เมื่อผู้คนออกไปมันทำให้เพื่อนของฉันคลั่งไคล้ วิศวกรเหล่านี้ยังเด็กและมีความทะเยอทะยานและพวกเขาต้องการเงินเดือนที่สูงขึ้นและตำแหน่งที่ดีขึ้น เจ้านายใหญ่คิดถึง แต่เรื่องทางการเงินและทฤษฎีของเขาก็คือ“ สามมือใหม่เก่งกว่าทหารผ่านศึกคนเดียวเสมอ ” (ซึ่งในฐานะวิศวกรที่มีประสบการณ์ฉันรู้ว่ามันผิด) เพื่อนของฉันเกลียดทฤษฎีนั้น มีคำแนะนำสำหรับเขาไหม?

20
ผู้จัดการโครงการที่ต้องการล็อคประมาณการเวลาด้วยสัญญาที่ลงนามแล้ว
ในการจ้างงานก่อนหน้านี้ผู้จัดการโครงการ (PM) ไม่พอใจกับเวลาส่งมอบรหัสในโครงการที่ฉันใช้งาน ฉันได้รับแจ้งจากโครงการนำของฉันว่า PM กำลังพิจารณาที่จะให้ฉันเซ็นสัญญาเพื่อล็อคเวลาของฉันโดยประมาณที่ฉันได้รับสำหรับงานและวันที่ส่งมอบ สถานการณ์ในโครงการคือเรากำลังทำงานร่วมกับเทคโนโลยีใหม่โค้ดเบสมาตรฐานการเข้ารหัสและข้อกำหนดที่เปลี่ยนแปลงได้ง่าย ฉันเรียนรู้สิ่งใหม่ ๆ และใช้สิ่งที่ดีที่สุดที่ฉันสามารถทำได้ตามความต้องการที่เปลี่ยนแปลงอยู่ตลอดเวลา ความต้องการตลอดทั้งการทำซ้ำเพิ่มขึ้น 2-3 ครั้งโดยที่การเติบโตของฉันตามการประเมินเสร็จสมบูรณ์ประมาณ 5-8 ครั้ง สิ่งเดียวที่ไม่เปลี่ยนแปลงคือการประมาณและวันที่ส่งมอบ ใช่ฉันลงเอยด้วยการกำหนดเวลาส่วนใหญ่ที่ขาดหายไป และฉันกำลังทำงานกับเทคโนโลยีใหม่ ๆ ที่ไม่มีใครในทีมพัฒนาทั้งหมดสามารถช่วยได้จริง ๆ เพราะพวกเขาไม่คุ้นเคยกับมัน อย่างน้อยก็ไม่สะดวก สำหรับฉันแล้วดูเหมือนว่า PM ต้องการให้ตัวเลขของเขาเพิ่มขึ้น - และทำให้ฉันต้องการเซ็นสัญญาเพื่อ "มั่นใจ" ว่าฉันจะส่งมอบรหัสการทำงานตรงเวลาเสมอ ฉันคิดว่าสัญญาที่ลงนามแล้ว PM สามารถใช้กับฉันได้หากฉันไม่สามารถส่งมอบตรงเวลา ฉันเชื่อว่าสิ่งที่เกิดขึ้นต่อไปคือผู้จัดการโครงการและ / หรือผู้นำโครงการปกป้องฉันและไม่ปล่อยให้สิ่งนี้เกิดขึ้น คำถามของฉันคือสิ่งนี้ควรยกธงสีแดงเกี่ยวกับผู้จัดการหรือไม่ เป็นเรื่องปกติหรือไม่ที่ผู้จัดการจะต้องล็อคเวลาประมาณการของผู้พัฒนาซอฟต์แวร์ด้วยสัญญาที่ลงนามแล้ว หรือในกรณีนี้ลอง โปรดทราบว่าฉันเป็นพนักงานเต็มเวลาไม่ใช่ที่ปรึกษาอิสระ อัปเดต : ฉันต้องการเพิ่มว่าฉันได้ให้การประมาณการใหม่ทุกสัปดาห์ แต่ดูเหมือนว่าการประมาณการและวันที่ส่งมอบดั้งเดิมเป็นสิ่งที่ PM ได้รับการแก้ไข

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

13
คุณใช้“ แผนการตั้งชื่อเวอร์ชัน” อะไร [ปิด]
ข้อตกลงการตั้งชื่อเวอร์ชันต่างกันเหมาะสมกับโครงการที่แตกต่างกันหรือไม่ คุณใช้อะไรและทำไม โดยส่วนตัวแล้วฉันชอบหมายเลขบิลด์เป็นเลขฐานสิบหก (เช่น 11BCF) ซึ่งควรเพิ่มขึ้นเป็นประจำ จากนั้นสำหรับลูกค้าจะมีหมายเลขเวอร์ชัน 3 หลักอย่างง่ายคือ 1.1.3 1.2.3 (11BCF) <- Build number, should correspond with a revision in source control ^ ^ ^ | | | | | +--- Minor bugs, spelling mistakes, etc. | +----- Minor features, major bug fixes, etc. +------- Major version, UX changes, …

12
แนวทางปฏิบัติที่ดีที่สุดสำหรับการแบ่งปันตัวอย่างโค้ดขนาดเล็กข้ามโครงการ
ฉันพยายามทำตามหลักการของDRYอย่างเคร่งครัดในที่ทำงานเสมอ ทุกครั้งที่ฉันทำซ้ำรหัสจากความเกียจคร้านมันกัดอีกครั้งในภายหลังเมื่อฉันต้องการรักษารหัสนั้นในสองแห่ง แต่บ่อยครั้งที่ฉันเขียนวิธีเล็ก ๆ (อาจเป็นรหัส 10 - 15 บรรทัด) ที่ต้องนำมาใช้ซ้ำในสองโครงการที่ไม่สามารถอ้างอิงซึ่งกันและกัน วิธีอาจเป็นสิ่งที่ต้องทำกับระบบเครือข่าย / สาย / MVVM ฯลฯ และเป็นวิธีที่มีประโยชน์โดยทั่วไปไม่เฉพาะเจาะจงกับโครงการที่ตั้งอยู่ในตอนแรก วิธีมาตรฐานในการนำรหัสนี้มาใช้ซ้ำจะเป็นการสร้างโครงการที่เป็นอิสระสำหรับรหัสที่ใช้ซ้ำได้และอ้างอิงโครงการนั้นเมื่อคุณต้องการ ปัญหาเกี่ยวกับสิ่งนี้คือเราจบลงในหนึ่งในสองสถานการณ์ที่ไม่เป็นอุดมคติ: เราจบลงด้วยโครงการเล็ก ๆ นับสิบ / ร้อยคน - แต่ละหลังมีชั้นเรียน / วิธีการเล็ก ๆ น้อย ๆ ซึ่งเราจำเป็นต้องนำมาใช้ซ้ำ มันคุ้มค่าที่จะสร้างรหัสใหม่.DLLเพียงเล็กน้อยหรือไม่? เราจบลงด้วยโครงการเดียวที่รวบรวมวิธีและชั้นเรียนที่ไม่เกี่ยวข้องเพิ่มมากขึ้น วิธีนี้เป็นสิ่งที่ บริษัท ที่ฉันเคยทำงานด้วย พวกเขามีโปรเจ็กต์base.commonที่มีโฟลเดอร์สำหรับสิ่งต่าง ๆ เช่นที่ฉันกล่าวถึงข้างต้น: เครือข่าย, การจัดการสตริง, MVVM ฯลฯ มันมีประโยชน์อย่างเหลือเชื่อ แต่การอ้างอิงมันลากโดยไม่จำเป็นด้วยรหัสที่ไม่เกี่ยวข้องทั้งหมดที่คุณไม่ต้องการ ดังนั้นคำถามของฉันคือ: ทีมซอฟต์แวร์ทำงานอย่างไรดีที่สุดเกี่ยวกับการนำรหัสขนาดเล็กไปมาระหว่างโครงการ ฉันสนใจเป็นพิเศษหากใครก็ตามที่ทำงานใน บริษัท …

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