ข้ามไปที่เนื้อหาหลัก

ขั้นตอนการเก็บรวบรวมความต้องการ Waterfall step 2



Waterfall Model ขั้นตอนที่ 2 การเก็บรวบรวมความต้องการระบบ

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

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

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

คำถามปิด คือ คำถามที่บังคับให้ผู้ตอบ ตอบคำถามในกรอบที่เรากำหนดไว้ เช่น  ระบบนี้สามารถเข้าใช้งานได้ตั้งแต่ 8:30 - 17:30 ใช่หรือใม่ ฯลฯ
คำถามเปิด คือ การให้ผู้ตอบตอบคำถามเราอย่างอิสระ เช่น ต้องการให้หน้าแรกของระบบเป็นอย่างไง ฯลฯ

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

  • Functional  คือ รายละเอียดของระบบงานหลักว่ามีอะไรบ้าง เช่น ระบบสมาชิก, ระบบโพสต์บทความ ฯลฯ (มีตอนเรียนมหาลัย)
  • Non Functional คือ ความต้องการนอกเหนือระบบงาน หรือความสามารถเสริม เช่น ในส่วนหน้าสมัครสมาชิกตรงของเลขบัตรประชาชนต้องมีการตรวจสอบความถูกต้อง, ในหน้าล็อคอินเข้าระบบสมาชิกต้องมีการตรวจสอบด้านความปลอดภัยของข้อมูล ฯลฯ (ตอนเรียนที่ SIPA หมายถึงคำศัพท์ Non Functional)

ปิดท้ายสิ่งที่ไม่มีในห้องเรียน ซึ่งทางผู้เขียนอยากเพิ่มเติมให้กับทางผู้อ่าน โดยการเก็บรวมรวบความต้องการระบบนั้นเกี่ยวข้องกับบุคคล ไม่ว่าจะเป็นผู้ว่าจ้าง ผู้ใช้งาน ฯลฯ ซึ่งที่ SA ต้องรีบศึกษาโครงสร้างของบุคลากรของบริษัท หรือหน่วยงานที่เกี่ยวข้อง การที่ SA สามารถหาผู้ที่มีอำนาจในการตัดสินใจ (MAN Power) และผู้ใช้งานระบบจริงได้เร็วนั้น ระบบที่พัฒนาจะตรงตามความลูกค้าและได้ข้อสรุปรวดเร็ว และถูกใจของผู้ที่เซ็นต์รับงานจ่ายเงินให้เรา ซึ่งในส่วนนี้ไม่ใช่แค่หน้าที่ของ SA อย่างเดียว ซึ่งอาจต้องมี Sale , Project Manager มาช่วยดำเนินการ และท้ายสุดการทำงานกับคน SA ควรเป็นบุคคลที่ใจเย็น สุขุม รอบคอบ ทัศนะคติด้านบวก จะช่วยให้การทำงานรวมกับลูกค้าได้ด้วยดี

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



อ่านตอน 1 ได้ที่ https://thaidevnote.blogspot.com/2018/04/waterfall-step-1.html

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Dynamic Kernel Module Support (DKMS) ภาค 3

Dynamic Kernel Module Support เกริ่นมา 2 บทความแล้ว หวังว่าผู้อ่านจะเข้าใจนะครับ สรุปง่ายๆ คือ เจ้าพระเอกของเรา DKMS คำสั่งนี้จะช่วยให้เราจะทำการไฟล์ติดตั้งไดว์เวอร์ให้เราอัตโนมัติ เมื่อมีการอัพเดต kernel ให้เรา ทำให้เราไม่เจอปัญหาเวลาอัพเดตระบบปฏิบัติการแล้วใช้งานไดว์เวอร์การ์ดแลนได้ ปล. มันไม่ใช้แค่ช่วยเรื่องไดว์เวอร์ ยังช่วยทำให้เราเพิ่มความสามารถให้กับ kernel อีกด้วย ขั้นตอนการทำดังนี้ ก่อนทำ เราจะเช็คดูก่อนเพื่อสำรองไฟล์เดิมหรือทำการเช็คเวอร์ชั่นที่ใช้อยู่ได้ เช่น modinfo e1000e (เช็คตำแหน่งที่เก็บไฟล์ไดว์เวอร์) ethtool eth0 (ดูเวอร์ชั่นของไดว์เวอร์) ฯลฯ สามารถใช้ผู้ใช้งาน root ในการทำได้  และก่อนทำบนเครื่องต้องมีคำสั่งและ kernel header ด้วยในที่นี้ผู้เขียนทำตัวอย่างบนระบบปฏิบัติการ Debian ก็ได้ทำการติดตั้งดังนี้  apt-get install dkms deb-helper build-essential linux-headers-$(uname -r) make  cd /usr/src/ sudo wget https://downloadmirror.intel.com/15817/eng/e1000e-3.4.0.2.tar.gz sudo tar xvfz e1000e-3.4.0.2.tar.gz cd e1000e-3.4.0.2 sudo ...

Predictable Network Interface Names #3

Predictable Network Interface Names ภาคสุดท้ายปิดตำนานยาจกซูกับไม้ตีสุนัข ไม่ใช่ละ อันนี้มันเกี่ยวกับระบบปฏิบัติการ จิงต้องบอกว่ามันไม่เกี่ยวกับหัวข้อเลยที่กล่าวถึง แต่ขอมัดรวมเป็นเรื่องเดียวกันหน่อยครับ เพราะมันมีบางส่วนที่ทำต่อเนื่องกัน โดยในบทความนี้ จะกล่าวถึงการตั้งชื่อ อินเตอร์เฟสแลนการ์ด โดยแมฟกับ MAC Address จากตอนที่แล้วจะเห็นว่าอินเตอร์เฟสมันไม่เรียงเลย ถึงแม้เราจะเปลี่ยนชื่อเป็นแบบเก่า ก็จะยังเป็นแบบตามรูปด้านล่างที่ยังมีปัญหาอยู่ขึ้นอยู่ ทำให้ตอนใช้งานก็จะยังลำบากเหมือนเดิม ปัญหาที่ตามมาคงไม่ต้องบอกกันนะ คนเขียนโปรแกรมถึงกลับร้องไห้ ผมจะเขียนยังไงอะพี่ โดยในลีนุกส์จะใช้การเรียงลำดับจากเลข MAC Address พอ chip คนละตัว และเลขน้อยกว่า ทำให้มันไปพอร์ตที่ 5 เป็น eth0 ตามด้านบน  วิธีแก้ไขจะมีอยู่ 2 แบบ ขึ้นกับว่าโอเอสที่ใช้ แบบเก่า UDEV (Dynamic Device Management)     ขั้นตอน      - export INTERFACE=eth0      - export MATCHADDR=xx:xx:xx:xx:xx:xx      - /lib/udev/write_net_rules ...

โคตรโบราณกับการพัฒนาระบบด้วย Waterfall Model

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