Requirement นั้นสำคัญไฉน?

Bsalisa
THE EXISTING COMPANY
2 min readJun 12, 2020

--

เคยไหมกับการที่ทำงานยังไงก็ไม่เสร็จจริงๆสักที ยิ่งทำเท่าไรงานก็ยิ่งงอก!!

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

ก่อนจะพาทุกท่านไปท่องอาณาจักร Requirement ต้องขอบอกก่อนว่า งานที่ B ทำอยู่นั้น เป็นงานเกี่ยวกับการพัฒนา Software ซึ่งหลายๆคนในวงการนี้ต้องรู้จักสิ่งที่เรียกว่า SDLC กันอย่างแน่นอน

SDLC คืออะไร ?

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

แล้ว SDLC มีความเกี่ยวข้องกับ requirement อย่างไร?

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

“Requirement” เป็นส่วนหนึ่งของการวางแผนงาน

ในฐานะที่ B เป็นคนทำงานในตำแหน่งที่ต้องวางแผนงานและมีความใกล้ชิดกับการจัดทำเอกสารมากๆ จนเรียกได้ว่าเอกสารต่างๆนั้นเป็นส่วนหนึ่งในทุกๆวันของการทำงานเลยก็ว่าได้ B จึงอยากจะมาแบ่งปันประโยชน์ของสิ่งที่เรียกว่า Requirement

Requirement คืออะไร?

คำว่า Requirement นั้นสามารถตีความได้หลายรูปแบบ ซึ่งรวมๆแล้ว Requirement ก็คือ Document ที่รวบรวมข้อมูลเกี่ยวกับระบบ รวมถึงความต้องการของลูกค้าไว้

Requirement ที่ดีเป็นอย่างไร?

1) ละเอียด ชัดเจน ครบถ้วน

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

2) อัปเดต อยู่เสมอ

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

Requirement มีความสำคัญอย่างไร?

1) ทำให้เห็น Scope งานชัดเจน

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

2) ทำให้ทุกคนในทีมทำงานง่ายขึ้น (เยอะมาก)

มาถึงตรงนี้ B ขอย้อนไปถึง SDLC อีกรอบ ขั้นตอนถัดไปหลังจากการวางแผนและการวิเคราะห์งาน คือขั้นตอนการออกแบบ ซึ่งถ้า Requirement นั้นยังชัดเจนไม่มากพอ Designer จะต้องแก้ไขงานไปเรื่อยๆ ยิ่งถ้ามีการส่งต่องานไปขั้นตอนการเขียนโปรแกรมแล้วนั้น Developer ที่ได้เริ่มทำงานที่ได้รับมาแล้ว จะต้องทำการแก้ code ตาม design หรือยิ่งกว่านั้นอาจจะต้องรื้องานกันเลยทีเดียว

นอกเหนือจากขั้นตอนการออกแบบและเขียนโปรแกรม ที่ได้รับผลกระทบจาก Requirement ที่ไม่ชัดเจน ขั้นตอนการทดสอบระบบก็ได้รับผลกระทบด้วยเช่นกัน เพราะ Tester ต้องมีการเขียน Test case และ Test script ไว้ล่วงหน้า ซึ่งเมื่อมีการแก้ไขหรือเปลี่ยนแปลงจุดใดจุดหนึ่ง แน่นอนว่าหลักการทดสอบระบบจะต้องมีการเปลี่ยนไปด้วย ทำให้เกิด cost ต่างๆตามมามากมาย ทั้งเสียเวลา เสียพลังงาน และยิ่งไปกว่านั้นยังทำให้เสียสุขภาพจิตจากการแก้ไขสิ่งเดิมซ้ำไปซ้ำมาอีกด้วย

3) ทำให้ส่งต่องานได้อย่างราบรื่น

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

สรุป

“Requirement” คือตัวแปรสำคัญในการทำงาน

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

อย่าลืม 👏 (Claps) และ 🔖 (Bookmark) บทความนี้ไว้อ่านทีหลังด้วยนะ

--

--