Connect with us

Hi, what are you looking for?

Special Story

ขั้นตอนการสร้างซอฟต์แวร์แอพพลิเคชั่น Part 1 ? Requirements

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

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

ก่อนอื่นเราควรต้องทำความรู้จักกับซอฟต์แวร์กันก่อนว่าในทางปฏิบัติแล้วการผลิตซอฟต์แวร์แบ่งออกเป็นคู่ๆ 4 คู่ด้วยกันตามลักษณะของโครงการผลิตซอฟต์แวร์คือ

Advertisement
  1. ซอฟต์แวร์ที่พัฒนาใหม่ทั้งหมด กับ ซอฟต์แวร์ที่พัฒนาต่อยอดจากระบบเดิม
  2. ซอฟต์แวร์ที่พัฒนาเฉพาะลูกค้ารายบุคคล กับ ซอฟต์แวร์ที่พัฒนาเพื่อขายในวงกว้าง
  3. ซอฟต์แวร์ที่พัฒนาไว้ใช้ในองค์กร กับ ซอฟต์แวร์ที่ผู้พัฒนาภายนอกพัฒนาให้ (Out Sourced)
  4. ซอฟต์แวร์ที่พัฒนาครั้งเดียวจบ กับ ซอฟต์แวร์ที่ต้องมีการบำรุงแก้ไขไปเรื่อยๆ

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

6205b8d9a

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

ความต้องการแบ่งออกเป็น 2 รูปแบบคือ

  1. ความต้องการที่เป็นหน้าที่ (Functional Requirements) หมายถึงความต้องการที่เป็นหน้าที่หรืองานหลักของซอฟต์แวร์นั้นๆ เช่นถ้าต้องการโปรแกรมเครื่องคิดเลขออนไลน์ ความต้องการตรงนี้ก็จะหมายถึง ซอฟต์แวร์สามารถทำการ บวก ลบ คูณ หาร ฯลฯ ได้อย่างถูกต้องเป็นต้น ซึ่งความต้องการในประเภทนี้จะถูกนำไปเขียนเป็นโค้ดโปรแกรมครับ
  2. ความต้องการที่ไม่เป็นหน้าที่ หรือความต้องการเชิงคุณภาพ (Non-Functional Requirements , Quality Requirements) หมายถึงความต้องการที่อยู่ในรูปแบบของคุณภาพของซอฟต์แวร์ เช่นจากโปรแกรมเครื่องคิดเลขออนไลน์ ความต้องการตรงนี้ก็จะหมายถึง ซอฟต์แวร์สามารถให้บริการคำนวณได้เรื่อยๆ ไม่ล่ม, ซอฟต์แวร์รองรับผู้ใช้บริการได้มากกว่า 1,000,000 คนในเวลาเดียวกัน, ซอฟต์แวร์สามารถคำนวณการบอกลบคูณหารได้ภายใน 0.01 วินาที ฯลฯ

?

how to get requirements

ดังที่ได้บอกไว้ว่าตัวความต้องการนั้นมีลักษณะเป็นอย่างไรในข้างต้น แต่สิ่งที่ทำให้การเก็บความต้องการนั้นมีความยุ่งยากก็คือ ผู้เก็บความต้องการ(นักวิศวกรความต้องการ หรือ Requirements Engineer) จะต้องทำการเก็บความต้องการจากผู้ใช้งานเป็น ?ภาษาพูด? หรือ คำบอกเล่าตามที่ชาวบ้านต้องการนั่นแหละครับ โดยทั่วไปการเก็บความต้องการจากผู้ใช้เพียงคนเดียวมักจะไม่เพียงพอ ทำไมหรือครับ นั่นเพราะผู้ใช้แต่ละคนต่างก็มีความต้องการในการใช้งานซอฟต์แวร์หนึ่งๆ ที่แตกต่างกันไป ยกตัวอย่างเช่นจากโปรแกรมเครื่องคิดเลขออนไลน์ ผู้ใช้คนหนึ่งอาจจะต้องการแค่การบวก ลบ คูณ หาร เท่านั้นแต่อีกคนอาจจะต้องการให้มีฟังก์ชันชั้นสูงเช่น การถอดราก (Square root) ฯลฯ อีกคนอาจต้องการให้สามารถบันทึกขึ้นตอนการคำนวณได้ทั้งหมด เห็นไหมครับ ต่างคนต่างความคิด ดังนั้น การที่จะเก็บความต้องการให้ได้ตรงตามที่ผู้ใช้ต้องการมากที่สุดคือการเก็บข้อมูลโดยตรงกับผู้ใช้ครับ (ขอยกตัวอย่างนี้ที่เห็นได้อย่างชัดเจนคือไมโครซอฟท์ ฟังเสียงผู้ใช้งานเรื่องปุ่ม Start บน Windows 8 ที่หายไปจนทนเสียงเรียกร้องไม่ไหวต้องเอากลับเข้ามาใน Windows 8.1)

