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

พอดีนั่งหาข้อมูลเกี่ยวกับตัว Technical Debt แล้วเจอตัวนี้เข้า ใช่เลย “Software Design mirrors the [Organizational and social] structure of the organization that builds it” “การออกแบบซอฟต์แวร์สะท้อน ถึงโครงสร้างและวัฒนธรรมขององค์กร ที่สร้างมัน” ลองดู Product ที่อยู่รอบตัวเราก็ได้ครับ อย่าง Google, Facebook และ Microsoft เป็นต้นครับ ทุกอย่างมีสไตล์การพัฒนาของตัวเอง อย่าง Google ทุกอย่างดูเรียบง่าย และไปในทางเดียวกันทุก Product แต่ฝั่ง Microsoft ที่เมื่อก่อนแต่ละ Product นี้ไปันคนละแนวเลยย (หลังๆ เริ่มดีขึ้น เมื่อมาอยู่ในยุคของคุณ Satya Nadella ครับ) ที่นี้ลองกับไปดูงานที่เรากำลังทำอยู่บ้าง ถ้ามีทีมพัฒนา 2 ทีม (มองว่ามากกว่า 2 คนก็ได้ครับ) รูปแบบของ Software น่าจะมีความหลากหลายทางพันธุกรรมแล้ว อาจจะ แม้ว่าจะเป็นเรื่องเดียวกัน ? จากความเข้าใจของ BA, SA, และ DEV ครับ

[CR] ลองชิมสลัดจาก 711

หลังจากเปลี่ยนเทรนการกินจากปิ้งย่าง มารักสุขภาพมากขึ้น วันนี้ได้ลองสลัดผักจาก 7-11 ในเครือ CP นะครับ ว่ามันจะดีกว่าสลัดที่ขายตามตลาดนัดอย่างไร ราคา 25 บาทครับ โดยที่ขายมี 2 รสชาติครับ แกะๆดูทีละอันครับ แกะๆดูทีละอันครับ จะมีซองใส่น้ำซอส และส่วนประกอบต่างๆ ลองผสมคลุกเคล้าดูครับ ส่วนรสชาติ ตรงนี้ต้องรอทีม Research ของ CP ทำการบ้านอีกสักพัก น่าจะคล้ายกับเคสของข้าวกล่องแช่แข็งที่ตอนแรกๆรสชาติออกมาไม่ดี แต่ภายหลังมีการปรับปรุงขึ้นมาเรื่อยๆ จนรสชาติอร่อย แถมยังราคาถูกกว่าร้านข้างทางบางร้านอีกครับ 😀

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

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

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

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

[DB2] Stored Procedure ช่วยลบข้อมูลเยอะๆ

IBM DB2

ในงานของเรา อาจจะมีการลบข้อมูลเยอะๆ ไม่ว่าใน DBMS ตัวไหนก็ตามครับ ถ้าเป็น DB2 ถ้าเราลบข้อมูลเยอะๆ อาจจะเจอปัญหา Transaction Log Full ได้ครับ ครั้นจะปิด Log แล้วลบทิ้ง ก็อาจจะมีปัญหาครับ เช่น ตัว HADR ถ้าปิด Log นี้ ไม่ Sync กันนะครับ ผมเลยมี Stored Procedure ที่ช่วยในการลบข้อมูล ดังนี้ครับ เห็น Code และมาดูก่อนว่า มันต้องใส่ Parameter อะไรบ้าง การทำงาน วน Loop DELETE ข้อมูลจนกว่า Query จะมี SQLCODE = 100 (No Data) ซึ่งหมายถึง ลบจนกว่าคำสั่ง DELETE จะไม่มีข้อมูลให้ลบครับผม 2019 Update: เพิ่มตัวอย่างการเรียกใช้งาน [DB2] ตัวอย่างการใช้งาน Stored Procedure DELETE_MANY_ROWS

มิวเซียมสยาม พม่าระยะประชิด

