อยากรู้ว่าทำงานเกี่ยวกับอะไร ช่วยอธิบายหน่อยครับ เข้าใจแต่พวกที่ที่เรียน Com Sci ว่าาจะเจาะเกี่ยวกับการเขียนโปรแกรมอย่างเดียว ส่วน Computer Engineering นี่จะส่วนมากจะเน้นเกี่ยวกับการออกแบบฮาร์ดแวร์+ซอฟต์แวร์อีกหน่อย แล้ว Software Engineer นี่คือพวกอะไรหรอ งงๆอยู่ครับ คือพวกออกแบบ+สร้าง+พัฒนา+ดูแลใช่หรือเปล่าคับ

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

ของต่างประเทศไม่รู้ แต่ผมว่าของไทยต้องเป็นคนคุยกับลูกค้าด้วยแหละครับ แบบต้องการโปรแกมลักษณะไหน วางแผนโปรเจคด้วย(เป็นโปรเจคแมนเนเจอร์) งานมันก็คาบๆ กันอยู่

(จากที่เรียนมา)

ในต่างประเทศผมก็ไม่รู้เช่นกัน แต่ในไทย Software En. เป็นแค่วิชาหนึ่งใน Com En. กับ Com Sci อ่ะคับ เรียนไปเพื่อให้รู้ถึงปัญหาของการออกแบบ Software การควบคุมโครงการพัฒนา software การคิดมูลค่าของ software แล้วก็พวกการยกระดับการพัฒนาพวก CMMI ขั้นพื้นฐานอ่ะคับ
ผมก็รู้ไม่มากเท่าไหร่ ผิดถูกยังไง เดี๋ยวคงมีคนรู้จริงมาอธิบายต่อไปครับ

+1 ครับ
เพิ่มเติมอีกนิด คือ เรียนรู้เกี่ยวกับ life cycle ของ software
software ก้อมีวันหมดอายุ ดังนั้นจึงต้องมีการออกแบบ วางแผน ประเมิน software
เลือกใช้เทคโนโลยีที่ดี ควบคุมมาตรฐานของ software ให้มีประสิทธิภาพ
ปัจจุบันมีดัชนีชี้วัดมาตรฐานแบ่งไปตาม CMMI Level ครับ

จากที่รู้มาป.ตรีในไทยไม่มีที่ไหนเปิดสอนสาขาSoftware Engineer
มีแต่เรียนวิชาของ Software Engineer ทั้ง Com En.,Com Sci และ IT
ฉนั้นเท่าที่เคยเรียนมา SoftwareEn. ไม่จำเป็นต้องเขียนโค๊ดเก่ง ไม่จำเป็นต้องพูดเก่ง แต่ต้องออกแบบและแก้ไขโครงสร้างและส่งต่อให้โปรแกรมเมอร์โดยที่ผิดพลาดน้อยที่สุด

ที่ ม แม่ฟ้าหลวง ก็มีครับ เรียนอยู่ครับ ^_^ อากาศดีๆ ดูหมอกยามเช้าๆทุกวัน หุหุ ถ้าอยากรู้ว่ามาเรียนที่นี่แล้ว จะต้องเจอกับวิชาอะไร กดลิ้งเลยครับ http://bit.ly/dHeweR แต่อาจจะยังไม่ครบทุกวิชาน้ะครับ เพราะสำหรับเด็กใหม่ ได้มีการปรับปรุงหลักสูตร ตามนโยบายของมหาวิทยาลัย

ปล.ที่นี่ เรียนเป็นภาษาอังกฤษทุกสาขาวิชา (ยกเว้น นิติศาสตร์) แต่ไม่ใช่หลักสูตรอินเตอร์น้ะครับ

ตามข้างบนเลยคับ ผมมาหาข้อมูลก่อนจะเลือกจะไปเรียนที่มช.คับ
แล้วทำไมที่จุฬาโดนยุบละนั้น ชักเสียวๆละนั้น -*-

