Category Software Development

Design Principle กับ Design Pattern

ก่อนจะมาเข้าเรื่องที่ลึกลงไป ผมอยากแนะนำ 2 คำนี้ก่อนครับ Principle Pattern Design Principle กับ Design Pattern กลับมาที่ Design Principle คือ หลักการออกแบบ Software โดยมีชุดแนวคิด หรือคำแนะนำ เพื่อป้องกันการออกแบบ Software ที่แย่ ที่ส่งผลทำให้มีการปรับแก้ไข (Customize) หรือ การดูแลรักษา (Maintenance) ยาก เช่น SOLID (หลักการพื้นฐาน 5 ข้อ ถูกคิดและเผยแพร่โดย Uncle Bob ครับ ) จากนั้นอีกคำ Design…

[Digital Thailand] How Google Thinks About Developing a Culture of Innovation

วันเสาร์ที่ผ่านมา ผมได้ไปงาน Digital Thailand โดยผมขอแตก Blog นี้ ออกมาจาก Blog หลักนะครับ โดยเรื่องที่ผมกำลังเขียนต่อไปนี้ เป็นเรื่อง How Google Thinks About Developing a Culture of Innovation” โดยคุณ Ben King, Country Head of Google Thailand ครับ ช่วงแรกเป็นการแนะนำบริษัทก่อนครับ ตอนนี้ Google หรือ Alphabet ในปัจจุบันครับ เข้าสู่วัยรุ่นและ อายุ 18 ปี นับจากที่ผู้ก่อตั้งทั้ง…

[Digital Thailand] สรุปจากงาน Digital Thailand 2016 ครับ

คืนวันศุกร์ หลังจากปั่นงานเสร็จ ผมลองหาๆดูว่าวันเสาร์จะไปทำอะไรดี พอดีเจองาน Digital Thailand ที่ศูนย์ประชุมแห่งชาติสิริกติ์ครับ พอไปดูงานสัมมนาในวันเสาร์มีเรื่องที่น่าสนใจหลายเรื่องครับ อาทิ เช่น Google คิดอย่างไรกับการสร้างนวัตกรรม และการนำ Big Data เช้ามาประยุกต์ใข้กับงาน เป็นต้นครับ และก็วันนี้มีจัดการหลายงานด้วยนะครับ ถ้าเบื่อแล้วก็สามารถเปลี่ยนไปชมงานอื่นๆได้ครับ เริ่มกันเลยดีกว่า หลังจากลองเดินทางแบบประหยัด โดยนั่งรถเมล์ 149 จากบ้านมาแทนครับ แล้วเดินอีกนิดนึง แทนที่จะนั่งรถเมล์สาย 40 แล้วไปต่อ MRT ครับ เวลาไม่ต่อกัน แต่ค่าใช้จ่ายลดไปเยอะเลย เมื่อมาถึงงานมีให้ลงทะเบียนครับ ในส่วนนี้ผมคิดว่าระบบ OK นะครับ ของตัว ZipEvent ครับ ถ้าลงทะเบียนมาจากเว็บแล้ว…

แนะนำหนังสือ Your Code as a Crime Scene

ก่อนอื่นขอเล่าประวัติหนังสือเล่มนี้ก่อน ช่วงกลางเดือนมีนาคม ผมมี Idea ที่จะลองศึกษาอะไรใหม่ๆในวันอาทิตย์ ไม่ว่าจะเป็นอ่านหนังสือ ดู Video หรือ อื่นๆ ดีกว่าเอาเวลาไปปั่นงานที่เกิดจากความผิดพลาดของการบริหารโครงการ ฮ่าๆ วันนั้นผมได้ไปร้านหนังสือ Kinokuniya และก็สะดุดกับหนังสือเล่มนี้ครับ Your Code as a Crime Scene  ของคุณ Adam Tornhill หนังสือเล่มนี้พอซื้อมาเสร็จเป็น Crime Scene ทันที่ครับ หนังสือหายไปกับโครงการ 5 ส ที่ Site งานลูกค้า ย่านสะพานควาย ผมเพิ่งซื้อใหม่ทดแทนเป็นของขวัญวันเกิดวันที่ 23 เมษายน ครับ สำหรับ Your Code as a…

Workaround Solution กับ Technical Debt

ก่อนอื่นของกล่าวถึงคำว่า Workaround มัน คือ การแก้ปัญหาเฉพาะหน้า เฉพาะกิจครับ เช่น ระบบจำเป็นต้องต่อกับระบบ Network ผ่านสายแลน เนื่องจากต้องการความเสถียร และความเร็ว แต่ที่โต๊ะ User ยังไม่มีการติดตั้งระบบ Networkทางทีมเสนอให้ใช้ Wireless ไปก่อน เป็นต้นครับ ถ้านึกภาพไม่ลองออกไปดูพวก Trust me I am Engineer ก็ได้ครับ ฮ่าๆ ในแง่ของการพัฒนา Software ก็มีเหมือนกัน เจ้า Workaround มัน คือ การแก้ปัญหาเฉพาะหน้า เพื่อลดเวลา หรือความยุ่งยากในการพัฒนาครับ ซึ่งส่งผลกระทบโดยตรงกับ Code และตัวระบบครับ…

