เรียกย่อๆว่า SDLC หรือ วงจรพัฒนาระบบ

ภาพประกอบ SDLC คืออะไร
System Development Life Cycle คืออะไร ?

มาทำความเข้าใจเกี่ยวกับ Algorithm ว่ามันคืออะไร

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

 

Software Development Life Cycle คืออะไร ?

Software Development Life Cycle หรือ SDLC คือขั้นตอนกระบวนการทำงานระดับพื้นฐานที่ใช้ในการวางแผนงานการพัฒนาซอฟต์แวร์ตั้งแต่เริ่มต้นจนจบในโปรเจคของทีมนั่นเอง ไม่ว่าจะเป็น Front end, Back end, Database, QA Tester, Network Engineer, System Engineer, DevOps และทีมอื่น ๆ รวมไปถึงทีม Business และทีม Product ให้ทุกฝ่ายที่มีส่วนร่วมในโปรเจคเห็นภาพแผนงานไปในทิศทางเดียวกัน และเพื่อช่วยในการพัฒนาและจัดการกับโปรแกรมคอมพิวเตอร์และระบบซอฟต์แวร์ต่าง ๆ อย่างมีระเบียบและมีวิธีการที่สามารถควบคุมและดูแลรักษาโครงการได้อย่างมีประสิทธิภาพ

SDLC แบ่งออกเป็น 7 Phrase ดังนี

โดยขั้นตอนหรือกระบวนการ SDLC ก็จะประกอบไปด้วย 7 เฟสหลักๆ ด้วยกันดังต่อไปนี้ 

Phrase 1  Planning

ภาพประกอบ Planning

ขั้นตอนการวางแผน

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

Phrase 2  Requirement & Analysis

ภาพประกอบเก็บความต้องการลูกค้า

เก็บความต้องการของลูกค้าและวิเคราะห์

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

Phrase 3  Design

ภาพประกอบการออกแบบ

ขั้นตอนการออกแบบ

ขั้นตอนต่อมาเรียกได้ว่าช่วงเวลาแห่งการประสานความคิดก็ว่าได้ คือ การเริ่มออกแบบระบบทั้งฝั่งระบบหน้าบ้าน (User interface Design) และ ระบบหลังบ้าน (System Design และ Software Architecture Design) จากแผนหรือข้อมูลที่ได้เก็บจาก Requirement ที่ผ่านการวิเคราะห์ในขั้นตอนก่อนหน้านี้มาแล้ว เพื่อให้เห็นภาพใหญ่ให้ผู้เชี่ยวชาญในแต่ละส่วนสามารถรีวิวร่วมกันและให้คำแนะนำกันได้ ลดการเกิดปัญหาก่อนที่เริ่มพัฒนาระบบ

Phrase 4 Development

ภาพประกอบการพัฒนาซอฟต์แวร์

ขั้นตอนการพัฒนาซอฟต์แวร์

เริ่มต้นพัฒนาระบบ เขียนโปรแกรมจากแผนที่ได้จากขั้นตอน Design โดยระหว่างการพัฒนาระบบในขั้นตอนนี้ของทีม Software Developer หรือ Programmer จะมีการใช้เครื่องมือต่าง ๆ เข้ามาช่วยให้ทำพัฒนาระบบซอฟต์แวร์ ไม่ว่าจะเป็น Version control หรือการทำ Code Review ที่มีส่วนช่วยให้ทีม Software Developer ทำงานร่วมกันมีประสิทธิภาพมากขึ้น การพัฒนาซอฟต์แวร์เป็นขั้นตอนที่กำลังสำคัญใน SDLC เนื่องจากมันเป็นกระบวนการสร้างซอฟต์แวร์จริง ๆ ที่ตอบสนองต่อความต้องการและการออกแบบของโครงการ การพัฒนาซอฟต์แวร์ที่มีคุณภาพและมีประสิทธิภาพมีบทบาทสำคัญในการสร้างผลลัพธ์ที่เป็นที่พึงพอใจของผู้ใช้งาน

Phrase 5 QA Testing

ภาพประกอบ QA Testing

ขั้นตอน QA Testing

เมื่อพัฒนาเสร็จก๊จะทำการทดสอบระบบ เพื่อตรวจสอบความผิดพลาด หรือ ความเสียงที่สามารถเกิดขึ้นได้ รวมไปถึงทดสอบว่าระบบที่พัฒนานั้นสามารถทำได้ตาม Requirements ที่ตั้งไว้หรือไม่ โดยจะมีการตั้ง Test Case เพื่อทำการทดสอบการทำงานของระบบตามรายการที่ลิสไว้ หากเจอปัญหาจะต้องวิเคราะห์ว่าควรไปแก้ไขที่ส่วนไหน ในปัจจุบันนิยมการทำ Automated Testing มาช่วยในการ Run test ต่าง ๆ ให้มีประสิทธิภาพและมีความรวดเร็วมากยิ่งขึ้น หากพบเขอปัญหาเช่น Bug Error ต่าง จะได้ส่งกลับให้ทีมพัฒนาอีกรอบเสียก่อนจะนำไปให้กับผู้ใช้งาน

Phrase 6 Deployment

ภาพประกอบการ Deployment

ขั้นตอน Deployment