lew Sun, 13/02/2011 - 22:33

Software Engineering นี่ผมเรียกว่าศาสตร์แห่งการ "ผลิต" ซอฟต์แวร์ครับ

ต้องเข้าใจก่อนว่ามันไม่ใช่การเรียน "เขียนโปรแกรม" เพียงอย่างเดียว หัวใจของ Software Engineering คือการ "ทำซ้ำได้" ครับ ถ้าเราบอกว่าเราเขียนโปรแกรมบัญชีให้กับบริษัท A แล้วความซับซ้อนประมาณหนึ่ง เขียนเสร็จแล้วไปทำใหม่ให้กับบริษัท B ที่ความซับซ้อนเท่า ก็ควรใช้เวลาเท่ากันหรือน้อยกว่า ภายใต้คุณภาพที่เท่าเทียมกัน

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

  • จะบอกได้อย่างไรว่าซอฟต์แวร์ที่ว่าซับซ้อน "พอๆ กัน" หรือซับซ้อนกว่า หรือง่ายกว่า?
  • จะบอกได้อย่างไรว่าซอฟต์แวร์ที่ผลิตมามีคุณภาพเท่าเทียมกันดีกว่า แย่กว่า?
  • จะบอกได้ประเมินอย่างไรว่าเราต้องใช้เวลาเท่าใหร่ในการพัฒนา เราต้องใช้คนกี่คน?

เรื่องที่เรียนใน Software Engineering จึงไม่ใช่แค่การเรียนเขียนโปรแกรมครับ มันรวมไปถึงการแบ่งงาน, การจัดการ, การทดสอบ, ฯลฯ

Sxton Mon, 14/02/2011 - 00:08

สำหรับผม แปลตรงตัวเลยครับมันก็คือ "วิศวกรรมซอฟท์แวร์"

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

เช่นเดียวกันกับซอฟแวร์ ถ้าเอาใกล้ๆตัวก็ซอฟแวร์เกมครับ
การจะสร้างเกม 1 เกมก็ใช่ว่าจะต้องมานั่งโค้ดกันตั้งแต่ระบายสีลงบนจอทีละจุด เดี๋ยวนี้เค้ามี API
หรือ Engine ให้ใช้กันแทบทุกส่วนไม่ว่าจะเป็น Graphic, AI, 3D, Physic, Network
หรือ Game Engine ที่แค่เคาะโค้ดไม่กี่บรรทัด ใส่ภาพสวยๆเข้าไปแล้วออกมาเป็นเกมได้ก็ยัังมี

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

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

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

