วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

7
กระบวนการ Agile: ควรทำอย่างไรและควรมีการบันทึกไว้อย่างไร?
เมื่อไม่นานมานี้ บริษัท ที่ฉันทำงานด้วยได้เอาต์ซอร์ซโครงการพัฒนาให้กับบุคคลที่สาม พวกเขาใช้วิธีปฏิบัติที่คล่องตัวในการพัฒนาโซลูชัน อย่างไรก็ตามเมื่อถามถึงเอกสารพวกเขาจะบอกว่ามันจำเป็นเพราะมันถูกรวมอยู่ในวิกิหรือเป็นส่วนหนึ่งของการวิ่งของพวกเขา พวกเขาออกจากโครงการจนแล้วเสร็จ แต่มีหนึ่งในทีมงานโครงการ ไซต์ wiki ของโครงการถูกปิดตัวลงเมื่อการสมัครสมาชิกรายปีครบกำหนด เมื่อพวกเขาจากไปพวกเขาได้รับความรู้และความเข้าใจส่วนใหญ่เกี่ยวกับสิ่งที่พัฒนาขึ้นมากับพวกเขา ดังนั้นฉันมีคำถาม 2 ข้อ นี่เป็นเรื่องปกติสำหรับความคล่องตัวหรือเป็นข้อแก้ตัวที่ไม่ต้องการเขียนหรือไม่? บรรทัดฐานอุตสาหกรรมสำหรับเอกสารในโครงการแบบว่องไวเพื่อบันทึกความต้องการการพัฒนาการออกแบบการตัดสินใจที่สำคัญและบริบทคืออะไร

2
สถาปนิกซอฟต์แวร์มีบทบาทอะไรในกระบวนการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ
ตามที่ฉันเข้าใจแล้วการพัฒนาทดสอบขับเคลื่อนนั้นเกี่ยวกับการเขียนการทดสอบเพื่อกำหนดข้อกำหนดของโปรแกรม (คุณสามารถแก้ไขฉันได้หากฉันทำผิด) หากมีผู้รับผิดชอบในการเขียนข้อมูลจำเพาะ (รวมถึง API สาธารณะ) สำหรับซอฟต์แวร์ (ลองเรียกเขาว่า Software Architect) นั่นหมายความว่าสถาปนิกซอฟต์แวร์ต้องเขียนการทดสอบทั้งหมดหรือไม่ หรือสถาปนิกซอฟต์แวร์เขียนข้อกำหนดแล้วส่งมอบให้กับนักพัฒนาเพื่อเขียนทดสอบหรือไม่ หรือคุณอนุญาตให้ข้อมูลจำเพาะเติบโตอย่างเป็นอินทรีย์โดยอนุญาตให้นักพัฒนาทั้งหมดเขียนการทดสอบของตนเองและลืมที่จะมี Software Architect?
10 architecture  tdd 

5
สายมีความหมายใด ๆ ในระเบียบวิธี Agile หรือไม่?
นี่มาจากคำตอบและความเห็นบางส่วนของคำถามอื่น (อันนี้ ) ฉันเคยทำงานกับโครงการน้ำตกเป็นหลักและในขณะที่ฉันทำงานในโครงการเฉพาะกิจที่มีพฤติกรรมที่คล่องแคล่วและได้อ่านข้อมูลเกี่ยวกับความคล่องตัวฉันรู้สึกว่าฉันไม่เคยทำงานในโครงการเปรียว "เหมาะสม" . คำถามของฉันคือแนวคิดของ "สาย" มีความหมายใด ๆ ในความคล่องตัวถ้าเป็นเช่นนั้นจะเกิดอะไรขึ้น เหตุผลของฉันก็คือเมื่อคุณมีความคล่องตัวคุณไม่มีแผนล่วงหน้าและคุณไม่มีข้อกำหนดโดยละเอียดในตอนแรก คุณอาจมีเป้าหมายในระดับสูงและมีการกำหนดวันที่ไว้ล่วงหน้า แต่ทั้งคู่อาจเปลี่ยนแปลง (อาจเป็นไปได้มาก) และไม่แน่ใจ ดังนั้นหากคุณไม่ทราบว่าสิ่งที่คุณจะส่งโดยทั่วไปจนกว่าคุณจะส่งมอบและผู้ใช้ยอมรับมันและถ้าคุณไม่มีตารางนอกเหนือจากการวิ่งครั้งต่อไปคุณจะมาช้าในทางใด มีความหมายจริงเหรอ? (เห็นได้ชัดว่าฉันเข้าใจว่าการวิ่งอาจย่ำแย่ แต่ฉันกำลังพูดถึงเรื่องนั้น) เพียงเพื่อความชัดเจนฉัน (ส่วนตัว) มีความสุขกับการสันนิษฐานว่าโครงการน้ำตกในเวลา (แม้จะค่อนข้างใหญ่) เป็นไปได้ตามความจริงที่ฉันเคยเห็นพวกเขาและมีส่วนร่วมในพวกเขา - พวกเขาไม่ใช่เรื่องง่ายหรือทั่วไป แต่พวกเขาเป็นไปได้ สิ่งนี้ไม่เกี่ยวกับการเคาะเปรียวมันเป็นเรื่องของฉันที่เข้าใจ ฉันเคยเห็นประโยชน์ของความคล่องตัวที่ไม่มีอะไรเกี่ยวข้องกับกำหนดเวลาหรืองบประมาณ (หรือเพียงแค่ทางอ้อม) มันต้องทำด้วยขอบเขต - ความคล่องตัวให้ความใกล้ชิดกับสิ่งที่สำคัญจริงๆมากกว่าสิ่งที่ทีมงานคิดว่าสำคัญก่อน ได้เห็นอะไร
10 agile  scheduling 