Human Error แหก แหวก ผ่าทะลุกฏเกณฑ์

วันนี้ได้ไป Stand by เพื่อเอา Program ขึ้น Production โดยก่อนที่จะมาถึงด่านนี้ได้ ก็ต้องผ่าน ทั้งหมดนี้ดูดีครับ แต่ใช้งานจริงหละ วันจริง เมื่อถึงวันจริง ระหว่างที่ผมนั่งช่วย User Map หัว GL เพื่อส่งออกไปยังระบบ SAP ในวันรุ่งขึ้น แต่น้องที่ Stand by อยู่ โทรมาแจ้งว่า แย่แล้วววว รัน Script ผิด Version ฝ่าย IT ของ Site ลูกค้า หยิบแผ่น 8.4.0.6 มารัน แทนที่จะเป็น…

การออกแบบสะท้อน ถึงโครงสร้างและวัฒนธรรมขององค์กร

พอดีนั่งหาข้อมูลเกี่ยวกับตัว Technical Debt แล้วเจอตัวนี้เข้า ใช่เลย “Software Design mirrors the [Organizational and social] structure of the organization that builds it” “การออกแบบซอฟต์แวร์สะท้อน ถึงโครงสร้างและวัฒนธรรมขององค์กร ที่สร้างมัน” เรื่องมีพวกนี้มันมีศัพท์เฉพาะเรียกของมันเหมือนกันนะว่า Conway’s Law ลองดู Product ที่อยู่รอบตัวเราก็ได้ครับ อย่าง Google, Facebook และ Microsoft เป็นต้นครับ ทุกอย่างมีสไตล์การพัฒนาของตัวเอง อย่าง Google ทุกอย่างดูเรียบง่าย และไปในทางเดียวกันทุก Product…

สายไฟที่ยุ่งเยิงกับซอฟต์แวร์ที่สับสน

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

วันแรงงาน เมื่อโปรแกรมเมอร์ เป็นตัวละครในสื่อโฆษณา

วันนี้ระหว่างปั่นงานระบบ ฺBOT DMS ในวันแรงงาน ก็แว๊บไปเปิด youtube เพื่อฟังเพลง แลวบังเอิญเจอโฆษณาอันนี้ มันเป็นโฆษณาที่ผมต้องดูจนจบ เพราะ มันมีวลีนึงโผล่ขึ้นมา “แล้วเราจะเขียนโปรแกรมอย่างไร !!!” เจ้าโฆษณาตัวนี้เราจะได้เห็น ญาญ่า มาเขียน Code น่ารักด้วยยยย เข้าเรื่องดีกว่า พระเอก (หมาก) เป็นนักพัฒนาแอปพลิเคชั่น ถ้าภาษาบ้านๆทั่วไป คือ โปรแกรมเมอร์ ได้มี idea ที่จะนำอาหารเหลือที่ต้องทิ้ง ในแต่ละวัน มาสร้างประโยชน์ สร้างมูลค่าขึ้นมา ที่นี้คนในทีมมีประเด็นขึ้นมาว่า “อาหารเหลือเนี่ยนะ จะสร้างมูลค่ามหาศาล” “แล้วเราจะเขียนโปรแกรมอย่างไร !!!” แต่ก็มีแง่คิดที่ดีเหมือนกัน “Idea ดีๆบนโลกนี้ เริ่มมาจากคำว่าเป็นไปไม่ได้ทั้งนั้นแหละ” จากนั้นพระเอกก็ไปนั่นคิด นอนคิด…

Technical Debt เขียน Code แล้วทำไมถึงติดหนี้ แถมมีดอกเบี้ยด้วย !!!

จากหัวข้อของบทความ หลายคนน่าจะสงสัยว่าทำไม “เขียน Code แล้วทำไมถึงติดหนี้ แถมมีดอกเบี้ยด้วย !!!” เดี๋ยวผมจะมาอธิบายครับ ว่าทำไมเราถึงได้สร้างหนี้ และหนี้ในการเขียน Code จริงๆ ก็ไม่เชิงนะ บอกว่าเป็นหนี้ในการพัฒนาระบบ น่าจะดีกว่าครับ โดยหนี้ที่เกิดขึ้นมี ดังนี้ครับ Acceptable – เป็นหนี้ในระยะสั้น และระยะยาวได้ประโยชน์ มองเป็นการลงทุนแนวๆ VI ได้เลยนะเนี่ย Unavoidable – หนี้ที่เกิดจากสถานการณ์ที่เราไม่สามารถคาดเดาได้ Unnecessary – หนี้ที่เกิดแล้วทำให้ระบบงานเรารอดมีงานส่งได้ หนี้ที่เกิดแล้วทำให้ระบบงานเรารอดมีงานส่งได้ แต่ไม่มีประโยชน์ให้แก่ทีมงาน หรือองค์กรเลย Bad – หนี้แบบซุกไว้ใต้พรม หนี้แบบนี้ ถ้าเกิดแล้วระบบงานของเราคงจะรอดยาก หรือขึ้น Production…