ถ้ายกตัวอย่างง่ายๆ ก็ตามหลักการ Software Development Life Cycle (SDLC) เช่น Waterfall Model ซึ่งเป็นขั้นตอนการพัฒนาโครงการที่ปัจจุบันใช้กันค่อนข้างเยอะ (น่าจะใช้เยอะเพราะมันเป็นไปตามธรรมชาติของการพัฒนา ตามความคิดของผมนะ) โดยตัวโมเดลจะเริ่มที่ Requirements -> Design -> Implementation -> Verification -> Maintenance ครับ (ตัวนี้เหมือนจะเป็น Waterfall แบบเก่าคือทำเสร็จเป็นเรื่องๆ ไป แต่แบบใหม่จะสามารถทำย้อนกลับได้ด้วย คือหากกำลังทำ Design อยู่แล้วพบว่าผิดพลาดไม่ตรงตาม Requirement ก็จะไปทำส่วนของ Requirements ใหม่)

  • Planing คือช่วงเกิดเริ่มขั้นตอนของ Requirements ซึ่งจะเป็นส่วนของ Project Management โดยจะเป็นการวางแผนเกี่ยวกับโครงการทั้งหมดว่าใช้ระยะเวลาเท่าไร จะใช้ทรัพยากรอย่างไร จะจัดสรรยังไง
  • Requirements คือส่วนของการไปเก็บความต้องการของลูกค้าว่าเค้าอยากจะได้โปรแกรมแบบไหน ระบบอย่างไร ต้องพยายามถามออกมาให้ได้แม้ว่าเค้าจะไม่รู้เรื่องด้านเทคนิคเลยก็ตาม จากนั้นเราก็จะนำ Requirements ที่ได้มาวิเคราะห์เพื่อออกแบบระบบ โดยส่วนนี้จะต้องทำการแปลง Requirements ที่เป็นความต้องการของลูกค้าซึ่งไม่เกี่ยวข้องกับด้านเทคนิคใดๆ (ถ้าโชคดีเจอลูกค้าที่รู้เรื่องเทคนิคหน่อยก็คุยง่าย แต่ถ้าโชคร้ายเค้าไม่รู้เรื่องเราก็ต้องสามารถตีความต้องการของลูกค้าให้ได้) มาเป็นข้อมูลที่เป็นเชิงเทคนิค เพื่อนำมาใช้ในการออกแบบในขั้นตอนของการ Design ต่อไป
  • Design คือการนำ Requirements ที่ผ่านการวิเคราะห์แล้วมาออกแบบโครงสร้างของระบบทั้งหมดเช่น จะใช้วิธีการไหนในการพัฒนา, จะใช้เทคโนโลยีอะไร, จะใช้ Hardware แบบไหน โดยการออกแบบก็ต้องคำนึงถึงสิ่งต่างๆ มากมายทั้งจำนวนคนเข้าใช้, ความปลอดภัยของระบบ, ราคา (เทคโนโลยีต่างกันราคาก็ต่างกัน), และเรื่องอื่นๆ อีกมากมาย
  • Implementation คือการ Coding หรือช่วงการพัฒนา โดยในส่วนของ Design และ Implementation จะมีความเกี่ยวข้องกันค่อนข้างมาเพราะหาก Design ผิดพลาดก็จะทำให้ Implement ผิดพลาดเช่นกัน โดยเท่าที่ได้ยินมาเค้าจะใช้หลักการ 80-20 คือใช้เวลาในการออกแบบ 80% และเวลาในการเขียน Code 20% เพราะหากเราออกแบบได้ถูกต้อง เราก็ไม่ต้องกลัวว่าจะเขียน Code ได้ผิด ไม่ต้องมาไล่แก้ Code นั้นเอง
  • Verification คือส่วนของการทดสอบระบบที่เราพัฒนาขึ้นมา โดยจะเป็นการหาความผิดพลาดของระบบที่อาจจะเกิดขึ้น หรือเกิดขึ้นแล้ว แล้วก็ทำการแก้ไขเพื่อทำให้ระบบที่พัฒนาเกิดข้อพิดพลาดน้อยที่สุด
  • Maintenance คือส่วนของการส่งมอบ ติดตั้ง และดูแลระบบหลังจากพัฒนาเสร็จเรียบร้อย

ที่กล่าวมาข้างต้นเป็นหลักการคร่าวๆ ของ Waterfall Model ซึ่งเป็น SDLC หลักการของ Software Engineering ครับ โดยจากทั้งหมดที่กล่าวมายังไม่ได้พูดถึงเรื่อง Quality เพิ่มเติมอีกนะครับ ไม่ว่าจะเป็นเรื่องของ CMMI มาตรฐานในการพัฒนา หรือการทำ Software Configuration Management เพื่อควบคุม Version และปัญหาในการพัฒนา และยังมีเรื่องอื่นๆ ที่ต้องศึกษาอีก

