Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

แปลบทสัมภาษณ์เรื่อง Crafting Quality Software

$
0
0

Screen Shot 2559-02-16 at 12.29.04 AM

Screen Shot 2559-02-16 at 12.29.04 AM จากงาน 1st conference ที่กรุง Melbourne ประเทศ Australia มีการสัมภาษณ์คุณ Tarcio Saraiva และ Adam Crough ในหัวข้อ Crafting Quality Software ซึ่งเป็นหัวข้อที่น่าสนใจอย่างมาก จึงนำมาแปลตามความเข้าใจนิดหน่อย มาเริ่มกันเลย โดยคำถามต่าง ๆ ในการสัมภาษณ์จะเน้นในเรื่อง
  • มุมมองเรื่องของคุณภาพในการพัฒนา software
  • อธิบายประโยชน์ต่าง ๆ ทางธุรกิจ ที่มาจากการดูแลคุณภาพของ software
  • เกี่ยวกับบทบาทในการทดสอบระบบงานของ Deliver team เกี่ยวกับการเพิ่มคุณภาพ
  • การนำ Continuous Integration มาใช้งาน เพื่อเพิ่มคุณภาพของ software
  • การส่งมอบงานที่มีคุณภาพสูง

คำถามที่ 1 :: มุมมองเกี่ยวกับ Software Quality เป็นอย่างไร ?

มันคือเป้าหมายของทีม เพื่อทำให้ทีมพัฒนาเตรียมวิธีการสร้าง software ให้
  • มี bug น้อย ๆ
  • มี function การทำงานที่ดีขึ้น
  • สร้าง code ที่ง่ายต่อการทำความเข้าใจ
ซึ่งจะทำให้ให้ดีนั้น ต้องมาจาก 2 เส้นทาง คือ
  • จากภายใน เช่น developer
  • จากภายนอก เช่น feedback จากผู้ใช้งาน
เรื่องของคุณภาพ (Quality) นั้น ใช้สำหรับการกำหนดบางสิ่งบางอย่างว่า มันดีหรือไม่ดีอย่างไร โดยปกติแล้ว แต่ละคนจะต้องถือครองเรื่องคุณภาพเสมอนะ นั่นแสดงว่า developer ต้องมองกลับไปดู code ที่สร้างขึ้นมา ว่า code ที่สร้างขึ้นมามันดีหรือไม่ ทั้งทำงานได้อย่างถูกต้อง ทั้งดูแลรักษาง่ายหรือไม่ และผู้ใช้งานชื่นชอบหรือไม่

คำถามที่ 2​ :: ทำไมองค์กรต่าง ๆ ต้องสนใจเรื่อง Quality ด้วยล่ะ ? มีประโยชน์อย่างไร ?

โดยปกติเรื่องของคุณภาพมันถูกจัดการ และ ควบคุม ในกิจกรรมต่าง ๆ และ การสร้างสิ่งต่าง ๆ อยู่แล้ว เพื่อสร้างคุณค่าให้กับฝ่าย business ดังนั้น ถ้ามีขั้นตอนการทำงานที่ดี และ เหมาะสมแล้ว การสร้างระบบงานที่มีคุณภาพ ช่วยทำให้ง่ายต่อการทำงานร่วมกับฝ่าย business พร้อมรับต่อการเปลี่ยนแปลง รวมทั้งทำให้ทีมสามารถปรับเปลี่ยนวิธีการ และ เทคโนโลยีได้ง่ายอีกด้วย ในแต่ละระบบงานต้องลงทุน และ จัดการเรื่อง Quality เสมอ ทั้งเรื่องของ
  • Return on Investment (ROI)
  • Robustness
  • Reliability
  • ลดเวลาของ Time to market
  • เพิ่มความพึงพอใจของลูกค้า

คำถามที่ 3 :: คิดอย่างไรเกี่ยวกับการจัดการ Quality ที่มีคำว่า Quality Assurance และ Quality Control​ ?

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

คำถามที่ 4 :: อธิบายเกี่ยวกับบทบาทของการทดสอบว่าเป็นอย่างไร ?

การทดสอบต้องเปลี่ยนจาก การให้ใครคนใดคนหนึ่ง หรือ ทีมใดทีมหนึ่งทำการทดสอบ ไปเป็น ทดสอบเลยสิ !! นั่นคือ ทุกคนช่วยกันทดสอบสิ ซึ่งเป็นผลมาจากแนวคิดที่ว่า จะทำอย่างไรให้คุณภาพของ software มันดีขึ้นนั่นเอง ตัวอย่างของแนวปฎิบัติจากแนวคิดนี้ เช่น
  • Test-Driven Development (TDD)
  • Exploratory Testing
