จุดประกาย : ทำไม Softwareต้องมี bug (ตอนที่ 2) – การพัฒนาระบบอย่างต่อเนื่องเพื่อไล่ตาม requirement จุดประสงค์ของ software ที่ใช้ในธุรกิจส่วนใหญ่ ทำออกมาเพื่อตอบรับความต้องการของธุรกิจหลักขององค์กรที่ใช้ระบบนั้นๆ เพื่อให้ธุรกิจเป็นไปอย่างแข่งขัน (low cost + high efficiency) กลยุทธ์ของธุรกิจจึงมีการเปลี่ยนแปลงตลอดเวลา ส่งผลให้ระบบ software requirement ต่างๆจำเป็นจะต้องมีการปรับเปลี่ยนอยู่บ่อยๆ หากแต่การปรับเปลี่ยนโครงสร้างของระบบให้สอดคล้องกับความเปลี่ยนแปลงที่เกิดขึ้นเรื่อยๆนั้น นับมีความท้าทายอยู่อย่างมาก โดยเฉพาะอย่างยิ่ง เมื่อเวลาผ่านไปจนบุคคลกรที่พัฒนา software เกิดการหมุนเวียน บางคนถูกย้ายไปทำงาน project อื่น บางคนลาออกจากบริษัท หรือบริษัท/ตัว product ถูกซื้อไป การรับช่วงต่อเปลี่ยนมือคนทำ software ที่ไม่ได้มีการดำเนินการที่ดี โดยเฉพาะเอกสารที่ไม่ครบถ้วนหรือ update ก็เป็นการเปิดโอกาสที่ทำให้เกิดbug ได้เช่นเดียวกัน – การ test ทุกอย่างที่เป็นไปไม่ได้ ลองนึกถึง web application ตัวนึงที่มี 5 use [...]
ผมขอเริ่มต้นการจุดประกายครั้งแรก ด้วยหัวข้อ “ทำไม Softwareต้องมี bug” ด้วยเหตุผลสองประการครับ หนึ่ง – การมีตัวตนของ software bug เป็นต้นกำเนิดของอาชีพ software tester (สงสัยนี่ก็อาจเป็นส่วนนึงที่ทำให้ชื่อ webนี้เป็น welovebug กระมังครับ 555) สอง – เคยมีคน(นอกวงการ IT)ถามผมว่า ทำไมคนในวงการ ITก็มีแต่เก่งๆทั้งนั้น projectแต่ละอันก็ราคาหลายแสนหลายล้านแต่ก็ยังทำระบบที่ไม่มีbugออกมากันไม่ได้ แม้กระทั่งบริษัทชื่อดังและรวยที่สุดอย่าง Microsoftก็ตาม (ตอนโดนถามก็จุกใช่เล่นครับ) ก่อนที่จะไปไล่ดูสาเหตุของ software bug/defect กัน เรามาลองทำความเข้าใจให้ตรงกันก่อนดีมั๊ยครับ ว่า bug คืออะไรผมได้ไปรวบรวมมาจาก 3 แหล่งซึ่งความหมายค่อนข้างใกล้เคียงกันครับ
ประเดิมบล็อกใหม่ ด้วยเรื่องเงินๆ ทองๆ ฉลองศักราชใหม่นี้กันเลยน่ะค่ะเผื่อว่า หลายๆ คนอย่างเปิดธุรกิจส่วนตัว หรือ รับงานนอกในอนาคตจะได้มีสูตรในการคำนวณหารายได้เข้ากระเป๋ากันงัยค่ะ….งั้นถือโอกาสอวยพรปีใหม่ด้วยเลยดีกว่า ขอให้ รวย…ร่วย…ร๊วย ทุกข์หาย…หนี้หด กันทุกคนเลยน่ะค่ะ ในปีนี้ โชคดีค๊าาา เขียนโดย MacroArt เมื่อ November 5, 2007 – 0:08 น. หลายคนที่ทำอาชีพรับจ้างพัฒนาเว็บไซต์จะรู้สึกลำบากใจเวลาที่ลูกค้าถามว่า “project นี้ราคาเท่าไหร่?” และจะยิ่งลำบากใจมากขึ้นถ้าคุณบอกตัวเลขไปว่า “หนึ่งแสนบาท” แล้วลูกค้าทำหน้าเรียบเฉย เดาไม่ออกว่าลูกค้ารู้สึกว่าถูกไปหรือแพงไป ถึงแม้ว่าตัวเลขราคาจะสำคัญต่อการตัดสินใจของลูกค้า แต่สิ่งที่สำคัญไม่แพ้กันก็คือที่มาของตัวเลขนั้นๆ ลูกค้าบางคนที่ได้ยินราคาหนึ่งแสนบาทแล้วรู้สึกว่าแพง เพราะเขามักจะคิดว่า scope งานไม่น่าใหญ่ถึงขนาดที่ต้องจ่ายเพงแบบนี้ แต่ลูกค้าบางคนได้ยินหนึ่งแสนบาทแล้วอาจจะรู้สึกว่าถูกจนไม่น่าไว้วางใจว่าจะทำงานออกมาได้ตามที่คาดหวังไว้หรือเปล่า สิ่งที่ผู้รับจ้างพัฒนาเว็บไซต์จะต้องทำก็คือการแจกแจงให้ลูกค้าเห็นรายละเอียดว่าราคาที่คุณตั้งขึ้นมานั้น มันมีที่มาที่ไปอย่างไร วิธีการที่นิยมใช้กันก็คือการแจกแจงรายละเอียดออกมาเป็นจำนวนชั่วโมงที่ใช้ในการทำงาน วิธีการแจกแจงชั่วโมงการทำงานที่ดีควรจะแบ่งออกมาตามประเภทของงานว่าต้องใช้เวลาออกแบบเว็บกี่ชั่วโมง ใช้เวลาเขียนโปรแกรมกี่ชั่วโมง เป็นต้น ไม่ใช่สรุปออกมาเป็นตัวเลขเดียวว่า project นี้ใช้เวลาทั้งหมด 100 ชั่วโมง ซึ่งมันแทบไม่ต่างอะไรกับการบอกตัวเลขราคาเพียงอย่างเดียว ผมมีตัวอย่างตัวเลขจากบริษัทรับพัฒนาเว็บแห่งหนึ่ง เป็นบริษัทอเมริกาที่มีออฟฟิศอยู่ในไทย (outsource งานมาที่ประเทศไทย) แต่รับงานจากลูกค้าในอเมริกา