และสุดท้ายโดยส่วนตัวแล้วไม่ทราบเหมือนกันว่าถ้าเป็น Software Engineer มันทำอะไร แต่เท่าที่ได้ยินมาเหมือนจะเป็นแค่ Developer หรือ Programmer เท่านั้นเองเพียงแค่เปลี่ยนชื่อเรียกใหม่เฉยๆ และโดยศาสตร์ของ Software Engineering เป็นเพียงแค่ศาสตร์ๆ หนึ่ง ซึ่งผมคิดว่า Software Engineer เพียงตำแหน่งเดียวคงไม่สามารถทำทั้งหมดที่กล่าวมาได้แน่นอน ดังนั้นจึงมีการแตกแยกไปไหนมากมายหลายอาชีพ ทั้ง Project Manager, Business Analyst, System Analyst, System Architect, Developer, Tester, Quality Assurance, Software Configuration Management Engineer, etc. โดยสายอาชีพที่กล่าวมานี้จะมีความเกี่ยวข้องกับศาสตร์ของ Software Engineering ครับ

ข้อมูลจากความรู้ที่ได้เรียน ได้ศึกษา และได้ฟังมาจากผู้มีประสบการณ์ในการทำงานเกี่ยวกับ Software Engineering ครับ

ผมว่า Waterfall model เป็นวิธีที่ใช้ไม่ได้ผลเท่าไหร่นะ ถ้าอยากให้ software ที่ได้ตรงใจลูกค้ามากที่สุด ถึงแม้ว่าเราจะมีขั้นตอนของการทำ requirement analysis แต่เชื่อเถอะครับ ลูกค้าก็คงไม่บอกลายละเอียดในทุกๆจุดที่จะทำให้ software ตรงความต้องการได้ในครั้งเดียว

ผมยกตัวอย่างการสร้างบ้าน ลูกค้าบอกอยากได้บ้านสไตล์ยุโรป ถ้าเรามีทีมสถาปนิกทำการ simulation รูปแบบบ้านได้ออกมาก่อน แบบนี้ลูกค้าที่เห็นคงสั่งปรับเปลี่ยนรูปแบบได้ทันทีครับ เพราะสิ่งที่ลูกค้าต้องการ คือ รูปร่างหน้าตา

แต่การออกแบบ software นอกจากรูปร่างหน้าตาที่จะต้องออกแบบให้ดูแล้ว ยังต้องมีการออกแบบการใช้งานด้วย ถ้าลูกค้าต้องการ software ที่สามารถส่ง email ได้ เหล่าวิศวกรยังต้องมานั่งเลือกว่าจะใช้เทคโนโลยี pop3/smtp, exchange server, imap ซึ่งแต่ละอย่างก็มีข้อดีข้อเสียต่างกันไป ถ้าเลือกมาไม่ตรงใจลูกค้า ก็อาจจะต้องทำใหม่ได้

ดังนั้น Software Engineer จะต้องมีการมาจัดการเรื่อง Change ด้วยครับ ว่าจะยอมให้เปลี่ยนแปลงอะไรได้บ้าง ควบคุมเวลา ค่าใช้จ่าย จำนวนคนที่ใช้ทำงาน ฟีเจอร์ การ support ในอนาคต เพราะตามลำพังถ้าไม่คิดถึงเรื่องพวกนี้ก่อนล่วงหน้า Software ที่ส่งมอบไปอาจจะไม่ได้เป็นที่ต้องการของลูกค้าครับ

+1
แล้วก็ที่ผมยก Waterfall เพราะใช้กันเยอะและเข้าใจได้ง่าย ไม่ซับซ้อนมากโดยส่วนใหญ่จะใช้เยอะกับหน่วยของภาครัฐเนื่องจากมันต้องเป็นไปตามกระบวนการเป็นขั้นเป็นตอน (จะทำ Process แต่ล่ะอย่างนานมาก อย่างจะหาข้อสรุปของ Requirement ทีก็ต้องดูแล้วดูอีกกว่าจะได้ก็เป็นหลายเดือน) แล้วก็แต่ล่ะ Model ก็มีข้อดีข้อเสียต่างกันไป ก็ต้องเลือกใช้ให้เหมาะสม แล้วก็ถ้าอยากให้ได้ตรงใจลูกค้าก็ต้องใช้ Agile แต่ก็มีข้อเสียที่ไม่ค่อยจะมี Document มา Support สักเท่าไร หรือจะใช้แบบ RUP ก็ได้แต่ก็ต้องการคนที่มีความสามารถนิดนึ่ง