9
ทำไมฉันถึงไม่ได้รับเลือกในการสัมภาษณ์? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันทำงานในการพัฒนาเป็นเวลา 4 ปีและ 3.5 ใน PHP - ทำไมฉันไม่สามารถเลือกได้ในการสัมภาษณ์ ฉันต้องการทราบว่าผู้สัมภาษณ์ต้องการเห็นอะไรเป็นพิเศษสำหรับผู้พัฒนา PHP ระดับสูง ผู้สัมภาษณ์ถามคำถาม 10 ข้อและฉันสามารถตอบได้เท่านั้น 5. การเลือกขึ้นอยู่กับสิ่งเหล่านี้หรือไม่? ไม่ได้หมายความว่าฉันไม่สามารถแก้ปัญหาได้ฉันสามารถ google คำถามฉันสามารถถามในฟอรั่ม ทำไมพวกเขาไม่เข้าใจว่ามนุษย์ไม่สามารถจำคำตอบทั้งหมดสำหรับคำถามแต่ละข้อได้ โดยเฉพาะการเขียนโปรแกรม กรุณาแนะนำ
10 interview 

5
Ruby on Rails / Grails เป็นเฟรมเวิร์กที่เร็วที่สุดในการทำให้ไซต์เร็วขึ้นหรือไม่?
ฉันกำลังพิจารณาใช้ Grails สำหรับเว็บไซต์ใหม่ แต่ฉันเปิดรับภาษาและกรอบการเขียนโปรแกรมอื่น / ใหม่ ฉันได้ทำการพัฒนาโดยใช้ J2EE / JSF2, ASP.NET และ PHP Grails หรือ Ruby on Rails เป็นวิธีที่ดีที่สุดในการทำให้การใช้งานและการทำงานรวดเร็วขึ้นหรือไม่? ความคิดเริ่มต้นบางอย่าง: DJango มีลักษณะคล้ายกับ RoR / Grails และฉันคิดว่ามัน GWT เป็นแนวคิดที่น่าสนใจ แต่ดูเหมือนว่าเวลาตอบสนองจะค่อนข้างเร็ว ขอบคุณ -Jon

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

