กว่าจะได้ Software ต้องผ่านอะไรมาบ้าง

Arthorn Kittinukul
I GEAR GEEK
Published in
3 min readApr 18, 2019

สำหรับคนที่อยู่ในวงการ Developer คงเคยได้ยินคำว่า SDLC เเต่คนที่ไม่ได้อยู่หรือทำงานมาทางสายนี้เลย blog นี้ผมก็จะมาเล่าให้ฟังว่ากว่าจะได้ Software มาสักตัวนึงเนี้ยต้องผ่านอะไรมาบ้าง… เรามาเริ่มกันเลยยยยย

http://blog.strategystar.net/software-development-life-cycle-sdlc/

SDLC ย่อมาจาก Software Development Life Cycle การพัฒนา Software ตามปกติแล้วจะประกอบไปด้วย 5 ส่วนหลักๆ ด้วยกัน คือ การวางแผนและวิเคราะห์ (Planning and requirement analysis), การออกแบบ (Design), การนำไปใช้ (Implementation, Development), การทดสอบ (Testing) และการส่งมอบ (Deployment) ซึ่งทั้งห้าส่วนนี้สามารถใช้กับงานโครงการ Software ขนาดเล็กและขนาดใหญ่ได้เหมือนกัน

การวางแผนและวิเคราะห์ (Planning and requirement analysis)

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

ออกแบบ (Design)

หลังจากเราวางเเผนเเละเก็บ Requirement เป็นที่เรียบร้อยเเล้ว ขั้นต่อมาก็คือการออกแบบ ทั้ง Architecture, UX (User eXperience คือ ประสบการณ์ของผู้ใช้งาน ต่อการใช้งานของผู้ใช้งาน)เเละ UI (User Interface คือ ความสวยงามต่างๆ ชุดของหน้าจอ หน้าเว็บ และองค์ประกอบแบบรูปภาพต่างๆ เช่น ปุ่มและไอคอน)

การนำไปใช้ หรือ เขียนโปรแกรม (Implementation, Development)

ต่อมาก็ถึงขั้นตอนของการพัฒนา Software หลังจาก Requirement เเละ Design ได้รับการอนุมัติเเล้ว เริ่มจากการเขียน Code ตามที่ Design เอาไว้ จะแบบออกเป็นสองส่วนได้เเก่ Front-end ที่ต้องทำตาม Design, UX และ UI ส่วนที่สองจะเป็น Logic ที่ต้องทำตาม Back-end ขั้นตอนนี้จะใช้เวลาตาม scope ของ Requirement และ Design

การทดสอบ (Testing)

ขั้นตอนการทดสอบรวมถึงกระบวนการแก้ไขข้อบกพร่อง(Bug) หลังจากการ development จะต้องมีการตรวจข้อบกพร่องของ Code ทั้งหมดที่เกิดขึ้นระหว่างการพัฒนา การจัดทำเอกสารและ bug report จะถูกส่งกลับไปยัง Developer เพื่อแก้ไขและทำการทดสอบซ้ำจนกว่าปัญหาทั้งหมดจะถูกแก้ไขและการทำงานของระบบมีความเสถียร

การส่งมอบ (Deployment)

เมื่อโปรแกรมได้รับการพัฒนาและไม่มีปัญหาร้ายแรง — ถึงเวลาที่จะเปิดใช้งานสำหรับ User หลังจากการเปิดตัว Software ใหม่ ทั้งทีมพัฒนาเเละ User จะสามารถให้ข้อเสนอเเนะ เพื่อปรับปรุง Software ให้ดีขึ้น เพื่อให้แน่ใจว่าซอฟต์แวร์นั้นทันสมัยและปลอดภัย

SDLC Models

สำหรับ SDLC Models จะขอเเนะนำ 5 Models นี้ให้รู้จักแบบสั้นๆ เพราะเป็น Models ที่ส่วนใหญ่ใช้กัน