ความยากลำดับต่อมาก็คือการแบ่งแยกประเภทของความต้องการให้ออกเป็น 2 ประเภทครับ สาเหตุที่ต้องแยกความต้องการที่เป็นภาษาพูดให้เป็น 2 ประเภทดังที่ได้กล่าวไปข้างต้นนั้นก็เนื่องมาจาก ในด้านการเขียนโปรแกรมนั้น ความต้องการที่ไม่เป็นหน้าที่(หรือความต้องการเชิงคุณภาพ) มักจะไม่ได้อยู่ในรูปแบบของโค้ดโปรแกรมซึ่งต่างจากความต้องการที่เป็นหน้าที่ครับเช่นหากเราจะเขียนความต้องการให้โปรแกรมบวกเลข เราก็เพียงกำหนดโค้ด A+B เป็นต้น แต่สำหรับความต้องการเรื่องซอฟต์แวร์รองรับผู้ใช้บริการได้มากกว่า 1,000,000 คนในเวลาเดียวกันนั้น ถามนักเขียนโปรแกรมคนไหนก็ไม่มีใครตอบได้ ว่าจะเขียนโปรแกรมยังไงให้ทำแบบนี้ได้ ตรงส่วนนี้นักวิศวกรความต้องการจึงมีความจำเป็นในการแยกความต้องการออกให้เป็นสิ่งที่ต้องเขียนโค้ดขึ้นมา กับสิ่งที่ต้องควบคุมดูแลนั่นเอง

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

rewuirements 2

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

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

Click to comment
Advertisement

บทความน่าสนใจ

Tips & Tricks

แนะนำแอพรายรับรายจ่าย แอพเก็บเงิน ที่ควรมีติดเครื่อง จัดการค่าใช้จ่าย จัดระเบียบการใช้งาน อัพเดท 2024 การจัดการด้านการเงินส่วนตัวจะไม่ได้เป็นเรื่องใหญ่อีกต่อไป หากเรามีตัวช่วยที่ดี ยิ่งเป็นแอพพลิเคชันบนสมาร์ทโฟนที่เราพกติดตัวอยู่ตลอดเวลา ก็ยิ่งทำให้เราสามารถบันทึกรายรับ – รายจ่ายของเราได้อย่างรวดเร็วและทันท่วงที ไม่หล่นหาย ไม่ต้องกลัวลืม ทีมงาน NotebookSPEC ก็มีแอพรายรับรายจ่ายที่น่าสนใจ ใช้งานง่าย ดาวน์โหลดไปใช้กันได้ฟรีๆ ทั้งบน iOS และ Android...

Tips & Tricks

วิธีอัดหน้าจอคอมง่ายๆ ทำได้ฟรี บน Windows 11 อัพเดท 2024 การอัดหน้าจอคอมพิวเตอร์ถือเป็นสิ่งหนึ่งที่ใครหลายๆ คนกำลังมองหาวิธี ไม่ว่าจะเป็นการอัดหน้าจอเพื่อบันทึกเก็บไว้ หรือส่งต่อไปให้เพื่อน หรือบางคนที่เป็นสายทำคอนเทนต์ก็อาจต้องการอัดหน้าจอไว้เพื่อนำไปใช้งานต่อ ทีมงาน NotebookSPEC ก็มีวิธีดีๆ มาแนะนำในการอัดหน้าจอคอมพิวเตอร์ ทั้งบน Windows 11, macOS, iOS และ Android ที่สามารถทำได้ฟรีๆ...

Tips & Tricks

ทำความรู้จักกับ CapCut ในคอม พร้อมฟีเจอร์ตัดต่อคลิป ที่ดีและง่าย ทำได้ฟรีด้วย อัพเดท 2024 โปรแกรมตัดต่อวิดีโอนั้นมีให้เราเลือกใช้งานมากมาย ไม่ว่าจะเป็นคอมพิวเตอร์หรือแอพพลิเคชัน แถมยังใช้งานได้ง่ายมากยิ่งขึ้นกว่าแต่ก่อนด้วย และหนึ่งในโปรแกรมตัดต่อที่ได้รับความสนใจเป็นอย่างมาก โดยเฉพาะอย่างยิ่งในการใช้ตัดคลิปวิดีโอสั้นสำหรับลง Social media นั่นก็คือ CapCut ทีมงาน NotebookSPEC ก็เลยอยากพามาทำความรู้จักกับ CapCut โดยจะเน้นไปที่การใช้งาน CapCut ในคอม...

Tips & Tricks

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

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

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

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

บันทึก