เกริ่นนำ ไขกุญแจ และเปิดใจ ให้เราเข้าใจ เพื่อนบ้าน ของเรามากขึ้น เข้าสู่ AEC แล้วนะครับ ตักตวง-ตามฝัน กล่าวถึงทำไมคนพม่า ถึงมาไทย แล้วเค้ามีความฝันอะไรครับ ขัดสน-สะสม  เมื่อมาอยู่ไทย ก็ต้องรับสภาพสังคม เศรษฐกิจของเมืองไทยได้ แม้ค่าแรงจะน้อย แต่สามารถรอมชอม แบ่งปันกันได้ อย่างเช่น ห้องเช่า 2 กะ หรือ การอยู่ด้วยกัน กินด้วยกัน ได้อาหารที่มากขึ้น หลากหลาย แต่เงินที่ใช้เท่าเดิม รุ่มรวย-รุงรัง ในแต่ละล๊อกเกอร์ จะบอกถึงแต่ละประเด็นของชาวพม่าในไทยครับ ต่างด้าว-ต่างชาติ ส่วนใหญ่เราคิดว่าอยู่ในส่วนของแรงงาน แต่จริงๆแล้วชาวพม่าในไทย ทำงานในหลากหลายอาชีพครับ ทั้งอาจารย์ หมอ พยาบาล และพนักงานออฟฟิต เป็นต้น พลังธรรม-พลังทำ ชาวพม่ามีความศรัทธาในศาสนาพุทธมากครับ ถ้าสังเกตุที่อยู่ของพวกเค้า พบว่าที่ทีเด่นที่สุด คือ หึ้งพระครับ และจากการที่ชาวพม่า เข้ามาอยู่รวมกันอยู่ด้วยกัน ก็เกิดเป็นพลังทำ มีเค้าน่าจะเรียกว่าแบนด์ของตัวเองปะ เป็นเสื้อกลุ่ม ชุมชนครับ รุกราน-แลกเปลี่ยน ในอดีตไทยกับพม่า ไม่ถูกกัน จริงๆไม่น่าจะได้เป็นไทยกับพม่านะครับ น่าจะเป็นระหว่างรัฐมากกว่า และก็สงคราม ในสมัยก่อนชั้นปกครองเค้ามองเป็นกึ่งกีฬา และแนวคิดธรรมราชาด้วย (ไม่แน่ใจว่าใช้คำถูกไหม) แต่จริงๆประชาชน ชาวบ้านคงไม่อยากไปทำสงครามหรอก และในส่วนนี้แสดงความแตกต่างของประวัติศาสตร์ในเรื่องสงคราม ยุทธหัตถี ที่ทางไทยกับพม่า ที่มีการลงบันทึกแตกต่างกันครับ ลองดูที่รูปใน Gallery ได้ครับ ฝันพา”เรา”ไป-ฝันพามา  ในช่วงนี้เป็นการรวมรูปวิถึชิวิตของคนพม่าในไทยครับ หลังจากนั้น จากนั้นลองตั้งชื่อตัวเองในแบบพม่าดูนะครับ (ผมเพิ่งรู้ภายหลังว่า เอาวันที่เกิด + อะไรก็ได้อีก 2 อัน) ศิลปะพม่าครับ พอดีช่วงที่ผมมาเป็นช่วงสงกรานต์ครับ เลยไม่มีไกด์ที่เป็นคนพม่ามาอธิบายครับ แป้งพม่า หรือ  แป้งทานาคา เคล็ดลับความสวยของสาวพม่าครับ และเสริมในส่วนสุดท้ายนะครับ เป็นคล้ายๆนิทรรศการย่อยประมาณว่าโรงภาพยนตร์ในไทย กับในพม่า แตกต่างกันเพียงใด สำหรับนิทรรศการ “พม่าระยะประชิด” เปิดให้เข้าชมทุกวัน (ปิดทุกวันจันทร์)15 มีนาคม จนถึง 31 กรกฎาคม…

BarBQ Plaza บุฟเฟต์