+1 ต้องยอมรับเลยว่าเรื่องของ Change และการพัฒนาซอฟต์แวร์เป็นของคู่กัน Software Engineering เองก็เกิดขึ้นมาเพื่อบริหารจัดการในส่วนนี้ด้วยเหมือนกัน เพื่อเป็นการอธิบายเพิ่มเติมให้คุณ By_Myself ที่ได้ตั้งกระทู้นี้ขึ้นมา ผมขอเสริมในเรื่องของการจัดการ Change อีกสักนิดละกันครับ

ถ้าหากเรามาลองคิดดูดีดีส่วนย่อยๆ ต่างๆ ของ Software Engineering นั้นก็ส่วนเกี่ยวข้องกับ Change ด้วยทั้งนั้น ผมขอเริ่มที่

  • Requirement Management ก็เพราะลูกค้ามักไม่เข้าใจสิ่งที่ตัวเองต้องการจริงๆ แต่แรก แต่จะค่อยๆ นึกออกมาทีละนิดๆ เปลี่ยนแปลงไปตามสิ่งที่เราเสนอไปให้ดู Requirement Management จึงเป็นเรื่องสำคัญมาก ที่จะทำให้ความต้องการนั้นอยู่ภายใต้ขอบเขตที่กำหนด และยอมรับได้ทั้งสองฝ่าย (ไม่งั้นก็เปลี่ยนไปเรื่อยๆ โปรเจคปิดไม่ลงซักที)
  • ถัดมาลองมาดูในส่วนของการทำ Software Configuration Management ที่เปรียบเสมือนการกำหนด, ควบคุม และบันทึก Change ที่เกิดขึ้น ไม่ว่าจะเป็นการควบคุม version ของ source code, tools, documents และยังเป็นการสำรองข้อมูลที่สำคัญๆ ของโปรเจคไปในตัวอีกด้วย
  • อีกเรื่องหนึ่งที่สำคัญไม่แพ้กันก็คือเรื่องของ Risk Management ซึ่งก็คล้ายๆ กับป้อมปราการที่เราจะเอาไว้รับมือกับ Change ที่มีความอันตรายต่อโปรเจค โดยจะแบ่งเป็นระดับๆ ตามความรุนแรงที่ประเมินได้เทียบกับความเสียหายที่อาจเกิดขึ้นกับโปรเจค (ดูจาก 3 ปัจจัยหลักๆ ได้แก่ เวลา เงิน และขอบเขตการพัฒนา)เพื่อที่ว่าเวลาที่มันเกิดขึ้นแล้ว เราจะสามารถรับมือ และจัดการกับมันได้อย่างทันท่วงที ด้วยวิธีการที่ผ่านการไตร่ตรองมาอย่างดีแล้วนั่นเอง

โดยส่วนตัวแล้วผมเชื่อว่า Software Engineering นั้นจะเน้นที่ ส่วนหลักๆ ก็คือ Change Management เพื่อรับมือกับความเปลี่ยนในทุกๆ ด้านที่อาจเกิดขึ้นระหว่างการพัฒนา และ Development process เพื่อให้การพัฒนาเป็นไปตามกระบวนการที่ดีที่สุด (process ที่ดีจะต้องสร้างจากการนำ best practice ในแต่ละจุดมาผสานเข้าด้วยกัน) การควบคุมคุณภาพของ Software ก็จะทำได้ง่ายขึ้น ส่งผลให้การพัฒนา Software มีมาตราฐานที่ดีมากยิ่งขึ้น ปัญหาจากการใช้งานลดน้อยลง และสามารถพัฒนาได้แล้วเสร็จไวกว่าเดิม