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

บันทึกสิ่งที่มักทำ[ผิด]พลาดในการพัฒนา software

$
0
0

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

เรื่องของ Compatibility

ระบบที่พัฒนานั้นสามารถทำงานใน device แต่ละชนิดได้อย่างถูกต้องหรือไม่ เนื่องจากในปัจจุบันมี device จำนวนมาก รวมไปถึงขนาดหน้าจอ ยกตัวอย่างเช่น Web browser และ Mobile คำถามที่น่าสนใจคือ เราทำการทดสอบมากน้อยเพียงใด device ที่ใช้ในการทดสอบมีเท่าไร วันนี้ระบบที่พัฒนามานั้นมัน Compatibility หรือไม่ ?

เรื่องของการสะกดคำ หรือ ประโยคที่ผิด

เป็นสิ่งที่เกิดขึ้นบ่อยมาก ๆ สิ่งที่น่าสนใจคือ จะลดความผิดพลาดเหล่านี้ลงไปได้อย่างไร การมานั่งตรงจสอบทั้งระบบในครั้งเดียวไม่น่าจะใช่ทางที่ดี !! หนักกว่าสะกดผิดคือ ใช้ Google translate มา !!

เรื่องของระบบ network

ใน mobile app นั้นเรื่องของ network มีปัญหาอย่างมาก ทั้งเรื่องของความเสถียร ทั้งเรื่องของความเร็วของระบบ network ที่ใช้งาน เช่น WIFI, 4G/3G, EDGE เป็นต้น สิ่งที่น่าสนใจคือ นักพัฒนาจัดการกับเรื่อง network อย่างไร ? หรือปล่อยให้ระบบ crash ไป เคยทดสอบใน network ที่ช้า ๆ หรือไม่ ? เคยทดสอบใน network ที่ไม่เสถียรหรือไม่ ?

การจัดการเรื่องของ input และ output

ทำการ validate input จากผู้ใช้บ้างไหม ? บางคนทำแล้ว แต่ว่ามันครอบคลุมหรือไม่ ? มิเช่นนั้น อาจจะส่งผลร้ายต่อระบบอย่างมาก ส่วน output ก็เช่นกัน ทำการ validate ก่อนหรือไม่ ? มิฉะนั้นผู้ใช้งานจะได้รับประสบการณ์ที่แย่ไปนะ หนักกว่านั้น การตรวจสอบทั้งระบบไม่เหมือนกันอีก !!

การจัดการเรื่องของ resource เช่น memory

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

ไม่สนใจ guideline ต่าง ๆ เลย

ในการพัฒนา software พบว่า จะมี guideline ต่าง ๆ มากมาย แต่ทีมพัฒนา รวมไปถึงผู้ให้ requirement และ คนออกแบบ ไม่ได้ให้ความสำคัญกับมันเลย สนใจแต่ จะเอา จะเอา จะเอาแบบนี้ ผลที่ตามมาคือ ผู้ใช้งานไม่ใช้งาน หรือ จำนวนการใช้ลดลงไป นักพัฒนาเช่นกัน มี guideline ต่าง ๆ มากมาย เช่น Coding standard คำถามคือ นำมาใช้หรือไม่ ?

Consistency

ปัญหาที่เจอมาก ๆ คือ Mobile app พบว่าหลาย ๆ app จะมีทั้ง iOS และ Android แต่กลับพบว่า app หน้าตาเหมือนกันเลย !! ซึ่งหลาย ๆ ส่วนมันไม่ได้เข้ากับพฤติกรรมการใช้งานของแต่ละ platform เลย คำถามคือ เราหลงลืมอะไรกันไหม ?

การ update version

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

ปิดท้ายด้วย มีขั้นตอนการทำงานและใช้งานที่ซับซ้อนไปไหม

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

Viewing all articles
Browse latest Browse all 1997

Trending Articles