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

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

12
ลูกค้าของฉันต้องการ 25% ของความคิดเห็นในโครงการปัจจุบันของฉันวิธีการตอบสนอง? [ปิด]
นักพัฒนาจูเนียร์ที่นี่ ฉันกำลังทำงานคนเดียวในเว็บแอปพลิเคชันสำหรับลูกค้ารายใหญ่ของ บริษัท ของฉัน ฉันเริ่มเมื่อเดือนที่แล้ว ลูกค้าต้องการความเห็นอย่างน้อย 25% ในแต่ละโครงการซอฟต์แวร์ ฉันตรวจสอบรหัสของแอปพลิเคชันก่อนหน้าและนี่คือข้อสังเกตของฉัน: แต่ละไฟล์เริ่มต้นด้วยบล็อกความคิดเห็น (แพ็คเกจ, วันที่อัพเดทล่าสุด, ชื่อ บริษัท & ลิขสิทธิ์ของฉัน) ตัวแปรทั้งหมดจะถูกใส่ความคิดเห็นพร้อมชื่อ // nameOfCustomer public String nameOfCustomer getters และ setters ทั้งหมดถูกคอมเม้นต์ ความเห็นที่เป็นประโยชน์น้อยมาก ดูเหมือนว่านักพัฒนาเพียงแค่ใส่ความคิดเห็นให้มากที่สุดเท่าที่จะทำได้เพื่อให้ถึงขีด จำกัด นั้น 25% โดยไม่คำนึงถึงคุณภาพและประโยชน์ บริษัท ของฉันบอกฉันว่า "เราทำตามที่ลูกค้าต้องการ" ฉันไม่ได้พูดกับลูกค้าโดยตรงเกี่ยวกับเรื่องนี้ นี่คือข้อโต้แย้งของฉัน: บรรทัดที่ไร้ประโยชน์ในการอ่านและเขียน (เสียเวลา) บางครั้งความคิดเห็นไม่ได้รับการอัพเดต (แหล่งที่มาของความสับสน) นักพัฒนามีโอกาสน้อยที่จะใช้หรือเชื่อถือความคิดเห็นที่เป็นประโยชน์จริง คุณมีคำแนะนำเกี่ยวกับเรื่องนี้อย่างไร? ฉันจะจัดการกับสถานการณ์ได้อย่างไร

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

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

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