https://existek.com/blog/sdlc-models/

Waterfall model คือการพัฒนาโดยทำจากบนลงล่าง (ตามรูป) ซึ่งจะไม่มีการทำย้อนกลับไปด้านบน โปรเจคที่จะหยิบ Waterfall ไปใช้นั้น ต้องมี Requirement ที่นิ่งเเล้ว และ project ที่สั้น Models นี้มีน้อยโปรเจคที่จะเลือกมาใช้ เพราะระหว่างการพัฒนา Software นั้นมักจะมีอะไรเปลี่ยนไปหรือแก้ไขอยู่บ่อยๆ

https://existek.com/blog/sdlc-models/

Iterative model คือการแบ่ง project ออกเป็นหลายๆ pharse แต่ละ pharse จะประมาณ 2–6 สัปดาห์ model นี้เหมากับ Software ที่มีการวางแผนว่าต้องออกแบบมาไหน อย่างเคร่งครัด, สามารถนำไปใช้กับโครงการขนาดใหญ่ model นี้อาจจะมี detail เพิ่มขึ้นมาระหว่างทางได้

https://existek.com/blog/sdlc-models/

Spiral model เป็นการผสมระหว่าง Waterfall กับ Iterative คือการทำตั้งเเต่ Requirement ไปจนถึง Testing จนได้ Prototype การทำงานจะเเบ่งออกมาเป็นรอบๆ

https://existek.com/blog/sdlc-models/

V-shaped เป็นการเพิ่มขั้นตอนของ waterfall model จะเห็นว่าฝั่งซ้ายจะเป็น waterfall model เลย เเต่จะเพิ่ม testing เข้าไปในทุก Stage เรียกว่า “Validation and verification” โปรเจคนี้เหมาะสำหรับ project ที่จำเป็นต้องทำการทดสอบ Software อย่างเคร่งครัด, สำหรับ project ขนาดเล็กและขนาดกลางที่มีการกำหนด Software ไว้ล่วงหน้าอย่างเคร่งครัด

https://existek.com/blog/sdlc-models/

สุดท้ายกับ Agile model ในช่วงหลายปีมานี้มันจะได้ยินคำว่า Agile อยู่บ่อยๆ Agile เน้นการสื่อสารและปฏิสัมพันธ์กันระหว่างคน มากกว่าเครื่องมือต่างๆที่นำมาช่วย, เน้นทำผลิตภัณฑ์ มากกว่าการทำเอกสาร, เน้นตอบสนองผู้ใช้งาน, เน้นการปรับปรุงพัฒนา มากกว่าการทำตามแผนที่วางเอาไว้ สรุปแล้วคือเน้นการพัฒนาที่รวดเร็ว

สรุป

SDLC นั้นเป็นเพียงวิธีการของการพัฒนา Software ซึ่งมี model มากมายที่เอามาช่วยให้การพัฒนาง่ายขึ้นจากการเลือก model ที่เหมาะสม ส่วนตัวเเล้วตั้งเเต่สมัยเรียนอาจารก็ได้สอน model ต่างๆเเละให้ลองทำ project ตาม model ก็ได้เห็นทั้งข้อดีเเละข้อเสียของเเต่ละ model เเน่นอนว่าที่ I GEAR GEEK ก็ได้มีการพัฒนา Software โดยใช้ SDLC model เป็นตัวอย่างแต่ได้มีการปรับใช้ตาม project สำหรับคนที่อยากรู้ว่าเราทำงานยังไง หรือใช้ชีวิตกันยังไงสามารถติดตามกันได้ที่ facebook: https://www.facebook.com/igeargeek/ หรือถ้าใครอยากจะร่วมงานกับเราสามารถสมัครได้ที่ https://jobs.igeargeek.com/ สำหรับ blog นี้ผมต้องขอขอบคุณที่ติดตาม เเล้วเจอกัน Blog หน้า สำหรับวันนี้ สวัสดีครับบบบบบ

--

--