หลังจากที่ได้ทดสอบระบบเรียบร้อยแล้วขั้นตอนถัดไปคือการนำโค้ด หรือ โปรแกรมทั้งหมดที่ได้พัฒนา อัพเข้าสู่ระบบ Production โดยปกติแล้วในขั้นตอนนี้ก็จะมีการ Deploy ไปทดลองใช้งานบนระบบ Test หรือ UAT (User Acceptance Testing) ที่จะมีทรัพยากรเทียบเท่ากับระบบ Production ก่อน เพื่อตรวจสอบความพร้อมสุดท้ายว่าระบบสามารถทำงานได้ไม่มีปัญหาแน่นอนหรือไม่ แต่บางทีมอาจจะทดสอบ Deploy ขั้นตอนนี้ใน Phrase Testing อยู่แล้ว เมื่อระบบสามารถทำงานได้ตามคาดหวังไม่มีปัญหาก็สามารถเปิดระบบให้ user ได้ใช้งานบน Production ได้เลยโดยส่วนมากขั้นตอนนี้ทางทีมก็จะมีการติดตามคอยดูแลลูกค้าแนะนำการใช้งาน จัดทำสื่อ VDO หรือ คู่มือ เพื่อให้ผู้ใช้งานสามารถใช้งานได้หลังจากการอัพเดทอีกด้วย

Phrase 7 Maintenance

ภาพประกอบการ Maintenance

ขั้นตอน Maintenance โปรแกรม

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

 

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

อ้างอิง
What Is SDLC? Understand the Software Development Life Cycle ,[ออนไลน์], เข้าถึงได้จาก https://stackify.com/what-is-sdlc/
What Is the Software Development Life Cycle? SDLC Explained ,[ออนไลน์], เข้าถึงได้จาก https://www.coursera.org/articles/software-development-life-cycle
What Is SDLC (Software Development Lifecycle)? ,[ออนไลน์], เข้าถึงได้จาก https://aws.amazon.com/what-is/sdlc/
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แนะนำเวอร์ชัน Python ในปัจจุบัน Python 3.10 หรือ Python 3.11
โดย athirach.offcial ศ 29 มี.ค. 2024 3:20 pm บอร์ด Python Knowledge
0
1
ศ 29 มี.ค. 2024 3:20 pm โดย athirach.offcial View Topic แนะนำเวอร์ชัน Python ในปัจจุบัน Python 3.10 หรือ Python 3.11
การทำงานกับ Selenium ร่วมกับคำสั่ง if-else
โดย athirach.offcial ศ 29 มี.ค. 2024 3:12 pm บอร์ด Software testing
0
2
ศ 29 มี.ค. 2024 3:12 pm โดย athirach.offcial View Topic การทำงานกับ Selenium ร่วมกับคำสั่ง if-else
การใช้ฟังก์ชัน ScreenShot ใน Selenium เพื่อจัดการการถ่ายภาพหน้าจอของเว็บไซต์
โดย athirach.offcial ศ 29 มี.ค. 2024 3:00 pm บอร์ด Software testing
0
6
ศ 29 มี.ค. 2024 3:00 pm โดย athirach.offcial View Topic การใช้ฟังก์ชัน ScreenShot ใน Selenium เพื่อจัดการการถ่ายภาพหน้าจอของเว็บไซต์
การใช้งานฟังก์ชัน Window ใน Selenium เพื่อจัดการกับหน้าต่างของเบราว์เซอร์
โดย athirach.offcial ศ 29 มี.ค. 2024 2:36 pm บอร์ด Software testing
0
7
ศ 29 มี.ค. 2024 2:36 pm โดย athirach.offcial View Topic การใช้งานฟังก์ชัน Window ใน Selenium เพื่อจัดการกับหน้าต่างของเบราว์เซอร์
การใช้ Selenium เพื่อส่งคีย์ (send_keys) ไปยังฟิลด์ค้นหา
โดย athirach.offcial ศ 29 มี.ค. 2024 1:57 pm บอร์ด Software testing
1
7
ศ 29 มี.ค. 2024 2:26 pm โดย athirach.offcial View Topic การใช้ Selenium เพื่อส่งคีย์ (send_keys) ไปยังฟิลด์ค้นหา
selenium การใช้ driver.get เพื่อเข้าสู่เว็บไซต์โดยอัตโนมัติ
โดย athirach.offcial ศ 29 มี.ค. 2024 1:50 pm บอร์ด Software testing
1
12
ศ 29 มี.ค. 2024 2:20 pm โดย athirach.offcial View Topic selenium การใช้ driver.get เพื่อเข้าสู่เว็บไซต์โดยอัตโนมัติ
พิมพ์ pdf จาก excel สามารถกำหนดให้พิมพ์บนล่างก่อนแล้วค่อยไปพิมพ์ซ้ายไปขวาได้มั้ยคะ
โดย MBMoo ศ 29 มี.ค. 2024 1:34 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
3
14
ศ 29 มี.ค. 2024 1:48 pm โดย mindphp View Topic พิมพ์ pdf จาก excel สามารถกำหนดให้พิมพ์บนล่างก่อนแล้วค่อยไปพิมพ์ซ้ายไปขวาได้มั้ยคะ
เมธอด dict() ในการพัฒนาระบบ Python การสร้างพจนานุกรมอย่างมีประสิทธิภาพ
โดย athirach.offcial พฤ 28 มี.ค. 2024 12:33 pm บอร์ด Python Knowledge
0
19
พฤ 28 มี.ค. 2024 12:33 pm โดย athirach.offcial View Topic เมธอด dict() ในการพัฒนาระบบ Python การสร้างพจนานุกรมอย่างมีประสิทธิภาพ