20
คุณจัดการกับ Project Manager ของคุณอย่างไร
ขณะนี้ฉันทำงานให้กับ บริษัท ที่มีการลดขนาดเมื่อเร็ว ๆ นี้ ฉันทำงานทุกอย่างในบ้านติดตั้งไคลเอนต์สร้างงาน QA และทำงานในบ้านทั้งหมด เจ้านายโดยตรงของฉันไม่ใช่คนมีเทคนิคมากและเมื่อเร็ว ๆ นี้ฉันพบว่ามันยากมากที่จะจัดการกับการขาดความรู้ของเขา ปัญหาที่ใหญ่ที่สุดที่ฉันมีมีดังนี้: ฉันอยู่ในกำหนดเวลาหลายครั้ง ฉันหยุดที่จะใส่เครื่องหมายคำพูดเร็ว ๆ ครึ่งหนึ่งเนื่องจากฉันไม่สามารถมาถึงกำหนดเวลาได้ในระหว่างนี้มีการโทรหาสายสนับสนุนสามสายฉันให้คำพูดเวลามากเกินไปในการอ้างอิง ฉันต้องแก้ไขทุกสิ่งทุกอย่างที่ผู้ขายรายย่อยทำลายซึ่งทำให้ฉันอยู่ข้างหลัง ที่แย่ที่สุดคือถ้าฉันกิน "บัฟเฟอร์ของเขา" ในโครงการที่ฉันไม่ได้คาดหวังว่าจะทำทุกอย่างให้เสร็จตามที่กำหนดไว้ในขณะที่สิ่งอื่น ๆ เหล่านี้เกิดขึ้น ฉันถูกถามเมื่อมีปัญหาเกิดขึ้นเหตุใดปัญหาจึงเกิดขึ้นและอธิบายอย่างละเอียด แต่รายละเอียดนั้นไม่มีความหมายอะไรกับเขาเลย สิ่งที่เขาใส่ใจคือวันครบกำหนด แต่เขาเป็นคนกำหนดทุกอย่าง "ฉันเป็นโปรแกรมเมอร์ไม่ใช่นักออกแบบกราฟิกไม่มีความหมายอะไรกับเขาเลย" ฉันได้รับการว่าจ้างเป็นโปรแกรมเมอร์. NET แต่พวกเขาก็ให้ผู้ขายเลือกเวิร์ดเพรสสำหรับเว็บไซต์หลายแห่ง (ใช่ฉันต้องเรียนรู้ทั้งหมดเกี่ยวกับเรื่องนี้อย่างรวดเร็ว) ฉันเดาว่าฉันสามารถไปเรื่อย ๆ แต่มีใครต้องจัดการกับผู้จัดการโครงการประเภทนี้หรือไม่? อะไรคือคำแนะนำนอกเหนือจากการหางานอื่น? ฉันไม่สามารถออกจากงานในเวลานี้เนื่องจากฉันไม่สามารถทำประกันหายได้ในขณะนี้เพราะภรรยาของฉันป่วยหนักด้วย MS ฉันกำลังมองหาวิธีที่ดีที่สุดในการจัดการกับผู้จัดการของฉัน ขอบคุณล่วงหน้าและฉันทำวิกินี้ดังนั้นโปรดอย่าปิด นี่คือสถานการณ์อื่นที่เกิดขึ้นในวันนี้ เรามีเพื่อนของฉันที่ช่วยเหลือฉันในโครงการ เขาขอให้เรา "ทั้งคู่" เสนอราคางานและประมาณการคร่าวๆ ฉันกลับมาหาเขาและพูดว่า "7 สัปดาห์ 6 ชั่วโมงต่อวันโดยใช้เพื่อนเป็นทรัพยากร" เขามอบมันให้กับลูกค้าและเพิ่ม …

7
วิธีจัดการความซับซ้อนโดยไม่ตั้งใจในโครงการซอฟต์แวร์
เมื่อ Murray Gell-Mann ถูกถามว่า Richard Feynman จัดการเพื่อแก้ไขปัญหาที่ยากมากมายได้อย่างไร Gell-Mann ตอบว่า Feynman มีอัลกอริทึม: จดบันทึกปัญหา คิดหนักจริง เขียนวิธีการแก้ปัญหา Gell-Mann พยายามอธิบายว่า Feynman เป็นนักแก้ปัญหาที่แตกต่างกันและไม่มีความเข้าใจที่จะได้รับจากการศึกษาวิธีการของเขา ฉันรู้สึกแบบเดียวกันกับการจัดการความซับซ้อนในโครงการซอฟต์แวร์ขนาดกลาง / ใหญ่ ผู้คนที่ดีนั้นดีโดยกำเนิดและจัดการกับเลเยอร์และสแต็ค abstractions ต่าง ๆ เพื่อให้ทุกอย่างสามารถจัดการได้โดยไม่ต้องแนะนำ cruft ที่ไม่เกี่ยวข้องใด ๆ ดังนั้นอัลกอริทึมไฟน์แมนเป็นวิธีเดียวที่จะจัดการความซับซ้อนโดยไม่ตั้งใจหรือมีวิธีการที่วิศวกรซอฟต์แวร์สามารถนำไปใช้กับความซับซ้อนที่เกิดขึ้นโดยบังเอิญได้หรือไม่?

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

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