การทดสอบมันคือเรื่องของความเชื่อมั่น และ มั่นใจ โดยแนวปฎิบัติต่าง ๆ ช่วยทำให้เกิดความเชื่อมั่นมากขึ้น และทำให้เราเดินไปข้างหน้าอย่างต่อเนื่อง ไม่ใช่พายเรือในอ่างกันอีกต่อไป Testing ควรอยู่ในทุก ๆ การพูดคุย ตั้งแต่กระบวนการคิด ไปจนถึงการลงมือทำ และให้อยู่ในรูปแบบที่เรียบง่าย ไม่ซับซ้อน
รวมทั้งหน้าที่ในการทดสอบระบบงาน ต้องเป็นหน้าที่หนึ่งของทุกคนในทีมพัฒนา และเป็นกิจกรรมที่ควรเกิดขึ้นอยู่ตลอดเวลา
แต่ถ้าต้องการ feedback ต่าง ๆ จากผู้ใช้งาน จำเป็นจะต้องส่งมอบระบบที่มีคุณภาพดี ไปยังลูกค้าให้รวดเร็ว และ บ่อยที่สุดนั่นเอง

คำถามที่ 5 :: ยกตัวอย่างของการนำ Continuous Integration เพื่อจัดการเรื่อง Quality

โดยระบบงานที่พัฒนาทำการประยุกต์ Continuous Delivery มาใช้งาน และที่สำคัญคือ Zero Downtime อีกด้วย แต่จะทำไม่ได้เลย ถ้าไม่มี Continuous Integration มาช่วย เนื่องจากมาช่วยให้การพัฒนาระบบงานมีคุณภาพมากยิ่งขึ้น และช่วยทำให้ทีมสามารถนำเอาแนวคิด และ เทคโนโลยีอื่น ๆ มาใช้งานได้ง่ายขึ้น โดยในทุก ๆ การเปลี่ยนแปลงของ code ระบบ Continuous Integration จะทำการตรวจสอบการทำงานของระบบ เพื่อค้นหาว่าส่วนใดของระบบก่อให้เกิดปัญหา นั่นแสดงว่า เราสามารถรู้ปัญหาได้อย่างรวดเร็วนั่นเอง เป็นกระบวนการพัฒนาอย่างต่อเนื่อง ดังนั้นมันทำให้ทีมพัฒนามีความมั่นใจ ทีม business มีความมั่นใจต่อระบบ และ ทีมพัฒนา ผลดีย่อมส่งผลถึงองค์กรนั่นเอง

คำถามที่ 6 :: ถ้าต้องการส่งมอบ software ที่มีคุณภาพสูง จะต้องทำอย่างไรบ้าง ? มีคำแนะนำไหม ?

ในเรื่องของ Quality มันไม่ได้มีสูตรสำเร็จตายตัว อาจจะทำการสร้าง Qulity จากข้างใน คือ คน และ ทีมพัฒนา และให้สนใจ feedback ที่มาจากข้างนอก เช่น จากผู้ใช้งาน รวมทั้งให้ทีมพร้อมรับต่อการเปลี่ยนแปลง หรือสามารถแบ่งเรื่องของ Quality เป็น 2 ส่วนคือ ส่วนที่ 1 คือ จากภายนอก (External) ต้องเข้าใจว่าลูกค้าเป็นใคร ต้องฟังว่าลูกค้าต้องการอะไร และส่งมอบ product ที่มีคุณค่าไปยังลูกค้า ส่วนที่ 2 คือ จากภายใน (Internal) องค์กรต้องมีวัฒนธรรมที่ดี ทั้งเรื่องของการทดลอง และ ไม่กลัวการทำผิด แต่มันคือโอกาสสำหรับการเรียนรู้ ทั้งในระดับบุคคล และ ทีม รวมทั้งแต่ละคน แต่ละทีม ต้องรับฟังความคิดเห็นซึ่งกันและกัน และต้องทำงานร่วมกันเป็นอย่างดี สามารถอ่านแบบเต็ม ๆ ได้ที่ Crafting Quality Software
คุณล่ะ คิดอย่างไรกับคำว่า Crafting Quality Software ?

Viewing all articles
Browse latest Browse all 1997

Trending Articles