กลับมาแล้วกับเทศกาลกินไม่ยั้งที่ทุกคนรอคอย “รีฟิล กินไม่สะดุด เต็มอิ่มครบรส”  วันนี้เป็นวันสุดท้ายของโปรบุฟเฟต์ วันที่ 10 เมษายน 2559 ผมกับน้องไปกิน BarBQ Plaza สาขา The Walk ครับ ที่นี้มีเอกลักษณ์อน่างนึ่งนะครับ คือ ใช้เตาแก๊สครับ มันทำห้เตาร้อนเร็วครับ แต่เดี๋ยวสักพักน่าจะเปลี่ยนเป็นเตาไฟฟ้า จากเหตุผลด้านความปลอดภัยครับ สำหรับโปรที่มี ภาพบรรยากาศครับ ยังไง ผมขอไปจำศึล 8 เดือนก่อนนะครับ ช่วงต้นปี ถ้ามีหน้าจัดโปรบุฟเฟต์ใหม่ ค่อยไปเจอกันใหม่ครับ 😀

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

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

Proudly-Found-Elsewhere Syndrome

Proudly-Found-Elsewhere Syndrome (PFE Syndrome) หรือ Invent Syndrome ความหมายของมันแตกต่างกับตัว Not-Invented-here Syndrome อย่างสิ้นเชิงเลยครับ คือ มีการสร้างงาน หรือ นวัตกรรมใหม่ขึ้นมาครับ สำหรับในมุมของ Software Development เป็นการนำ Library ที่ Common มาใช้งานเสริมได้ เวลาที่เหลือเราก็เอาไปใส่ใจกับส่วนของ Core Business มากขึ้นได้ครับ ส่วน PFE Syndrome คำแนะนำของผม คือ ต้องเปิดใจ พร้อมที่จะเรียนรู้ และคำนึงถึงความสมเหตุสมผลที่เลือกใช้ เพราะ มันไม่ได้มีวิธีการตายตัวที่ตอบโจทย์กับปัญหาต่างๆครับ และก็ท้ายที่สุด ผมมีบทความแนะนำครับ From not invented here to proudly found elsewhere โดยบทความกล่าวถึง Drupal เป็น CMS ยอดนิยม Blognone ใช้ตัวนี้อยู่ครับ โดยมีการเปลี่ยนจากที่ต้องทำเองทุกๆอย่าง (Not Invented Here) มาใช้ Library หรือ Tools ของชุนชมภายนอกแทน มาเชื่อมต่อกับตัว Core ของ Drupal ครับ (Proudly Found Elsewhere) แม้จะต้องปรับแก้เยอะ แต่ประโยชน์ที่ได้รับนั้นมี ดังนี้ครับ  

Not-Invented-Here Syndrome

Not-Invented-Here Syndrome

Not-Invented-Here Syndrome หลายคนอาจจะงง ว่า Blog นี้มันสาย IT นี่หว่า แต่แล้วทำไมมาเขียนแนวคุณหมอซะหละ สำหรับเจ้า Not-Invented-Here Syndrome หรือ NIT Syndrome คือ การยึดติดกับสิ่งเดิม ระบบความเชื่อความคิดของตนเองเป็นหลัก มักจะพบในหน่วยงาน หรือองค์กรที่มีอายุยาวนาน และประสบความสำเร็จมากมายครับ ซึ่งเจ้าตัว Not-Invented-Here Syndrome มันเป็นตัวขัดขวางสิ่งที่เรียกว่า นวัตกรรม หรือ Innovation นั้นเองครับ โดยเจ้า NIT Syndrome มีส่วนที่ต่างๆ ที่บ่งบอกว่า หน่วยงาน หรือองค์กร กำลังจะเป็น ดังนี้ครับ แต่เจ้า NIT Syndrome มันก็ไม่ได้ร้ายเสมอไปนะครับ บางครับมันมีเหตุผลที่จำเป็นเหมือนกันนะครับ เช่น โมดูลนี้มันเป็น Core Business ถ้าไปหา Library มาใช้ก็ได้ แค่มันไม่ยืดหยุ่น หากมี Change เป็นต้น เขียนไปเขียนมา ก็โยงเข้าเรื่องทาง IT ได้เนอะ 55555  สำหรับการแก้ปัญหา NIT Syndrome ไม่ยาก แต่ต้องเปิดใจ พร้อมที่จะเรียนรู้ และคำนึงถึงความสมเหตุสมผลที่เลือกใช้ครับ และสร้างนวัตกรรมใหม่ๆขึ้นมาครับ และใครที่อยากอ่านเพิ่มเติมลองไปดูในตาม Reference ที่ผมได้แนบมาด้วยครับ Reference