11
คำแนะนำในการออกแบบเว็บแอปพลิเคชันด้วยอายุการใช้งานมากกว่า 40 ปี
สถานการณ์ ขณะนี้ฉันอยู่นอกเหนือโครงการดูแลสุขภาพที่มีความต้องการหลักคือการเก็บข้อมูลที่มีคุณลักษณะที่ไม่รู้จักโดยใช้แบบฟอร์มที่ผู้ใช้สร้างขึ้นโดยผู้ให้บริการด้านสุขภาพ ข้อกำหนดที่สองคือความสมบูรณ์ของข้อมูลเป็นกุญแจสำคัญและแอปพลิเคชันจะใช้งานมากกว่า 40 ปี ขณะนี้เรากำลังย้ายข้อมูลลูกค้าจาก 40 ปีที่ผ่านมาจากแหล่งข้อมูลต่างๆ (กระดาษ, Excel, Access, ฯลฯ ... ) ไปยังฐานข้อมูล ข้อกำหนดในอนาคตคือ: การจัดการเวิร์กโฟลว์ของแบบฟอร์ม การจัดการตารางเวลาของแบบฟอร์ม ความปลอดภัย / การจัดการตามบทบาท เครื่องมือสร้างรายงาน รองรับมือถือ / แท็บเล็ต สถานการณ์ เพียง 6 เดือนเท่านั้นสถาปนิก / โปรแกรมเมอร์อาวุโส (ที่เซ็นสัญญา) คนปัจจุบันใช้แนวทาง "เร็ว" และได้ออกแบบระบบที่ไม่ดี ฐานข้อมูลไม่ได้รับการปรับให้เป็นมาตรฐาน, โค้ดนั้นเป็นแบบคู่, เทียร์ไม่มีวัตถุประสงค์เฉพาะและข้อมูลเริ่มหายไปเนื่องจากเขาได้ออกแบบถั่วบางตัวเพื่อทำการ "ลบ" บนฐานข้อมูล รหัสฐานนั้นเต็มไปด้วยฟองเลือดมากและมีงานที่ต้องทำการซิงโครไนซ์ข้อมูลเนื่องจากฐานข้อมูลไม่ได้ถูกทำให้เป็นมาตรฐาน วิธีการของเขาคือการพึ่งพางานสำรองเพื่อกู้คืนข้อมูลที่หายไปและดูเหมือนจะไม่เชื่อในการกู้คืนข้อมูล หลังจากนำเสนอสิ่งที่ฉันพบต่อ PM สถาปนิกจะถูกลบออกเมื่อสัญญาของเขาสิ้นสุดลง ฉันได้รับมอบหมายให้สร้างแอปพลิเคชันนี้อีกครั้ง ทีมของฉันประกอบด้วยฉันและโปรแกรมเมอร์ระดับต้นหนึ่งคน เราไม่มีทรัพยากรอื่น ๆ เราได้รับสิทธิ์การแช่แข็ง …

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

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

8
ฉันควรบันทึกข้อผิดพลาดที่พบและแก้ไขหรือไม่
ฉันคิดว่านี่เป็นสถานการณ์ทั่วไป: ฉันทดสอบบางรหัสค้นหาข้อผิดพลาดแก้ไขและยอมรับข้อผิดพลาดแก้ไขไปยังที่เก็บ สมมติว่ามีหลายคนที่ทำงานในโครงการนี้ฉันควรสร้างรายงานข้อผิดพลาดก่อนกำหนดให้กับตัวเองและอ้างถึงในข้อความกระทำ (เช่น "แก้ไขข้อผิดพลาด # XYZ ข้อผิดพลาดเกิดจาก X และ Y. แก้ไขโดย Q และ R ")? อีกทางหนึ่งฉันสามารถข้ามรายงานข้อผิดพลาดและส่งข้อความเช่น "แก้ไขข้อผิดพลาดที่ทำให้เกิด A เมื่อ B ข้อผิดพลาดเกิดจาก X และ Y. แก้ไขโดย Q และ R" การปฏิบัติที่ดีกว่าคืออะไร?

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

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

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

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