ในบ้านกับสภาพแวดล้อมการพัฒนาซอฟต์แวร์ [ปิด]


13

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

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

ในฐานะนักเรียน (เช่นนักเรียนคนอื่น ๆ ) ฉันคาดหวังว่าตัวเองจะจบลงด้วยการทำงานในสภาพแวดล้อมการพัฒนาซอฟต์แวร์ แต่ฉันก็จบลงด้วยการได้ตำแหน่งแรกของ บริษัท ที่ดำเนินธุรกิจแฟชั่นในบ้านมากกว่า

บางครั้งฉันสงสัยว่าฉันพลาดประสบการณ์การพัฒนาซอฟต์แวร์ที่สมบูรณ์แบบหรือไม่ มีพื้นฐานสำหรับความรู้สึกนี้หรือไม่? ฉันควรพยายามเข้าร่วมสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่เหมาะสมหรือไม่


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

ทั้งคำถามที่คุณโพสต์สามารถตอบได้ด้วยตัวเองเท่านั้น
leo

6
IMHO ปัญหาของคุณไม่เกี่ยวกับ บริษัท In-House vs. Software คุณดูเหมือนว่าคุณกำลังทุกข์ทรมานจากการอยู่ในสภาพแวดล้อมการพัฒนาที่ไม่มีโครงสร้างและไม่มีที่ปรึกษาที่แข็งแกร่งที่ช่วยให้คุณทำตามแนวทางปฏิบัติที่ดีที่สุด
maple_shaft

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

1
คุณกำลังพูดถึงสองมิติของการพัฒนาซอฟต์แวร์ - ad-hoc กับกระบวนการพัฒนาที่มีโครงสร้างและการพัฒนาภายในกับการพัฒนาผลิตภัณฑ์ ระดับของแต่ละอาจแตกต่างกันอย่างอิสระ
Sean McMillan

คำตอบ:


13

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

มี บริษัท ที่ดำเนินกระบวนการพัฒนาซอฟต์แวร์อย่างจริงจังและ บริษัท ที่ไม่ดำเนินการ ไม่ว่าพวกเขาจะเป็น "ในบ้าน" หรือ "bespoke" หรือ "หดห่อ" มีแนวโน้มที่จะไม่เข้ามามาก (แม้ว่าพวกเขาจะเป็น "หดห่อ" ผู้ให้บริการถ้าพวกเขาไม่มีกระบวนการพวกเขาอาจจะไม่อยู่ในธุรกิจ ยาว).

คุณควรมองหาสถานที่ที่มีมาตรฐานการพัฒนาที่คุณกำลังมองหา - เมื่อสัมภาษณ์คุณต้องถามคำถามเหล่านี้เพื่อให้แน่ใจว่าสถานที่นั้นเป็นที่ชื่นชอบของคุณในแง่นี้ (รวมถึงอื่น ๆ )


ฉันกำลังเขียนสิ่งที่คล้ายกับสิ่งนี้เมื่อคุณโพสต์ +1 สำหรับประโยคสุดท้ายแม้ว่าจะเป็นคะแนนที่ถูกต้องทั้งหมด
โธมัสโอเวนส์

@ThomasOwens - ใช่เห็นความคิดเห็นของคุณกับคำถามหลังจากโพสต์คำตอบของฉันและได้รับการคาดหวังว่าคำตอบเป็นอย่างดีจากคุณ;)
Oded

10

คุณสามารถอ่านบทความนี้

http://www.joelonsoftware.com/items/2007/12/04.html

ของ Joel Spolsky ซึ่งจัดการกับคำถามของคุณ

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

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


6

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

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

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


3

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

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

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