อะไรคือความแตกต่างที่สำคัญระหว่างวิศวกรซอฟต์แวร์และโปรแกรมเมอร์?
อะไรคือความแตกต่างที่สำคัญระหว่างวิศวกรซอฟต์แวร์และโปรแกรมเมอร์?
คำตอบ:
เมื่อทำการจ้างงานเรามองหาความแตกต่างระหว่างคนที่จะสามารถช่วยเราออกแบบระบบกำหนดกระบวนการสร้างข้อกำหนดทางเทคนิคดำเนินการ refactoring ขั้นสูง ฯลฯ และผู้ที่จะช่วยเราเขียนโปรแกรมงานออกจากรายการตรวจสอบ . ฉันเชื่อว่าคุณสามารถโทรหาอดีตวิศวกรซอฟต์แวร์และโปรแกรมเมอร์รายหลังได้
มันขึ้นอยู่กับ บริษัท จริงๆเพราะฉันไม่คิดว่าจะมีกรอบทางกฎหมายในการบังคับใช้นิกายหรืออื่น ๆ หรืออย่างน้อยก็ไม่ทราบว่าสิ่งนี้อาจแตกต่างกันไปในแต่ละประเทศ (ตัวอย่างเช่นการใช้คำศัพท์ "วิศวกร" มีการควบคุมอย่างเป็นธรรมในประเทศฝรั่งเศส แต่มีหลากหลายรูปแบบที่ได้รับอนุญาตสำหรับคดี "ที่ไม่เหมาะสม")
ที่ถูกกล่าวว่าแนวโน้มทั่วไปไปเช่นนี้:
โปรแกรมเมอร์ตำแหน่งจะเป็นหนึ่งในมืออาชีพที่จะได้รับการว่าจ้างในการผลิตรหัสของโปรแกรมคอมพิวเตอร์ มันจะบ่งบอกว่าคุณรู้วิธีการเขียนโค้ดสามารถเข้าใจขั้นตอนวิธีและเป็นไปตามข้อกำหนด อย่างไรก็ตามมันมักจะหยุดอยู่ที่นั่นในแง่ของความรับผิดชอบ
นักพัฒนาตำแหน่งมักจะคิดว่าซุปเปอร์ประเภทของตำแหน่งโปรแกรมเมอร์ มันครอบคลุมความรับผิดชอบเดียวกันรวมถึงความสามารถในการออกแบบและออกแบบส่วนประกอบซอฟต์แวร์และการเขียนเอกสารทางเทคนิคสำหรับมัน (รวมถึงข้อกำหนด) คุณสามารถ - อย่างน้อยในทางเทคนิค - นำคนอื่น ๆ (เช่นโปรแกรมเมอร์) แต่ไม่จำเป็นต้องเป็นทีม (มีฝอย ... )
วิศวกรตำแหน่งมักจะบ่งบอกว่าคุณเป็นนักพัฒนาที่มีประเภทที่เฉพาะเจาะจงของการศึกษาระดับปริญญาบางความรู้ทางด้านวิศวกรรมและมีความสามารถในการออกแบบระบบ (เช่นใน: การรวมกันของส่วนประกอบซอฟต์แวร์ / โมดูลที่ร่วมกันในรูปแบบนิติบุคคลซอฟต์แวร์ทั้งหมด) . โดยทั่วไปคุณเห็นภาพที่กว้างขึ้นและคุณจะมีความสามารถในการออกแบบและการอธิบายมันและแยกออกเป็นโมดูลที่มีขนาดเล็ก
แต่ทั้งหมดนี้เป็นที่ถกเถียงและที่ผมกล่าวว่าไม่มีความต้องการทางกฎหมายที่ฉันรู้ในประเทศสหรัฐฯ / อังกฤษ ที่ถูกกล่าวว่าในฝรั่งเศสคุณสามารถเรียกตัวเองว่า "วิศวกร" ถ้าคุณมาจากโรงเรียนวิศวกรรม (ได้รับการยอมรับจาก Commission des Titres d'Ingenieurs หรืออะไรทำนองนั้น) คุณไม่สามารถพูดได้ว่าคุณมี "ปริญญาวิศวกร" แต่คุณสามารถพูดได้ว่าคุณมี "ปริญญาในสาขาวิศวกรรม" หากคุณเรียนสาขาที่ตกอยู่ภายใต้การทำงานของวิศวกรรมและเทคโนโลยี
อาจเป็นได้ว่าบางประเทศมีความแตกต่างคล้ายกันฉันไม่รู้จริงๆ
กลับไปที่ชื่อวิศวกรซอฟแวร์ ... เมื่อคนหนึ่งของครูของฉันบอกว่าชั้นเรียนของเรา - และถูกต้องเพื่อ - ว่าไม่มีสิ่งดังกล่าวเป็นของวันนี้เป็นสิ่งที่เรียกว่า "วิศวกรรมซอฟต์แวร์" เพราะสิ่งวิศวกรรม (ไม่ว่าจะเป็นอาคารยานพาหนะชิ้นส่วนของฮาร์ดแวร์ ... ) หมายความว่าคุณมีความสามารถในการจินตนาการการออกแบบและทุกขั้นตอนของการผลิตและเพื่อทำนายความถูกต้องของทรัพยากรที่คุณต้องการ ต้นทุนการผลิต
นี่คือความจริงของสาขาวิชาวิศวกรรม "ที่แท้จริง" ที่สุด แน่นอนว่ามีความผันผวนแน่นอน (ราคาของวัสดุจะแตกต่างกันไปตามกาลเวลา) แต่มีแบบจำลองทางทฤษฎีที่ จำกัด มาก (สำหรับการออกแบบและการวางแผน) และแบบจำลองเชิงประจักษ์ (สำหรับการรักษาแบบเดิม ๆ ภายในข้อ จำกัด ที่เข้าถึงได้) ที่ช่วยให้คุณทำนายวันที่สิ้นสุดของโครงการและการใช้ทรัพยากรได้
ปัญหาที่สำคัญของซอฟต์แวร์คือยังไม่มี เราต้องการตั้งเป้าหมายสำหรับวิศวกรรมซอฟต์แวร์ แต่เรายังไม่ได้อยู่ที่นั่นจริงๆ เนื่องจากเรามีสภาพแวดล้อมที่คล่องแคล่วและมีพลวัตมีข้อ จำกัด ที่ผันแปรอย่างมากสำหรับโครงการและยังขาดวุฒิภาวะในการหวนกลับในกระบวนการของเรา แน่นอนว่าเราสามารถบอกได้ว่าเราทำได้ดีกว่านี้ (สามารถโต้แย้งได้กับข้อมูลที่หนักหน่วง) แต่เราได้รับมันมาตั้งแต่ยุค 60 (โครงการก่อนหน้านี้อยู่ใกล้กับคอมพิวเตอร์ที่ใช้ฮาร์ดแวร์เท่านั้นจึงใกล้ชิดกับวิศวกรรมจริงมากขึ้น ) ในขณะที่เราสร้างยานยนต์มานานกว่าศตวรรษยานพาหนะโดยทั่วไปสำหรับไม่กี่พันปีและสร้างมานานนับพันปีมากขึ้น (และได้รับการด่าสวยดีจริง ๆ ในบางส่วนของโลกทำให้คุณรู้สึกเหมือนเรา '
เราไม่สามารถที่จะกำหนดเวลาระบบคาดการณ์ได้อย่างถูกต้องเราไม่สามารถคาดการณ์ค่าใช้จ่ายในระบบได้อย่างถูกต้องเราไม่สามารถระบุระบบและลดความเสี่ยงโดยธรรมชาติและภายนอกอย่างมีประสิทธิภาพและ deterministically สิ่งที่ดีที่สุดที่เราสามารถทำได้คือสร้างการคาดเดาที่ดีพอและรองรับบัฟเฟอร์ในขณะที่พยายามอย่างดีที่สุดเพื่อปรับกระบวนการให้เหมาะสมเพื่อลดรอบและโอเวอร์เฮด
แต่ดูสินั่นอาจเป็นวิศวกรรม และนั่นคือสิ่งที่เมื่อมีคนพูดถึง "วิศวกรซอฟต์แวร์" พวกเขาควรคิดและตั้งเป้าหมาย
ดังนั้นจึงดูเหมือนว่าแทบจะไม่สามารถใช้แทนกันกับการกระทำที่เรียบง่ายของรูทีนการเขียนโปรแกรมหรือการกระทำขั้นสูงของการพัฒนาแอพพลิเคชั่น
ยังคงทุกอย่างเป็นเรื่องของแนวโน้ม เมื่อเร็ว ๆ นี้มันเป็นเรื่องธรรมดาที่จะมีทีม dev แนวนอนซึ่งทุกคนในทีมเป็นนักพัฒนาซอฟต์แวร์อาวุโส (ใช่แล้วเพราะมันทำให้เรารู้สึกพิเศษไม่ใช่หรือ?) โดยไม่มีความแตกต่างของอายุ (พอจริงในตัวฉัน ความเห็น) และทักษะที่ไม่แตกต่างกันมาก (uh-oh ... ) และความรับผิดชอบ (ตอนนี้มันไม่สามารถทำได้ดี
บางครั้งมันก็เป็นเพียงพลังแห่งนิสัยและเฉพาะกับวัฒนธรรมและศัพท์แสงของอุตสาหกรรม. ตำแหน่งเพิ่มเติมสำหรับการใช้งานการผลิตซอฟต์แวร์แบบฝังตัวสำหรับวิศวกรซอฟต์แวร์ ส่วนใหญ่เป็นเพราะมันอาจจะบอกเป็นนัยว่าคุณจะต้องจัดการกับฮาร์ดแวร์ด้วยเช่นกันในด้านนี้ดังนั้นคุณจึงต้องจัดการกับด้านอื่น ๆ ของการผลิตและ "ระบบ" ทั้งหมดที่คุณผลิต ไม่ใช่แค่บิตที่กำลังขันอยู่ข้างใน ในทางตรงกันข้ามของสเปกตรัมคุณไม่เห็นคำว่าวิศวกรถูกนำมาใช้ในตำแหน่งการผลิตซอฟต์แวร์ทางการเงิน อาจเป็นเพราะวิวัฒนาการเลียนแบบของอุตสาหกรรมนี้จากรุ่นก่อน (เช่นวิศวกรรมฝังตัวค้นหารากฐานในวิศวกรรมยานยนต์) หรือเพราะพวกเขาต้องการให้เครดิต / น้ำหนักมากหรือน้อย
และเพื่อให้แน่ใจว่าหลวมทุกคนในหมอกคุณจะพบชื่อเรื่องอื่นผสมกันทั้งคู่ (เช่น "Software Development Engineer" หรือ "Software Engineer in Test"!) จากนั้นคนอื่น ๆ ที่เน้นสะพานที่บ้าคลั่งมากขึ้นกับโดเมนอื่น ๆ ( คิดว่า "ผู้ออกแบบซอฟต์แวร์" และวิธี "สถาปัตยกรรมซอฟต์แวร์" อาจเป็นการขโมยคำศัพท์ที่ไร้ยางอาย) และปล่อยให้พวกเขาเข้ามา: Release Engineer, Change Development Manager, Build Engineer (อันนั้นจะไปที่ ffaaarrrrrr เช่นกัน) และบางครั้งก็แค่ "วิศวกร"
หวังว่าจะช่วยได้แม้ว่ามันจะไม่ใช่คำตอบจริงๆ
โอ้และนั่นหมายความว่า บริษัท ใหม่ของคุณกำลังพยายามล่อลวงคุณด้วยชื่อใหม่หรือว่าพวกเขาไม่สนใจชื่อเรื่องหรือว่าคุณกำลังจะมีตำแหน่งระดับสูงขึ้น วิธีเดียวที่จะรู้คืออ่านสเป็คงานของคุณพูดคุยกับพวกเขาและในที่สุดก็ให้ภาพและตัดสินด้วยตัวคุณเอง ฉันหวังว่ามันเป็นตัวเลือกหลังและคุณมีความสุขกับมัน (และอาจเป็นเงินสดมากขึ้นในนั้น) ;)
วิศวกรซอฟต์แวร์คือคนที่ทำงานใน บริษัท ที่เรียกคนที่เขียนซอฟต์แวร์ให้พวกเขา "วิศวกรซอฟต์แวร์"
โปรแกรมเมอร์คือผู้ที่ทำงานกับ บริษัท ที่เรียกคนที่เขียนซอฟต์แวร์ให้กับพวกเขา "โปรแกรมเมอร์"
นอกจากนี้ยังมีนักพัฒนาหรือนักพัฒนาซอฟแวร์ พวกเขาคือคนที่ทำงานใน บริษัท ที่เรียกคนที่เขียนซอฟต์แวร์สำหรับพวกเขา "นักพัฒนา" หรือ "นักพัฒนาซอฟต์แวร์" ตามลำดับ
ดังนั้นจึงมี "วิศวกรซอฟต์แวร์" "โปรแกรมเมอร์" และ "นักพัฒนา" "Coder" และคุณจะไม่มีวันลืม "ผู้เชี่ยวชาญ SOA"
สิ่งเหล่านี้เป็นเงื่อนไขทางการตลาดสำหรับผู้ที่ไม่สามารถพูดอะไรที่มีความหมายในประวัติย่อของพวกเขาเช่นบทบาทที่แท้จริงของพวกเขา (ไม่ใช่แค่ตำแหน่งงาน) ในตำแหน่งก่อนหน้า
ในโฆษณาตำแหน่งงานความแตกต่างนั้นขึ้นอยู่กับบุคคล HR
บรรทัดล่าง: ทุกคนมีของตัวเองใน "สิ่งที่ทำให้พนักงานที่ดีที่ทำงานกับรหัส" และบางคนชอบที่จะเชื่อมโยงทักษะดังกล่าวและเช่นกับชื่อดังกล่าวและเช่น
คุณต้องทำอะไร โฆษณาตำแหน่งงานควรอธิบายเกี่ยวกับทักษะที่จำเป็นและประวัติย่อควรอธิบายรายละเอียดประสบการณ์ของผู้สมัคร
ไม่มีความแตกต่าง พวกเขาเป็นสิ่งเดียวกัน อย่างไรก็ตาม บริษัท อาจมีคำบรรยายลักษณะงานอย่างเป็นทางการโดยใช้คำศัพท์และจากนั้นอาจมีความหมายเฉพาะของ บริษัท ต่อคำนั้น
การเขียนโปรแกรมเป็นเรื่องเกี่ยวกับรหัส วิศวกรรมซอฟต์แวร์เป็นเรื่องของผลิตภัณฑ์
ขึ้นอยู่กับว่า บริษัท กำหนดตำแหน่งอย่างไร อาจเป็นได้ว่าในฐานะวิศวกรซอฟต์แวร์คุณจะมีโอกาสในการตัดสินใจออกแบบมากขึ้นในขณะที่ในฐานะนักพัฒนาซอฟต์แวร์พวกเขาจะให้ไดอะแกรม UML แก่คุณและคุณจะเขียนโปรแกรม
แต่ไม่มีคำจำกัดความที่แท้จริงที่ตั้งไว้เพื่อให้ผู้คนรู้ว่าคุณทำอะไรหรือมีประสบการณ์อย่างไร
เมื่อฉันเป็นสถาปนิก / นักพัฒนาชื่อของฉันคือนักวิทยาศาสตร์คอมพิวเตอร์ แต่ฉันจะบอกคนที่ฉันเป็นโปรแกรมเมอร์เนื่องจากสองคนแรกไม่ได้ถูกกำหนดอย่างง่ายดาย แต่คนส่วนใหญ่รู้ว่าโปรแกรมเมอร์ทำอะไร
หากชื่อเรื่องมีความสำคัญต่อคุณให้ยอมรับชื่อใหม่เนื่องจากวิศวกรจะมีเสียงดังกว่านักพัฒนา
ฉันไม่คิดว่าจะมี "ความแตกต่างอย่างเป็นทางการ" สำหรับประสบการณ์ของฉันที่อาจหมายถึง:
นอกจากนี้ยังเป็นคำศัพท์ทางแฟชั่นที่เปลี่ยนไป ... คำแรกคือ "โปรแกรมเมอร์" จากนั้น "วิศวกรซอฟต์แวร์" และตอนนี้ดูเหมือนจะเป็น "นักพัฒนา" ...
เป็นการดีกว่าที่จะอ่านคำบรรยายลักษณะงานหรือกับคนใน บริษัท ที่เฉพาะเจาะจง
ในบางเขตอำนาจศาล "วิศวกร" มีความต้องการที่จะเป็นวิศวกรมืออาชีพ ในหมู่คนที่เชื่อถือได้ อย่างไรก็ตามในพื้นที่อื่นอาจไม่มีความแตกต่างเนื่องจากฉันเป็น "วิศวกรออกแบบ Softwere" ที่ทำงานในรัฐวอชิงตันเมื่อหลายปีก่อน
วิศวกรซอฟต์แวร์มักจะทำงานกับระบบที่มีขนาดใหญ่มากใช้เวลาหลายปีในการพัฒนาเช่น 5-16 ปีเป็นต้น โปรแกรมเมอร์มักจะมีต้นแบบของการเข้ารหัสและไม่มีอะไรอื่นอีกแล้ว แต่จริงๆแล้วมันขึ้นอยู่กับองค์กรที่คุณทำงานและวิธีที่ฝ่ายทรัพยากรบุคคลทำการตลาดตามที่อธิบายไว้ข้างต้น พวกมันเป็นสิ่งเดียวกัน อย่ายึดติดกับชื่อเรื่องมากเกินไปเพราะมันมีความหมายเหมือนกัน