9
การควบคุมแหล่งที่มาใดที่ฉันต้องการสำหรับโครงการขนาดใหญ่ใน บริษัท โดยเฉลี่ย [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันรู้ว่า Git นั้นยอดเยี่ยมสำหรับโครงการโอเพ่นซอร์ส แต่ฉันสงสัยว่า: สำหรับ บริษัท ที่มีโปรแกรมเมอร์ 20 คนทำงานในโครงการ 1 ปีระบบควบคุมแหล่งที่มาเป็นที่ต้องการหรือไม่ จากสิ่งที่ฉันได้ยิน Git ใช้การดึง มันจะไม่ดีกว่าที่จะต้องผ่านคนอื่นเพื่อรับการเปลี่ยนแปลงของคุณในลำตัวหลัก? โดยเฉพาะอย่างยิ่งเมื่อทุกคนทำงานในเวลาเดียวกัน นั่นเป็นเพียงตัวอย่างที่ฉันสงสัย ฉันรู้วิธีใช้ SVN แต่ในงานสุดท้ายของฉันเราไม่ได้ใช้มันในโครงการของเราเนื่องจากทุกอย่างทำใน PHP และโดยทั่วไปเป็นโครงการแบบสแตนด์อโลน 1 สัปดาห์ ฉันเพิ่งมี SVN สำหรับรหัสท้องถิ่นของฉันและไม่จำเป็นต้องใช้กับผู้อื่น ดังนั้นแหล่งควบคุมที่ดีคืออะไรและโดยเฉพาะเหตุใดจึงดีสำหรับสิ่งนี้

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

3
การโอนย้ายจากเฟรมเวิร์ก PHP หนึ่งไปอีกเฟรมหนึ่ง
ฉันทำงานกับ บริษัท เว็บที่กำลังเข้าใกล้จุดที่มันอาจจะต้องคิดอีกครั้งว่าผลิตภัณฑ์เป็น V2 - เนื่องจากการเติบโตกว่ารากฐาน V1 และหลักการบางอย่างที่สร้างขึ้นในแทบทุกอย่างตั้งแต่ตัวแบบข้อมูลไปจนถึง ส่วนต่อประสานผู้ใช้ ด้วยเหตุผลหลายประการวิวัฒนาการนี้อาจเกี่ยวข้องกับการย้ายถิ่นจาก CakePHP (ซึ่งสร้าง V1) ไปยัง Symfony หรือ Zend ฉันต้องการขอมุมมองที่มีประสบการณ์เกี่ยวกับวิธีที่ผู้คนอาจจัดการกับการเปลี่ยนแปลงเช่นนี้สำหรับเว็บไซต์ที่มีปริมาณการเข้าชมมากและสร้างรายได้ ฉันไม่ต้องการที่จะเปิดการอภิปรายเกี่ยวกับกรอบ PHP ที่แตกต่างกันของโปรหรือทำไมการโยกย้ายนี้อาจจำเป็น ค่อนข้างฉันจะสนใจอย่างมากในการได้ยินว่ามีทางเลือกในทางปฏิบัติบางอย่างในการสร้าง V2 จากรอยขีดข่วนควบคู่ไปกับ V1 เป็นเวลาสองเดือน - และล็อคเวลาการเข้ารหัสที่มีค่าในช่วงเวลาที่รุนแรงนี้ ตัวอย่างของทางเลือกดังกล่าวอาจกำลังย้ายแอพในบางส่วนในระยะเวลานาน ฉันจะขอบคุณสำหรับมุมมองใด ๆ จากคนที่อาจมีการจัดการหรือมีส่วนร่วมในช่วงการเปลี่ยนภาพดังกล่าว ขอบคุณล่วงหน้า.

3
เป็นความคิดที่ดีหรือไม่ที่จะทำ TDD ในส่วนประกอบระดับต่ำ?
ฉันกำลังพิจารณาที่จะเขียนไดรเวอร์ระดับต่ำหรือส่วนประกอบ / เมล็ดระบบปฏิบัติการ ผู้คนosdev.orgดูเหมือนจะคิดว่าบิตที่สำคัญนั้นไม่ได้มีความหมายที่พิสูจน์ได้ด้วยวิธีนี้ แต่ฉันได้อ่านการสนทนาบางอย่างที่ผู้คนคิดแตกต่างกัน ฉันได้ดูไปรอบ ๆ แล้ว แต่ไม่พบตัวอย่างชีวิตจริงของ TDD ในองค์ประกอบระดับต่ำ นี่เป็นสิ่งที่ผู้คนทำจริง ๆ หรือเพียงแค่สิ่งที่ผู้คนพูดถึงในทางทฤษฎีเพราะไม่มีวิธีที่ดีในการฝึกฝน

8
จะยุติการพึ่งพาของฉันบน. NET ได้อย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ฉันพัฒนาแอพพลิเคชั่น Windows GUI มาหลายปีแล้วและกระโดดเข้าสู่. NET ในต้นปี 2548 .NET เป็นแพลตฟอร์มที่น่าทึ่งอย่างไม่ต้องสงสัยและฉันยังคงใช้มันอยู่ แต่ด้วยเทคโนโลยีที่หลากหลายฉันไม่ต้องการอยู่ต่อ ทุ่มเทให้กับค่ายนี้ ฉันต้องการเรียนรู้ภาษาใหม่ที่ฉันสามารถพัฒนาแอปพลิเคชัน GUI ฉันกำลังเรียนรู้ Ruby และเพิ่งติดตั้ง Python ฉันอ่านเกี่ยวกับ WxRuby ซึ่งเป็นกรอบสำหรับการพัฒนาแอพ Windows GUI ในทับทิม ฉันกำลังค้นหาเฟรมเวิร์กที่คล้ายกันสำหรับ Python นอกเหนือจากนั้นฉันต้องการทราบว่าภาษาใดเหมาะสมกว่าสำหรับแอป GUI ระดับการผลิต ฉันสงสัยว่า Ruby ให้ความสำคัญกับแพลตฟอร์มของเว็บมากกว่าเนื่องจาก Ruby on Rails ฉันรู้ว่าฉันอาจไม่ได้รับคลาส. NET เหล่านั้นและ Visual Studio …
10 python  ruby 


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

4
มีอะไรบ้างที่ต้องระวังเมื่อเตรียมพร้อมที่จะส่งมอบโครงการ?
ฉันเป็นผู้พัฒนา / สถาปนิก แต่เพียงผู้เดียวของแอปพลิเคชันเว็บที่ค่อนข้างใหญ่ (ASP.NET MVC stack, โค้ดประมาณ 150K + บรรทัด) และจุดสิ้นสุดของการพัฒนาอยู่บนขอบฟ้า ด้วยเหตุนี้ฉันจึงเริ่มคิดถึงสิ่งที่ต้องทำเพื่อให้พ้นมือของโครงการและฉันต้องการทำให้แน่ใจว่าฉันจะทำสิ่งที่ถูกต้องสำหรับทุกคนที่ต้องดูแลโครงการในอนาคต มีอะไรบ้างที่ต้องระวังเมื่อเตรียมพร้อมที่จะส่งมอบโครงการให้กับผู้พัฒนารายอื่นหรือทีมผู้พัฒนาบำรุงรักษา

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

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