CLAUDE.md
SKILL.mdIteration ถัดมาของ Video Call Promo
ใน Version นี้ Leah ได้รับ Feedback มาว่าทำ Feature Tie In ได้ดีขึ้น แต่ User สามารถ Skip ได้ง่าย ทำให้สุดท้าย Leah ออกแบบมาเป็นหน้าจอแบบ Slide to answer และเมื่อ Slide ไปก็จะเป็นหน้า Lily มาทักทายด้วยภาษาที่ผู้เรียนคนนั้น ๆ กำลังเรียนอยู่พร้อมบอกว่าจะได้อะไรบ้างเมื่อสมัคร Duolingo Max Prototyping ของ Final Design ของ Video Call Promo
ซึ่ง Iteration สุดท้ายก็ผ่าน Product Review กับ CEO และเป็น Version ที่ปล่อยใช้งานใน App และ Promo อันนี้ก็ช่วย Drive ยอด Subscription ให้กับ Duolingo เป็นอย่างมาก Leah ฝากเกี่ยวกับการใช้งาน AI ใน Product ไว้ว่า > AI doesn't sell itself, it shines when presented the right way --- # Basic n8n ฉบับ DevDev - URL: https://blog.ninprd.com/blog/basic-n8n-for-developers/ - Published: 2025-05-01 - Tags: dev, n8n, ai, automation, Y2025 - Summary: วันนี้นิลจะพาชาว Dev มาทำความรู้จักกับเครื่องมือที่มีชื่อว่า n8n เพิ่มขึ้นครับ n8n มีไว้ทำอะไร ทำอะไรได้บ้าง มี use case อะไรที่อาจจะช่วยชีวิตชาว Dev ได้บ้าง มาดูกันครับ สวัสดีครับ นิลหายไป 2 เดือนแหนะะ ช่วงก่อนหน้าน้ีติดงานแบบวุ่น ๆ กับไปนั่งทำ Project เล่น ๆ ของตัวเองมาอันนึง ช่วงนี้นิลเห็น Content เกี่ยวกับ n8n เยอะมากแล้วก็นิลก็ได้มีโอกาสไปช่วย Facilitate Workshop [AI Automation for Business Transformation รุ่นที่ 1](https://www.skooldio.com/workshops/ai-automation-for-business-transformation) มาครับ ทำให้นิลได้ลองเล่น n8n มาในหลาย ๆ use case เลยครับ ทำให้นิลอยากมาแชร์เป็น Basic ของ n8n สำหรับชาว Dev ได้เข้าใจและเข้ามาลองเล่น Tool ตัวนี้ได้ง่ายขึ้นแหละครับ ## n8n คืออะไร n8n เป็น Tool ที่เข้ามาช่วยในการทำ Automation ครับโดยจะเริ่มต้นจากการวางสิ่งที่เรียกว่า Trigger เพื่อเป็นตัวเริ่มทำงาน และจะใช้การลากกล่อง (Node) ที่มี Function ต่าง ๆ แล้วเชื่อมต่อกันด้วยเส้น (Edge) ให้เกิด Workflow ขึ้นมาครับ ซึ่งเมื่อ Run Workflow ก็จะเหมือนการวิ่งเริ่มจาก Trigger ไปตาม Node ผ่าน Edge ต่าง ๆ ครับ ซึ่งเจ้า Node นี้ก็จะมี Function ที่สำเร็จรูปแล้วครับ ไม่ต้องเขียนเอง เช่น ต่อ Google Sheets, ส่ง HTTP Request,ส่ง Email ด้วย Gmail, Database, AI Agent, etc. รวมทั้งสามารถบันทึกพวก Credentials ที่เอาไว้ต่อกับบริการต่าง ๆ ไว้ได้ด้วยครับ ซึ่งจริง ๆ แล้ว 1 Node ก็เหมือน 1 Function ครับ และ 1 Workflow ก็เหมือนการประกาศ Function ที่เอา Function อื่น ๆ มาต่อกันไปเรื่อย ๆ แหละครับ เดี๋ยวนิลลองเทียบ Side by Side ด้วย Code ดูครับ  และยังไม่หมดครับ เรายังสามารถสร้างเจ้า Workflow เป็น Sub Workflow เพื่อเอาไปใช้ใน Workflow ต่าง ๆ อีกด้วยครับ ซึ่งภาพก็เหมือนเราทำ Function เล็ก ๆ แล้วก็เอาไป Compose ให้เป็น Function ใหญ่ ๆ ครับ ## ความเก่งเจ๋งของ n8n ด้วยความที่ Node ต่าง ๆ ที่มี Function ที่เขียนให้แบบเสร็จสรรพแล้ว ทำให้เราไม่ต้องมาเขียนเองครับ นอกจากนี้ยังมี UI ให้ลากวางเพื่อให้เกิด Workflow ขึ้นมาได้เลยครับ ทำให้ n8n มีความสะดวกสบายและรวดเร็วในการสร้าง Automation ครับ นอกจากนี้สำหรับชาว JavaScript แล้ว n8n ยังมี Node ที่เป็น Code ให้เราสามารถเขียน Function ภาษา JavaScript เข้าไปได้ด้วยครับ อีกสิ่งที่ไม่พูดไม่ได้เลยคือเจ้า Node AI Agent ที่พูดถึงไปก่อนหน้านี้ครับ Node ตัวนี้จะสามารถต่อกับ AI Model เจ้าต่าง ๆ ไม่ว่าจะเป็น Google, OpenAI, Anthropic รวมถึงสามารถต่อกับ Ollama ได้ด้วย รวมทั้งสามารถต่อ Memory หรือเชื่อมต่อกับ Tool ต่าง ๆ เพื่อให้ AI Agent สามารถทำงานต่าง ๆ เช่น ส่ง Email, แก้ไข Google Sheets ได้อีกด้วยครับ และตัว n8n ยังสามารถ Expose ตัวเอง ออกไปเป็น URL เพื่อรับ Webhook ได้อีกด้วยครับ ถือว่ามีอรรถประโยชน์มาก ๆ ## ลองสร้าง Workflow ใน n8n กัน เดี๋ยวจะพาทุกคนไปสร้าง Basic Workflow กันฮะ แต่ก่อนจะพาไปเริ่มกัน ขอ Make Sure ว่าทุกคนมี node.js ติดตั้งในเครื่องครับ แล้ว run command ```sh npx n8n ``` จากนั้นให้เราไปที่ http://localhost:5678 แล้วเราจะเจอกับหน้าตา Interface ของ n8n ครับ เสร็จแล้วให้ทำขั้นตอนดังนี้ครับ 1. กด Create Workflow ที่มุมบนขวา 2. เมื่อเข้าหน้า Workflow มาให้กด "Add First Step" 3. ให้หาคำว่า "Trigger Manually" จากนั้นกดเพื่อเลือก Trigger นี้เข้า Workflow ครับ 4. กดปุ่ม "+" ที่อยู่ทางขวาของตัว Trigger ของเราครับ จากนั้นหาคำว่า "Customer Datastore (n8n training)" ครับ กดที่ชื่อเพื่อเอา Node นี้เข้า Workflow ของเราครับ 5. พอเพิ่มแล้วจะมีหน้าต่างเด้งขึ้นมา ให้กด Esc หรือกดข้างนอกหน้าต่างนั้นเพื่อปิดไปก่อนครับ 6. ให้ลองกด Test Workflow ดูครับ เราจะเห็น Interface มันมีการขยับเพื่อบอกว่าตอนนี้มัน Run ถึงตรงไหนแล้ว เท่านี้เราก็สร้าง Workflow ของตัวเองเป็นที่เรียบร้อยแล้วครับ ซึ่งปลายทางทุกคนจะได้ Workflow หน้าตาตามรูปนี้เลย  ทีนี้ถ้าลองกดที่ Node Customer Datastore เราก็จะเจอกับหน้าตาแบบนี้ครับ  ซึ่งเจ้านี้คือผลลัพธ์ของการ Run Node ตัวนั้น ๆ ครับ Input จะเป็นข้อมูลที่อยู่ฝั่งซ้าย Output จะเป็นข้อมูลที่อยู่ฝั่งขวาครับ เราสามารถกดที่แต่ละ Node เพื่อดูแบบนี้ได้เลยครับ ## มาดู Basic use case ของ n8n แบบ DevDev กันดีกว่า ### ส่งข้อมูล Pull Requests ใน GitHub เข้า Slack รายวัน เราอาจจะตั้ง Schedule ไว้ เช่น ทุก 9 โมงให้ไปดึงข้อมูล Pull Requests ทั้งหมด (หรืออาจจะดึง Issues ด้วย) มา แล้วเอาไป Post ลงไปใน Slack ในทีม Dev เพื่อให้ทุกคนสามารถเห็น Summarize ข้อมูลก่อนที่จะเริ่มงานวันนั้น ๆ ได้  ## ทำ Bot Daily Standup เราสามารถตั้งเวลาไว้แล้วตั้งให้ส่งข้อความลงใน Discord เพื่อเตือน Standup รายวันได้ครับ นอกจากนี้ถ้าบริษัทเรามีการใช้ Google Calendar เราก็สามารถปักวันหยุดบริษัทได้ แล้วตั้งให้มันไม่ส่งข้อความหากวันนั้นเป็นวันหยุดได้ด้วย  นอกจากนี้ยังสามารถทำอีก Workflow นึงให้เป็น Webhook ที่ส่งข้อความเข้ามาเรื่อย ๆ แล้วถ้ามีคนพิมพ์คำว่า End ใน Thread เราก็สามารถที่จะกวาดข้อความทั้งหมดใน Thread นั้น มาให้ AI Agent ทำเป็น Summarize ว่าวันนี้แต่ละคนจะทำอะไร เพื่อให้ทีมเห็นภาพรวมกันง่ายมากขึ้นด้วยครับ  ## แล้วนิลใช้ n8n ทำอะไร ถ้าสารภาพบาปเลยตอนนี้คือ เอาตรง ๆ นิลยังไม่ได้เอา n8n ไปใช้เพื่อ Personal Task ครับ เพราะว่าเราต้องเอา n8n ไป Self-Hosted หรือถ้าใช้ n8n cloud ของฟรีก็มีการจำกัดจำนวน Workflow ด้วย นิลมองว่าถ้าไม่จำเป็นจริง ๆ นิลก็อาจจะไม่ใช้กับงานอะไรที่นิลต้องทำคนเดียวครับ สู้ไปเขียน Code อาจจะง่ายกว่าครับ แต่ ๆๆๆ ถ้าเป็นงานที่ต้องทำงานร่วมกับคนอื่น ๆ ที่ไม่ได้เป็นสาย Tech จ๋า ๆ หรือไม่ต้องการเขียน Code นิลก็แนะนำให้ใช้ n8n ครับ เพื่อให้สามารถทำงานร่วมกันได้อย่างเห็นภาพและสะดวกขึ้นครับ --- จบไปละกับ Basic n8n for devs ครับ ตอนแรกนิลอยากเอาอันนี้ไปวางไว้ที่ https://learn.ninprd.com/ แหละ แต่รู้สึกว่ามันเป็นเนื้อหาคร่าวมาก ๆ ผนวกกับตอนนี้นิลยังไม่ได้ลองเล่น n8n แบบเยอะมาก ๆ หรือเจอ use case ที่นิลต้องใช้ n8n มาก ๆ ด้วยครับ ถ้าได้ลองเล่นเยอะ ๆ นิลอาจจะไปนั่งทำเป็นเนื้อหาวางไว้ในเว็บ learn ของนิลก็ได้ครับ ถ้าใครอยากลองศึกษา n8n เพิ่มเติม ทาง n8n เขามี Tutorial นะครับ ลองไปศึกษากัน[ดูได้ที่นี่เลย](https://docs.n8n.io/try-it-out/tutorial-first-workflow/) หรือสามารถติดตาม Tutorial จากหลาย ๆ เพจได้เลย ไม่ว่าจะเป็น [เทพเอ็กเซล](https://www.facebook.com/thepexcel) [QWERTY is a DUCK](https://www.facebook.com/duckgitalist) หรือ [Prompt Alchemist](https://www.facebook.com/PromptAlchemist) ก็มี Tutorial อยู่ประปรายครับ ใครมี Workflow เจ๋ง ๆ มาแชร์กันใน Comment ที่ Page ตากล้องที่เขียนโค้ดได้นิดหน่อยได้เลยนะครับ นิลรออ่านอยู่ ขอบคุณทุกคนที่อ่านมาถึงตรงนี้นะครับ เดี๋ยวจะพยายามกลับมาเขียน Monthly Blog ให้ได้เลยย มี Topic อยากแชร์เพียบเลยครับ ขอให้สนุกกับการทำ Automation ด้วย n8n ครับ นิล --- # ปฎิบัติการหนี WordPress ของนิล - URL: https://blog.ninprd.com/blog/nin-mission-to-bye-bye-wordpress/ - Published: 2025-02-24 - Tags: experience-sharing, software-engineer, WordPress, Y2025, blog - Summary: สวัสดีครับ หลังจากผ่านการใช้งาน WordPress ของฟรีมาเกือบ ๆ จะ 1 ปี ตอนนี้มันใกล้ช่วงที่นิลจะต้องจ่ายตังละ ผนวกกับช่วงก่อนหน้านี้ก็มีดราม่ากันเล็กน้อย นิลเลยเกิดไอเดียปฏิบัติการหนี WordPress ขึ้นมาครับ ซึ่งปฏิบัติการนี้จะเป็นยังไงไปดูกันครับ สวัสดีครับ หลังจากผ่านการใช้งาน WordPress ของฟรีมาเกือบ ๆ จะ 1 ปี ตอนนี้มันใกล้ช่วงที่นิลจะต้องจ่ายตังละ ผนวกกับช่วงก่อนหน้านี้ก็มีดราม่ากันเล็กน้อย นิลเลยเกิดไอเดีย**ปฏิบัติการหนี WordPress** ขึ้นมาครับ ซึ่งปฏิบัติการนี้จะเป็นยังไงไปดูกันครับ > ⚠️ คำเตือน: ใน Blog นี้อาจจะมี Technical ผสมอยู่เรื่อย ๆ นะครับ เดี๋ยวนิลจะเขียนบอกไว้นะเผื่อคนที่ไม่ได้สนใจ Technical มากจะได้ข้ามได้ครับ เอาล่ะ งั้นมาเริ่มกันเล้ย ## จะย้ายออกอีกละหรอ? ถึงจะเป็นการย้ายออกจาก Platform รอบที่ 4 ของนิลแล้ว (Medium, Notion, WordPress.com, WordPress.org) แต่ถ้าถามแบบนี้ก็ต้องตอบว่าใช่ครับ 55555555 เหตุผลที่นิลจะย้าย CMS ในครั้งนี้ หลัก ๆ เลยคือต้นทุนครับ ถ้านิล Host WordPress.org ต่อไป นิลก็จะมีต้นทุนในการเช่า Server ของเขาอยู่ครับ ซึ่งเป็นต้นทุนที่นิลเริ่มรู้สึกว่ามันไม่คุ้มถ้านิลจะลงทุนเองในตอนนี้ครับ จริง ๆ อีกเหตุผลคือนิลอยากถือ Content ไว้กับตัวเองครับ เวลาเราเอา Content ไปฝากไว้กับ WordPress เนี่ย เราเอารูป เอา Content ของเราไปฝากไว้กับ Server ของเขา ซึ่งวันใดวันนึง ถ้า Service ซักอันนึงล่มขึ้นมา ข้อมูลนิลอาจจะหายไปตลอดกาลเลยก็ได้แหละครับ เหตุผลสุดท้ายเลยก็คือปีนี้นิลยังอยากลองเล่น Tools ใหม่ ๆ ลองหา CMS ใหม่ ๆ ดูอยู่ครับ ซึ่งการที่นิลต้องดึงข้อมูลจาก Platform ต่าง ๆ มาเพื่อแสดงผลเนี่ย ทำให้นิลต้องหาท่า Hack เยอะมากเพื่อให้มันทำงานได้ครับ ซึ่งก็บอกเลยว่าเสียเวลาเป็นอย่างมาก ทั้งหมดนี้เลยเป็นเหตุผลที่ทำให้นิลเริ่มหาทางเลือกออกจาก WordPress ครับ อย่างที่ชื่อ Blog บอกเลยครับว่านี่คือ **ปฏิบัติการหนี WordPress** (เว่อชิบหาย 555555555) ## เริ่มขั้นตอนการค้นหาทางเลือกใหม่ พอพูดถึงปฏิบัติการแล้ว สิ่งที่ต้องทำอย่างแรกคือวางแผนครับ นิลลองหา **WordPress Alternatives** ก่อนเลย เพื่อลองดูว่ามี CMS เจ้าไหนบ้างที่ตอบโจทย์การเขียน Blog ใส่รูปง่าย ใส่ Content ดี และต้องสามารถนำมาเชื่อมกับเว็บ Blog เดิมของนิลที่เขียนด้วย Astro ได้ด้วย ตอนแรกที่นิลหามา มี CMS หลายตัวมาก ไม่ว่าจะเป็น Strapi, Directus, Ghost, Contentful, PayloadCMS แต่สุดท้ายพอเทียบกับสเปคด้านบนแล้ว นิลก็เหลือตัวเลือกเดียวคือ Ghost เลยครับ นิลเลยลองไปเล่นเจ้า Ghost เพื่อมาเปรียบเทียบ Experience กับ WordPress ดูครับ > ℹ️ จริง ๆ นิลลองเล่น Strapi, Directus, Contentful มาละครับ ถ้าใครอยากรู้ข้อดีข้อเสีย เดี๋ยวนิลมาเขียนไว้ครับ ผลที่ออกมาคือ Ghost ก็พอฟัดพอเหวี่ยงนะครับ ในด้าน Editor Ghost ทำได้ดีมากเลย แถมมี Theme ให้เลือกใช้ได้ประมาณนึงด้วย แปลว่านิลแทบจะสามารถโยนเว็บที่นิลเขียนด้วย Astro มาทิ้งได้เลยนะ 5555555 ปรากฎว่านิลลืมดูครับ Ghost มันต้องจ่ายตังรายปี โอ้แม่เจ้า ก็ว่าทำไมมันดูดีจังวะ 55555555 คือกด Free-Trial ไปแล้วด้วยนะ บ่งบอกถึงความไร้สติตอนกด Free-Trial สุด นิลแม่งไม่ได้อ่านอะไรเลยนี่นา 5555 ## หมดความหวังนั่งน้ำตาริน หลังจากเห็นราคา Ghost แล้ว นิลก็นั่งคอตกแบบมนุษย์เงินเดือนที่เดือนชนเดือนเลยครับ แบบซึมไปเลยแหละ จนกระทั่งนิลนึกถึงบทสนทนาที่คุยกับชุน (เจ้าของเพจ [LearnAlgorithm.com](https://www.facebook.com/learnalgorithm)) ว่าชุนก็ทำเว็บเหมือนกัน แต่หลังบ้านของชุนจริง ๆ แล้วคือการเขียน File Markdown ผ่าน App ที่มีชื่อว่า [Obsidian](https://obsidian.md/) ครับ ต้องเท้าความก่อนว่า Obsidian จริง ๆ แล้วเป็น Note Taking App ครับ โดยเวลาเขียนเราจะเขียนใน Format ที่เรียกว่า Markdown แหละ จุดเด่นของเจ้านี่คือความ Flexible ในการใช้งานครับ เราสามารถมาแบบ No-Brain แล้วใช้มันเป็นเหมือน Notes ของ Apple หรือเราจะทำตัวเป็น Hackerman แล้ว Custom มันเยอะ ๆ ก็ได้ และที่น่าจะสำคัญที่สุดสำหรับนิลครับ คือเวลาเขียนมันสร้าง File Markdown จริง ๆ ไว้ในเครื่องเราครับ หลาย ๆ คนอาจจะสงสัยว่า แล้วการได้ไอเจ้า Markdown มาไว้ในเครื่องสำคัญยังไง จำได้ไหมครับว่าตอนแรกนิลบอกว่านิลอยากเก็บ Content ไว้กับตัวเองครับ ซึ่งการที่เราสามารถสร้าง File Markdown และเก็บไว้ก็คือเราสามารถนำ Content ไปแปรรูปได้ง่ายมากครับ โดยที่ไม่ต้องพึ่งพาความสามารถของ Platform ใด ๆ เลย การลองเล่น Obsidian ช่วงแรก ๆ ก็ต้องบอกเลยว่าอิหยังวะสุด ๆ ตอนแรกนิลพยายามทำความเข้าใจทุก Feature ของมัน พยายามลองหา Tutorial ให้ใช้เป็นทุกอย่างเลยดูเยอะมาก ๆ แบบโคตร Overwhelm เลยครับ ตอนแรกก็แอบมีความคิดจะถอดใจละ แต่พอนิลเกิดความคิดที่ว่าลองใช้แล้วค่อย ๆ เรียนรู้ไป นิลก็ลองใช้ไป อยากรู้ตรงไหนค่อยไปหาเพิ่ม ซึ่งตอนนี้มันก็ทำให้นิลเริ่มกลับมาตาเป็นประกายอีกครั้งเลยแหละครับ 🤩 ประสบการณ์การเขียนโดยรวมคือค่อนข้างดีเลยครับ จนตอนนี้นิลก็ Setup มันมาค่อนข้างเยอะแล้วแหละ 55555 บอกเลยว่า "ของดีย์" ## สรุป Stack ตอนนี้ใช้อะไรบ้าง > ⚠️ เข้าสู่ช่วง Technical ใครไม่สนใจข้ามไปที่ [บทส่งท้าย](#บทส่งท้าย) ได้เล้ย ตอนนี้ Stack ของ blog.ninprd.com คือหน้าเว็บใช้ [Astro](https://astro.build/) เป็น Web Framework ที่เก่งเจ๋งเรื่องของการทำ Content รวมทั้งยังเขียนด้วย Syntax ที่คล้ายกับ HTML สุด ๆ รวมถึงมี Official/Community Integrations เยอะโคตร ทำให้จะทำอะไรก็ง่ายไปหมดเลย และก็นิล Build เป็น Static Web ครับ จะได้ไม่ผูกติดกับ Platform ใด Platform หนึ่งมากเกิน ตัว Content ตอนนี้นิลเขียนเป็น File Markdown (.md) ธรรมดาเลยครับ ซึ่งนิลเลือกเขียนผ่าน Obsidian ครับ นอกจากเรื่องของประสบการณ์การเขียนที่กล่าวไปข้างต้นแล้ว อีกอย่างที่ทำให้นิลชอบมากคือ Graph View ของ Obisidian ครับ สิ่งที่ Graph View ให้คือความเชื่อมโยงกันของ Blog นิลครับ ทำให้นิลเห็น Pattern และหมดหมู่ของที่ตัวเองเขียนไปว่า เอ้ะ ปีนี้เขียนไปกี่บทความ เป็นบทความเรื่องอะไรบ้าง เชื่อมอะไรกันอยู่บ้างครับ Graph View ของ Blog ของนิลเอง
วิธีการที่เราจะใช้ Obsidian กับ Astro ได้คือให้เราสร้าง Vault ของ Obsidian ใน Folder ของ Project Astro เลยครับ จากนั้นให้เราสร้าง Content Collection ของ Blog ใน Astro เลย โดยการตั้งค่าเป็นไปตามนี้ครับ ```ts title="content.config.ts" const blog = defineCollection({ loader: glob({ pattern: ['**/*.{md,mdx}', '!templates/**', '!src/blog/.obsidian/**'], base: 'การตั้งค่า Attachments ใน Obsidian ของนิล
นอกจากนี้ ตัว Web ก็ยังอยู่ใน [Turborepo](https://turbo.build/) ครับ ซึ่งเป็น Monorepo Tools ตัวนึงที่เด่นเรื่องของความเร็วกับความง่ายในการ Setup ครับ ซึ่งสาเหตุที่ทำให้นิลเลือกใช้ Turbo ก็คือออ นิลทำเว็บใหม่แยกออกมาอีกเว็บครับโดยต้องการ Share Styling, UI Component กันครับ เว็บใหม่ที่นิลทำมาเพื่อเอาไว้แบ่ง Content อันไหนที่เป็น Technical Knowledge Sharing ที่เป็น Series ต่อกัน หรืออันที่นิลอยากเก็บเอาไว้ ก็จะเอาไปไว้ที่ตรงนู้น เช่น WordPress Basic Series ก็กำลังย้ายไปเว็บใหม่ครับ ส่วนตรงนี้ก็จะยังเป็น Content เล่าชีวิต สรุป Meetup, Conference สัพเพเหระเหมือนเดิมครับ ใครสนใจ รอติดตามที่[ลิงก์นี้](https://learn.ninprd.com)เลยครับ เดี๋ยวทำเสร็จแล้วจะลงเพจอีกทีครับ ## บทส่งท้าย ต้องบอกว่า Blog นี้เป็น Blog ที่ใช้เวลาค่อนข้างนานมากในการเขียนเพราะว่านิลนั่งย้าย Content ออกจาก WordPress นานมากกกก แล้วก็ยังใช้เวลากับการศึกษากับ Obsidian ค่อนข้างเยอะครับ เลยเป็นเหตุผลที่นิลไม่ได้เขียน Blog ของเดือนมกรา (อันนี้อ้างแหละ จริง ๆ แล้วคืองานเยอะเกิน 55555) อีกปัจจัยนึงที่ทำให้นิลเลือกมา Obsidian คือตอนนี้นิลกำลังจะเอาของจำพวก Learning ไปจดใน Obsidian แทน Notion ครับ เพราะ Obsidian มันแอบไวกว่าอะ 5555555 ละก็มันเห็น Graph View ด้วย ทำให้เราเห็นว่าแต่ละเรื่องที่เราเรียนมามันเกี่ยวข้องกับเรื่องอะไรบ้างครับ จบไปแล้วกับ Blog อันร่ายรำอารัมภบทมาอย่างเยอะสุดท้ายก็คือย้ายบ้านนั่นแหละ 55555555 ถือว่าภารกิจสำเร็จแล้วกันครับ ขอบคุณชุนมากที่แนะนำ Obsidian มาให้ลองใช้ ใครอยากอ่าน Tech Stack ตึง ๆ ของ [LearnAlgorithm.com](https://learnalgorithm.com/) สามารถไปอ่านได้[ที่นี่](https://www.facebook.com/share/p/1HMWmGmGEW/)เลยนะ นอกจากนี้นิลก็ขอขอบคุณทุกคนที่ยังอ่านมาถึงจุดนี้นะครับ ทุกคนเก่งมาก 555555 ขอบคุณทุกคนที่ติดตามนิลนะครับ ปีนี้เดี๋ยวมี Content สนุก ๆ มาอีกเยอะเลย รอได้เลยครับ 😎 ขอให้ทุกคนสนุกกับการเขียน -- นิล -- --- # 2024 Year In Review - URL: https://blog.ninprd.com/blog/2024-year-in-review/ - Published: 2024-12-28 - Tags: year-in-review, Y2024 - Summary: สวัสดีครับทุกคน มาดูสรุปปี 2024 ของนิลกันครับ ^^ สวัสดีครับทุกคน ปีนี้นิลรู้สึกว่ามีอะไรเกิดขึ้นกับนิลเยอะมากเลย ก่อนอื่นเลยน่าจะขอขอบคุณทุก ๆ คนที่ยังอ่าน Blog ของนิลอยู่ หรือเพิ่งมาเจอกันใน Blog อันนี้ก็ตามครับ และเหมือนเดิมนิลอยากที่จะสรุป Highlight/เรื่องสำคัญ ๆ ที่เกิดขึ้นกับนิลในปีนี้ครับ เป็นปีที่สมบุกสมบันของนิลมาก จะเป็นยังไง ไปดูกันเลยครับ ## เป็นโควิดครั้งแรก… ช่วงวันเกิด… เปิดเรื่องแรกมาก็ไม่ดีเลย 555555 ตอนช่วงกุมภาอยู่ดี ๆ นิลก็รู้สึกเจ็บคอขึ้นมา นิลก็แบบเอ้ะ ไข้หวัดหรือเปล่านะ เริ่มเป็นซัก 3 วันเริ่มรู้สึกแปลก ๆ ลองจิ้มจมูกดู เรียบร้อยเลย 5555555 2 ขีดเข้ม ๆ วันนั้นก็คอตกเลย เพราะช่วงก่อนหน้านั้นคือเจอคนเยอะมาก และช่วงนั้นนิลก็มีจะต้องไปสอนลูกค้าใช้ระบบอีกเลยต้องรีบถ่ายงานให้น้องในทีมเลย เป็นวันเกิดที่นอนซึม ๆ + ป่วยอยู่บ้าน ปีหน้าไม่เอาละนะ ## ไปต่างประเทศคนเดียวครั้งแรก หลังจากที่ปีที่แล้ว นิลติดอยู่กับ Project WordPress อันที่พูดถึงปีที่แล้วอย่างยาวนาน ซึ่งช่วงมกราอยู่ดี ๆ นิลก็คิดอุตริอยากจะไปต่างประเทศแหละ นิลเลยกดตั๋วไปไต้หวัน 6 วันในช่วงมีนาไปเลย แบบไม่ไหวแล้วโว้ย สิ่งที่ตอนนั้นคิดคือ เงินไม่ใช่ปัญหา ตอนนี้ขอแค่เอาตัวเองออกจากงานได้ก่อนคือโอเคละ (แต่ตอนนี้เงินเริ่มเป็นปัญหาละ 555555) ตอนนั้นก็สนุกดีฮะ ได้เดินทางด้วยตัวเอง ได้เปิดประสบการณ์นอน Hostel (แต่คราวหน้าไม่เอาละ 55555) ได้ไปลง Hot Spring ครั้งแรกด้วย 5555 ถือว่าเป็นประสบการณ์ที่ดีครับ ใครอยากอ่านเรื่องราวของนิลในไต้หวันสามารถอ่านได้[ที่ Blog อันนี้](alone-in-taipei-2024.md)ได้เลยครับ ## ไปงาน Conference ที่ต่างประเทศ จริง ๆ เหตุผลที่ทำให้นิลไปไต้หวันที่นิลเล่าไปในข้อก่อนหน้าคือการที่นิลวู่วามกดตั๋วไป Conference WordCamp Asia 2024 แหละ ซึ่งก็เป็นอีกจุดนึงที่เปิดประสบการณ์และเปิดโอกาสให้กับนิลในการไปงานต่าง ๆ ในปีนี้ด้วย ได้รู้จักชาว WordPress Bangkok กับพี่ไทและก็ชุนแห่ง LearnAlgorithm.com เพิ่มอีกด้วย ถือว่าเป็นการอัปเกรดตัวเองจาก Social Akward Boy เป็นชาว Social Akward ชุดแป้งทอดเลย 555555 อาจจะไม่ได้เขียนไว้ในนี้เยอะ แต่ก็สามารถอ่านแบบละเอียดได้[ที่ลิงก์นี้](wordcamp-asia-2024-with-nin.md)เลยครับ และ ๆๆๆๆ [WordCamp Asia 2025](https://asia.wordcamp.org/2025/) บัตรขายแล้วนะครับ ใครสนใจเข้าหน้าเว็บไปซื้อได้[ที่นี่](https://asia.wordcamp.org/2025/tickets/)เลย ## เป็น TA ของ Web Dev Bootcamp ของ Skooldio อันนี้เป็นสิ่งที่ตัวนิลอยากทำในช่วง Cooldown จาก Project WordPress เพื่อรื้อความรู้ React ของตัวเองอีกครั้งครับ เป็นช่วงเวลาที่ได้ช่วยเหลือคนเรียน ได้เห็นคนบางคนรู้สึกสำเร็จ เป็นความรู้สึกที่ใจฟูมาก ๆ เลยครับ และในขณะเดียวกันก็เป็นช่วงที่เหมือนได้ย้อนเวลาไปตอนที่ตัวเองเริ่มเขียนโค้้ดและสวมวิญญาณคนที่เราอยากได้คำแนะนำในช่วงแรก ๆ ของการเขียนโค้ดเลยแหละ รวมถึงได้เจออาจารย์ข้างนอกเก่ง ๆ ทั้งพี่ไมค์ พี่จุ้น พี่ไท ริฟฟี่ ถือเป็นช่วง 3 เดือนที่ดีมากครับ ใครสนใจเรียนรู้ Skill Web Development สามารถลงทะเบียนความสนใจรุ่นต่อไปได้[ที่ลิงก์นี้](https://landing.skooldio.com/web-development-bootcamp)เลยครับ ## เรียน UX/UI Bootcamp #7 อันนี้เป็น Cannon Event ที่นิลเลือกก้าวไปเองครับ คือส่วนตัวนิลก็สนใจเรื่องของ UX อยู่แล้ว และนิลก็เห็นว่าช่วงกลางปี Skooldio มีเปิด [UX/UI Bootcamp](https://landing.skooldio.com/ux-ui-bootcamp) พอดี นิลก็ด้วยความอยากเรียนก็ติดต่อพี่ Manager ไปเพื่อขอเรียนครับ เป็นช่วงเวลาที่นิลได้เข้าใจศาสตร์ของ UX/UI มากขึ้น ได้เรียนกับพี่ ๆ ตัวตึงในวงการและก็ได้พัฒนา Skill ของตัวเองแบบก้าวกระโดดด้วย ถือว่าเป็นการลงทุนเวลาที่คุ้มค่าที่สุดในชีวิตครั้งนึงเลยก็ว่าได้ครับ ปีหน้าน่าจะเปิดรับสมัครอีกรอบ ยังไงใครสนใจสามารถลองอ่าน[รีวิวของนิลได้ที่นี่][skooldio-ux-ui-bootcamp-7-review.md]เลยครับ ## ไป Conference กับ Meetup แบบฉ่ำ ๆ ปีนี้เป็นปีที่ออกนอก Safe Zone มาก ๆ เลย ในความรู้สึกนิล นิลเป็นแค่ Introvert หนึ่งคนที่ Social Akward มาก ๆ แต่ด้วยความอยากลองและก็อยากได้ความรู้ด้วยก็เลยต้องไปเยอะมาก ๆ เดี๋ยวลองไล่คร่าว ๆ ว่าไปไหนมามั่ง ### Conference - WordCamp Asia 2024 - UXTH Conference 2024 - GameChanger Conference - JavaScript Bangkok 2.0.1 - LINE DEV CONF 2024 - ODDS| CONF 2024 ### Meetup - WordPress Meetup: Growing WordPress in Thailand - WordPress Meetup: Let’s Share our WordPress Workflow - WordPress Meetup: WordPress Security - Supabase Meetup 1.0 - UXTH Meetup Biometrics - Google Cloud Dev Fest - SCBX Unleash: Figma Meetup Bangkok - SCBX Unleash: Designing for Maximum Impact and Scale ## พักการรับงานถ่ายรูป หลาย ๆ คนพอเห็นชื่อเพจครั้งแรกอาจจะแบบว่า “ตากล้องที่เขียนโค้ดได้” นี่ ส่วนไหนของนิลเป็นตากล้องนะ แต่ถ้าเป็นคนที่รู้จักนิลตั้งแต่ช่วงก่อนเปิดเพจจะรู้ว่านิลรับงานถ่ายรูปก่อนที่จะเขียนโค้ดซะอีก 555555 ซึ่งนิลก็รับถ่ายรูปมาได้หลายปีแล้วและช่วงที่ผ่านมาพอนั่งเขียนโค้ดด้วย ถ่ายรูปด้วย (ตีแบดด้วย) ข้อมือนิลอักเสบบ่อยมากครับ และนิลต้องเลือกที่จะหยุดกิจกรรมซักอย่างนึงเพื่อรักษาข้อมือนิลไว้ (ฟังดูยิ่งใหญ่ปะ 555555) นิลก็เลยเลือกหยุดที่จะรับงานถ่ายรูปครับ เพราะพอมา Review แล้ว Goal ของนิลไม่ได้อยากไปทางนั้นแล้วด้วย ## เติบโตเป็น Team Lead ในปีนี้นิลก็ได้รับโอกาสจากพี่เมเนท่านหนึ่งให้ลองขึ้นเป็น Team Lead ครั้งแรกครับ ถือว่าเป็น Challenge ที่ใหญ่ที่สุดเลยก็ว่าได้ครับ ซึ่งในฐานะที่นิลไม่เคยอยู่ในทีมแบบยาว ๆ มาก่อน นิลเองก็ไม่รู้ว่าทีมต้องการอะไรจากนิล และนิลก็ไม่รู้จะ Provide อะไรให้ทีมบ้าง ก็อาศัยครูพักลักจำละก็พยายามสื่อสารกับทีมมาเรื่อย ๆ ครับ ผ่านมา 4 เดือนแล้ว แต่นิลก็รู้สึกว่าตัวเองยังต้องพัฒนาเรื่อย ๆ อยู่ ช่วงนี้ก็ต้องซื้อหนังสือมาอ่านเพิ่มอยู่ครับ ปีหน้าก็น่าจะเป็นปีที่น่าสนุกของนิลเลยแหละ --- ผ่านพ้นไปอีกปีแล้วกับปีที่วุ่นวายมาก ขอบคุณทุกคนที่ยังอ่าน Blog ของนิลอยู่ นิลรู้สึกว่าเป็นปีที่เหมือนนั่งบนรถไฟเหาะเลยครับ มีทั้งความชิบหายและความสนุกมาก ๆ รู้สึกว่าได้เติบโตมาก ๆ เลยครับ หวังว่าปีถัด ๆ ไปจะเป็นปีที่ดีและได้เรียนรู้อะไรเพิ่มอีกครับ ปีหน้านิลกำลังเล็งว่าจะ Re-structure เว็บไซต์และเขียน Content ที่เป็น Technical มากขึ้น และๆๆ เล็งว่าจะเปลี่ยนชื่อเพจ ด้วย 555555 ขอให้ยังติดตามกันแบบนี้ต่อไปนะครับ 🥺 --- # สรุปคลาส Web For Impact ของแอดทอย DataRockie - URL: https://blog.ninprd.com/blog/summarize-web-for-impact-class/ - Published: 2024-12-18 - Tags: knowledge-sharing, summary - Summary: เมื่อวันเสาร์ที่ผ่านมา นิลไปเรียน Web For Impact กับพี่ทอย DataRockie มาครับ มีสรุปมาฝากประมาณนี้ ๆ เมื่อวันเสาร์ที่ผ่านมา นิลไปเรียน [Web For Impact](https://webforimpact.com/) กับพี่ทอย [DataRockie](https://datarockie.com/) มาครับ มีสรุปมาฝากประมาณนี้ ๆ 1. Meta Skills ที่สำคัญอย่างมากคือการอ่านและการเขียน 2. “You can only cook what’s in the fridge” เราจะเขียนอะไรได้ ต้องมีวัตถุดิบก่อน 3. Website เป็น First Principle ในการหาลูกค้า/รายได้ ต้องมีหน้าร้านที่ดีก่อน 4. การเขียน ไม่ได้สักแต่เขียน แต่เราต้องเขียนเพื่อสร้าง Impact ซักอย่างนึง 5. การเขียนเปรียบเสมือนการฝากธนาคาร ยิ่งสั่งสมทักษะการเขียน ยิ่งทำให้เราเก่งขึ้น 6. ถ้าอยากทำเว็บให้ติด Google Search หน้าแรก ให้ลองเอา Keyword ที่อยากติดไปหา จากนั้นแทรก Keyword นั้น ๆ ลงในเนื้อหาของเรา 7. เวลาเริ่มเขียนแล้วยังไม่เก่ง รู้สึกยังไม่ดี อย่าเพิ่งท้อ ให้วัด Timeframe ซัก 2 ปีก่อน 8. ไม่อยากให้ยิง ads เพื่อ Promote เพราะมันเป็นอะไรที่ชั่วคราว ตังหมดคนก็หาย 9. ที่อื่น ๆ มักจะสอน Writing, SEO, Website Skills แยกกัน แต่ความเป็นจริง 3 เราไม่สามารถแยก 3 สิ่งนี้ออกจากกันได้ มันเชื่อมโยงกัน 10. Content ควรเริ่มที่ Website ก่อน แล้วค่อยกระจายไปตาม Social Media 11. เวลาที่เราเป็น Nobody อย่าเขียนเรื่องตัวเอง ให้เขียนเรื่องคนอื่นที่ดังกว่าเรา 12. จากหนังสือ CopyWrong to CopyWriter นั้น ถ้าเรามี Strong Strategy กับ Interesting Voice จะทำให้ได้ Great Copy แหละ 13. Strategy คือกลยุทธ์ในการทำ Content โดยพื้นฐานแล้วมีอยู่ 2 อย่าง คือ Action (อยากให้คนทำอะไรให้เรา) กับ Education (ให้ความรู้) 14. Voice คือ Style การเขียนและการเลือกใช้คำ เช่น ของพี่ทอยจะใช้คำว่า ยั๊งงงง ใน Copy/Content โดยของแบบนี้เราจะต้อง Develop ไปเรื่อย ๆ ให้เป็น Style ของตัวเอง 15. “Write For One Person” ให้เราเขียนให้กับคน ๆ เดียวโดยกำหนดเป็นเหมือน Persona ขึ้นมาว่าเขาชื่ออะไร อายุเท่าไหร่ แล้วจึงออกแบบว่าในขณะที่เขากำลังอ่าน เขากำลังทำอะไร ชอบอ่านอะไร และมีความรู้สึกยังไงตอนจะอ่าน และปิดจบด้วยการกำหนด Strategy 16. One Person ที่ง่ายที่สุดคือเขียนให้ตัวเราในอดีต ลองเขียนให้เราเมื่อ 10 ปีที่แล้วมาอ่าน 17. ถ้าไม่รู้จะเริ่มเขียนอะไร ให้เริ่มเขียนเกี่ยวกับ Eternal Markets – Health, Wealth, Relationship, Happiness ยังไง Content เหล่านี้ก็มีคุณค่าตลอดกาล 18. Google ชอบ Content ที่ดีและ E-E-A-T ย่อมาจาก Experience (ประสบการตรง) Expertise (ความชำนาญ) Authority (ได้รับการ Backlink จาก Web อื่น ๆ) และ Trustworthy (ความน่าเชื่อถือและความโปร่งใส) 19. นอกจากข้อข้างบน Google ชอบให้เว็บมีการสร้าง Content (ที่ดี) บ่อย ๆ ด้วย 20. Brand Top 10 ของโลก 7/10 ชื่อมีเสียงสูงกว่าไม้โท เช่น Google, Apple, Microsoft แนะนำให้ตั้งชื่อ Brand ของตัวเองด้วย เสียงสู๊งงงง ([ninprd.com](http://ninprd.com/) นี่โคตรเรียบเลย หรือนี่ทำให้เรายังไม่ดัง 55555) --- สรุปจบพี่ทอยฝากไว้ 4 ข้อครับ ✨ Everyone should have a website ✨ Writing is a critical skills ✨ Creating Ridiculously Good Content Everyday ✨ Good Things Come to Those Who ~~Wait~~ **Write** --- # สรุป OC24: LeSS Architecture - URL: https://blog.ninprd.com/blog/summary-oc24-less-architecture/ - Published: 2024-12-03 - Tags: ODDSCONF24, OC24, conference, summary - Summary: ก่อนจะเข้าสู่เนื้อหา พี่รูฟบอกว่าหัวข้อ LeSS Architecture เนี่ย ในวันนี้พี่รูฟจะใช้เป็น Let’s Start talking about Software Architecture ก็คือไม่ได้เกี่ยวกับ LeSS (Large Scale Scrum) แต่เกี่ยวกับ Software Architecture นั่นเอง เป็น Session สุดตึงยามเช้าเพราะกำลังงัวเงียเลย 5555555 เช้าสุด ๆ จะเป็นยังไงมาลุยไปด้วยกันครับ ก่อนจะเข้าสู่เนื้อหา พี่รูฟบอกว่าหัวข้อ LeSS Architecture เนี่ย ในวันนี้พี่รูฟจะใช้เป็น Let’s Start talking about Software Architecture ก็คือไม่ได้เกี่ยวกับ LeSS (Large Scale Scrum) แต่เกี่ยวกับ Software Architecture นั่นเอง เป็น Session สุดตึงยามเช้าเพราะกำลังงัวเงียเลย 5555555 เช้าสุด ๆ จะเป็นยังไงมาลุยไปด้วยกันครับ 1. เราชอบเอา Software ไป Map กับงานก่อสร้างและสถาปัตยกรรม แต่เราเข้าใจกันจริง ๆ หรือเปล่าว่าคำว่า Architecture มันหมายความว่ายังไง 2. ถ้าพูดถึง Architecture จะมีตึกนึงที่สวยมากใน London ชื่อ Senate House ที่เป็นตึกของ University of London 3. พี่รูฟเล่าไปถึงตอนที่สร้างตึกว่าตึกนี้ได้รับโจทย์มาให้เป็นตึกที่ต้องไม่ถูกลอกเลียนแบบด้วยคนอื่น และออกแบบด้วย Architecture Style แบบ Art Deco ซึ่งได้รับแรงบันดาลใจจากยุคกลาง 4. เมื่อเลือกแล้วว่าจะใช้ Architecture Style แบบนึง ภายในตึก รวมถึงของตกแต่งก็ต้องสอดคล้องไปกับ Style นั้น ๆ เราเรียกสิ่งนี้ว่า Architecture Pattern 5. ระหว่างการก่อสร้างตึกนี้เกิดสงครามโลกครั้งที่ 2 ทำให้ถูกตัดงบ ทำให้สร้างได้ไม่ตามแบบที่วางไว้ 6. แม้จะไม่เหมือนที่วางไว้ แต่ส่วนที่สำคัญมันก็เสร็จและก็เป็นไปตาม Architecture ที่วางไว้ 7. จากจุดนี้แปลว่าการทำ Architecture ก็มี Priority เหมือนกันว่าควรสร้างตรงไหนก่อน ไม่ได้สามารถสร้างมั่ว ๆ ได้ 8. จริง ๆ แล้ว Architecture นั้นประกอบไปด้วย Style และ Pattern โดย Style นั้นมีไว้เพื่อกำหนด Pattern โดยที่ตัว Architecture นั้นไม่ได้มีความหมายอะไรไปมากกว่าสิ่งที่เราอยากได้มันคืออะไร บอกแค่เพียงแค่จุดสำคัญของมันคืออะไร 9. Software Architecture ตามนิยามคือภาพ High-Level ของระบบ Software เพื่อใช้ตัดสินใจในการทำงานในองค์กร (เป็นนิยามที่โคตร Abstract) 10. ซึ่งความสำคัญของ Software Architecture คือทำให้ Developer รู้ว่าอะไรคือสิ่งของที่สำคัญ รวมถึงสิ่งนี้สามารถใช้สื่อสารระหว่าง Stakeholders 11. จริง ๆ ในเนื้อหาจะมีอีก 2 ข้อคือเรื่องของ Scalability กับ Maintainability แต่พี่รูฟตั้งแง่กับมัน โดยมองว่า 2 สิ่งนี้ถ้ามีเงินเดี๋ยวมันจะตามมาเอง 12. ในฝั่งของ Software Architecture จะไม่เหมือนกับงานก่อสร้างอย่างนึงคือ Architecture ของงานก่อสร้างจะคงทนอยู่อย่างงั้นตลอด แต่ของงาน Software จะต้องเปลี่ยนไปตาม Requirement ยุคสมัย และงบ 55555 13. Architecture Styles และ Patterns ของฝั่ง Software มีให้เลือกเยอะมาก เลือกตามความสามารถของทีมกับความเร่งรีบของธุรกิจ เมื่อมีข้อจำกัดมา เราจะถูกบีบให้เลือกตามข้อจำกัดเอง 14. ถ้าเราต้องทำของที่ Requirement ไม่ชัดและไม่เคยมีใครทำมาก่อน เราจะเหมือนเท Resource ไปเรื่อย ๆ และตัว Software ก็ขยายไปเรื่อย ๆ 15. หลาย ๆ คนมักบอกว่าตัวเองกำลังทำสิ่งที่ไม่เคยมีใครทำมาก่อน แล้วก็จะข้ามขั้นไม่ยอมทำ Architecture Design และระบบก็จะบวมไปเรื่อย ๆ 16. แต่จริง ๆ แล้วมักจะตกหลุมพรางเพราะตัวเองกำลังทำสิ่งที่คนอื่นทำมาอยู่แล้ว ภาพใหญ่สุดมันคือการขาย Products & Services นั่นแหละ 17. มีสิ่งที่เรียกว่า eTOM (Enhanced Telecom Operations Map) ซึ่งเป็นเหมือน Blueprint ว่าถ้าจะทำ Products & Services ใด ๆ ต้องมี Process อะไรบ้าง ถ้าอยากทำ Products หรือ Services อะไร เข้าไปดูในนั้นแหละ ไม่ต้องคิดเอง 18. เวลาลูกค้ามาจ้างแล้วถามว่า “ที่ดีคืออะไร” อย่าไปแบบสมองโล่ง ๆ แล้วบอกว่าจะเรียนรู้ด้วยกัน อันนั้นลูกค้าอาจจะขอเงินคืน 555555 19. เวลาเรารับ Requirement มา ให้เปิด eTOM ดูว่า Requirement ที่เรารับมาประกอบด้วย Service อะไรบ้าง ถ้าเป็นของที่มีคนทำอยู่แล้วและไม่ใช่ Core หลักให้ Buy ถ้าเป็น Core หลักให้ Build 20. Architecture ที่ดีที่สุดไม่มีอยู่จริง ให้เราเลือกและบอกว่าคิดยังไงถึงได้ Architecture นี้มาดีกว่า 21. จากประสบการณ์พี่รูฟ ในระบบ Software ขนาดใหญ่ ไม่เคยมีของที่ใช้ Pattern เดียวกัน เราต้องค่อย ๆ ดูแต่ละจุดเพื่อดูว่า Pattern ไหนตอบโจทย์แต่ละจุดที่สุด 22. เราไม่จำเป็นต้องเลือก Pattern ที่ยิ่งใหญ่ตั้งแต่ Day 1 ของระบบ ต้องรีบ Launch ละให้ Business ไปขาย 23. เรามีโอกาสที่จะฝันอยากจะใช้ Pattern แบบหล่อเท่ แต่ให้หันมาถาม Business ด้วยว่าไหวไหม ไม่ไหวก็ลืมความฝันนั้นไปก่อน 24. อย่าเป็นคนที่ Design Architecture แต่ไม่เคยเห็น Code ที่ตัวเอง Design ถ้า Software Architect ไม่เคยเขียน Code = กลับไปขายก๋วยเตี๋ยวไป๊! 25. Key หลักคือ ก่อนจะเอาอะไรให้ลูกค้า ทำการบ้านเยอะ ๆ อ่านหนังสือเยอะ ๆ 26. หลังจากวาง Architecture เสร็จแล้ว ค่อยคิดว่าจะ Tech Stack อะไรในการ Implement สิ่งนั้น ๆ Session สมองบวมจบลงแต่เพียงเท่านี้ ขนาดมานั่ง Rewrite เอง ยังสมองบวมอีกรอบ พี่รูฟสุดยอดจริง ๆ ครับ FC พี่รูฟ เย้ ๆ --- # สรุป OC24: LeSSExample - URL: https://blog.ninprd.com/blog/summary-oc24-lessexample/ - Published: 2024-11-23 - Tags: ODDSCONF24, OC24, conference, summary - Summary: มาต่อกับอีก 1 Session ของพี่ส่ง Product Developer แห่งทีม LeSSExample ที่จะพาทุกคนมารู้จักกับ LeSSExample ให้มากขึ้นครับ มาทำความรู้จักกับ LeSSExample กันครับ มาต่อกับอีก 1 Session ของพี่ส่ง Product Developer แห่งทีม LeSSExample ที่จะพาทุกคนมารู้จักกับ LeSSExample ให้มากขึ้นครับ 1. LeSSExample คือ LeSS + Example เดี๋ยวอธิบายแต่ละอันให้ฟัง 2. ก่อนจะรู้จัก LeSS ต้องรู้จัก Scrum ก่อน 3. ตามหลักของ Scrum จะดีจะแย่ เรารู้ตัวก่อนเสมอ 4. ในทีม Scrum 1 ทีมประกอบไปด้วย Product Owner, Scrum Master, Team แต่ละคนมีศักดิ์เท่ากันแต่มี Focus แตกต่างกันไป 5. Product Owner (PO) จะเป็นคนที่ต้อง Focus เรื่องของ Return of Investment 6. PO ยังต้องเลือกและตัดสินใจว่าจะให้ Team แก้ปัญหาอะไร ทำไปทำไม ทำแล้วได้อะไร และทำแล้วได้ Value อะไร 7. Team เป็นคนที่ต้อง Focus เรื่อง Solution จาก Business Requirement นี้ จะไปทางไหนได้บ้าง ใช้ Effort เท่าไหร่ 8. Team ต้องรับผิดชอบ Solution ที่ตัวเองเลือกด้วย เช่น ถ้าเลือก Deploy เย็นวันศุกร์ เสาร์เว็บบึ้ม Team ต้องมาแก้ให้เว็บใช้งานได้ในวันเสาร์ด้วย 9. Scrum Master เป็นคนที่ Focus ว่าจะทำยังไงให้ Scrum มัน Work สำหรับคนทั้งองค์กร และทำยังไงให้ PO ทำงานร่วมกับทีมได้ 10. นอกจากนี้ Scrum Master ยังต้องเป็นคนหาว่าเราสามารถปรับเปลี่ยนอะไรในเชิงโครงสร้างองค์กรได้ไหม เพื่อทำให้ทีมแสดงศักยภาพได้มากที่สุด 11. LeSS คือการเอา Scrum มาใช้ในภาพใหญ่ขึ้น ซึ่งรองรับ Scrum 2-8 ทีม 12. ส่วนคำว่า Example คือทำให้เป็นตัวอย่างแหละ 13. เอามารวมกันเลยแปลว่าเดี๋ยวเราทำ LeSS ให้เป็นตัวอย่างนะน้อนๆ 5555555 14. LeSSExample ประกอบไปด้วย 3 Scrum Team และมี 1 Backlog ร่วมกัน 15. LeSSExample เคยอยากทำ Product การเงินชื่อว่า “ออม” ซึ่งมี Target Group เป็น Freelance แบบชาว ODDS| นี่แหละ แต่ทีมไม่มี Domain Knowledge เกี่ยวกับ Investment Product 16. ทีมเลยไปรับ Turnkey Project เกี่ยวกับ Investment เพื่อเติม Domain Knowledge และหา Revenue Stream เพื่อเอาไปทำ Investment Product ที่อยากทำ 17. ตอนนี้ทีมทำอยู่ 13 Projects ซึ่งรวมกันเป็น Backlog ที่มีชื่อ Investment Product 18. อีก 1 Ceremony ที่เกิดใน LeSS ที่น่าสนใจคือ Product Backlog Refinement (PBR) เป็น Session ที่เราจะพา Team พยายามเข้าใจปัญหาที่ PO ต้องการให้ Team แก้ 19. Session นี้จะเป็นการแบ่ง Team ออกเป็น Mixed-up Group คือคละ ๆ คนจากแต่ละทีมแหละ 20. เสร็จแล้ว Scrum Master ก็จะบอก Goal ที่ PO ต้องการและให้ Team เข้า Process ของ PBR 21. ขั้นแรกเรียกว่า Diverge ซึ่งใช้เวลา 20 นาทีคือให้แต่ละ Mixed-up Group หยิบการ์ด ถอดความเป็น Technical ออกและพยายามทำความเข้าใจมุมลูกค้า หรือถ้าเป็น Product ใหม่ ก็พยายามทำความเข้าใจ Journey ของลูกค้า เมื่อเสร็จแล้วให้จดว่าใครบ้างที่อยู่ใน Mixed-up Group ของตนลงในการ์ดใบนี้ 22. ในช่วง Diverge ถ้ามีคำถามสงสัยเราสามารถคุยกับ PO เพื่อเอาข้อมูลเพิ่มเติม หรือถ้าสงสัยจุดไหนที่เป็น Requirement ลูกค้า สามารถคุยกับลูกค้าได้โดยตรง 23. จากนั้นจะเข้าสู่ขั้นตอนต่อไปนั่นคือ Merge ซึ่งจะใช้เวลา 10 นาที โดยเราจะเอา Mixed-up Group ทุกกลุ่มมารวมกัน และสุ่มคนมาเล่าการ์ดที่เพิ่งถูก Refine มา 24. ซึ่งถ้าสมมติมีคนที่มี Domain Knowledge เกี่ยวกับการ์ดที่กำลังถูกพูดถึงอยู่ก็สามารถเสริมให้กับคนที่กำลังเล่าได้ 25. จากนั้นเราจะเข้าสู่ขั้นตอนที่ 3 ของ PBR นั่นคือ Repeat ก็คือเราจะวนกลับไป Diverge กับ Merge เรื่อย ๆ 26. ส่วนใหญ่แล้ว PBR จะเกิดขึ้นวันพุธที่ 2 ของ Sprint และใช้เวลา Session ละ 2 ชั่วโมง 27. หลังจากที่จบ PBR ทีมจะกล้าเคลมได้ว่าทุกคนในทีมเข้าใจ Backlog Item ที่ผ่าน Process นี้ไปได้ 28. ปัจจุบันทีม LeSSExample ยังเปิดให้คนภายนอกสามารถเข้ามาดูได้ว่าทีมทำงานกันยังไง โคตรโหดโคตรอันตราย ถ้าใครอ่านมาถึงตรงนี้แล้วสนใจเข้าไปศึกษา LeSS จากทีม LeSSExample สามารถติดต่อไปได้ที่ [https://lessex.odds.team/](https://lessex.odds.team/) --- # สรุป OC24: Deploy Production every sprint!? Is it possible? - URL: https://blog.ninprd.com/blog/summary-oc24-deploy-production-every-sprint-is-it-possible/ - Published: 2024-11-22 - Tags: conference, OC24, ODDSCONF24, summary - Summary: มาอย่างต่อเนื่องกับอีก Session ที่สนุกเพราะแปะมีมตลอดทางกับ Deploy Production every sprint!? Is it possible? ใน ODDS| CONF 2024 ซึ่งเอาตรง ๆ ตอนนิลอ่านหัวข้อครั้งแรกนิลก็แบบ มันจะเป็นไปได้หรอวะ ส่งของให้ User ใช้ Sprint ละครั้ง แต่สำหรับพี่จี๊บแห่ง ODDS| กับทีมของเขาแล้ว มันเป็นไปได้ครับ ทีมพี่เขาทำได้วิธีไหน มารู้ไปพร้อม ๆ กันครับ มาอย่างต่อเนื่องกับอีก Session ที่สนุกเพราะแปะมีมตลอดทางกับ Deploy Production every sprint!? Is it possible? ใน ODDS| CONF 2024 ซึ่งเอาตรง ๆ ตอนนิลอ่านหัวข้อครั้งแรกนิลก็แบบ มันจะเป็นไปได้หรอวะ ส่งของให้ User ใช้ Sprint ละครั้ง แต่สำหรับพี่จี๊บแห่ง ODDS| กับทีมของเขาแล้ว มันเป็นไปได้ครับ ทีมพี่เขาทำได้วิธีไหน มารู้ไปพร้อม ๆ กันครับ 1. สิ่งที่จะพี่ิจี๊บเล่าต่อไปนี้เป็นแค่ประสบการณ์ที่พี่เขาเจอ ไม่ได้แปลว่าใช้ได้กับทุกที่ แค่มาเล่าสู่กันฟัง 2. ทีมทำ Product Jago มี Active User 14M คน มีทีมย่อยข้างใน 3 ทีม 3. ทีมทำงานกันในรูปแบบ [LeSS](https://less.works/) แต่ยังไม่ Fully LeSS (ขอแรกตัวเองว่ายังเป็น LeSS Practitioner) 4. ด้วยวิธีการทำงานแบบ LeSS ทำให้เกิดการกระจาย Knowledge ทั้งทีม 5. วิธี Development ที่เลือกใช้คือ [Trunk-Based Development](https://trunkbaseddevelopment.com/) ก็คือทุก ๆ คนทำงานกันที่ Branch Main/Master เพื่อให้ทุก ๆ คนได้ Code ที่อัปเดทและ Stable อยู่เสมอ 6. แล้วเมื่อไหร่เราจะกล้าเอาของขึ้น Branch Master/Main ล่ะ ก็คือเราต้องเขียน Test Coverage ไว้ 100% 7. แต่เอาจริง ๆ Test Coverage 100% ยากมาก เอาเป็นว่าถ้าเราสามารถนอนหลับสนิทได้โดยไม่ต้องพะวงว่า Code เราจะไปบึ้มบน Production หรือเปล่า = Coverage ดีแล้ว 55555 8. เวลาจะทำ Feature เพิ่ม ต้องคิดเผื่อ Backward Compatibility เช่น มือถือเครื่องเก่า ๆ ยังต้องใช้งานได้ 9. สิ่งหนึ่งที่สามารถช่วยทำ Backward Compatibility ได้คือการทำ Feature Toggle (หรือที่ชาวบ้านเรียกกันว่า Feature Flag) 10. เสร็จแล้วจะมี Process ในการ Deploy ขึ้น Staging เพื่อให้ QA ทำ Regression Testing ต่อไป 11. เมื่อ QA นั่งทำ Manual Regression Testing เสร็จ แต่ละทีมก็ต้องส่งคนไปประสานกับ QA ว่า Feature ที่แต่ละทีมทำไปมี Bug อะไรไหม 12. พอ Regression Testing เยอะ ๆ และนั่งทำกัน Manual เกิด Pain ขึ้นทำให้ทีมเริ่มทำ Automation E2E Testing กันเพื่อช่วยลด Pain ให้ QA 13. ทีมคุยงานกันผ่าน [gather.town](https://www.gather.town/) ทำให้ทีมเอาผลการทำ E2E Testing มา Integrate กับ gather ให้ต้นไม้ 1 ต้น = 1 Case ถ้า Pass ต้นไม้เป็นสีเขียว ถ้า Fail ต้นไม้เป็นสีแดง 14. หลัง Test เสร็จก็จะยิง Meeting ที่ชื่อว่า “Go/No-Go Meeting” เพื่อมาคุยร่วมกันว่าของที่จะเอาขึ้นมีอะไรบ้างและของที่จะเอาขึ้นมี Known Issues อะไรบ้าง เพื่อตัดสินใจว่าจะ Go (Deploy ขึ้น Production) หรือ No-Go (ยังไม่ Deploy) 15. นอกจากนี้ยังคุยกันถึงวัน Deploy ด้วยเพื่อหลีกเลี่ยงวันที่อาจจะมี Traffic เข้ามาเยอะ เช่น ไม่ Deploy ช่วงสงกรานต์ 16. ถ้ามี Known Issues ที่ Product Owner ยอมรับได้ ทุกคนโอเคหมด ก็ Let’s Go เข้า Process เอาขึ้น Prod ละะ 17. ในขั้นตอนการ Deploy ตอนแรกใช้ GitLab CI แต่ทีมเจอ Tool ที่ดีกว่านั่นคือ Harness 18. ดีกว่ายังไง? ดีกว่าเพราะสามารถทำ Canary Deployment ได้ 19. แล้ว Canary Deployment คืออะไร มันคือการ Deploy App เราไปใช้ User แค่กลุ่มนึงใช้ก่อน แล้วพอเราได้ Feedback จาก User กลุ่มนั้นมาแล้วว่า App ทำงานได้ปกติ เราก็จะ Deploy App ไปให้ User ที่เหลือใช้ 20. Process ที่เล่ามาจะใช้เวลาประมาณ 8 วันทำการ นานที่ Regression Testing 21. ปัจจัยที่ทำให้เกิดการ Deploy Prod ทุก Sprint ได้คือการที่คิดเผื่อ Backward Compatibility, การมี Team Collaboration, การ Share Knowledge กันในทีม, การมี Test Coverage และ Regression Testing, มีการ Monitor กันและการทำ Canary Deployment 22. พี่จี๊บเล่าให้ฟังว่าปีนึงแล้วจะเกิดเหตุการณ์ No-Go ขึ้นปี 2-3 ครั้ง ซึ่งจะเกิดขึ้นเมื่อ Known Issue นั้นใหญ่มากจน Product Owner ไม่ปล่อยผ่าน ฟังแล้วแบบ Inspired มาก อยากเอาของขึ้น Production ทุก Sprint เลย 55555 --- # สรุป OC24: อะไรคือการทำ Software ต้องสนุก - URL: https://blog.ninprd.com/blog/summary-oc24-what-does-it-mean-for-software-development-to-be-joyful/ - Published: 2024-11-20 - Tags: conference, ODDSCONF24, OC24, summary - Summary: วันนี้มาแบบสรุป Topic ที่เนื้อหาสั้นแต่ได้ใจสุด ๆ ของพี่แชมป์แห่ง ODDS| จากงาน ODDS| CONF 2024 ครับ เรื่องมันมีอยู่ว่าปกติแล้วชาว ODDS| จะเชื่อว่าการทำ Software ต้องสนุกครับ พี่แชมป์บอกว่าคนข้างนอก ODDS| อาจจะไม่รู้ หรือไม่เข้าใจว่าทำไมการทำ Software ต้องสนุก พี่แชมป์เลยมาขยายเล่าให้ฟังครับ จะเป็นยังไงไปดูกันครับ วันนี้มาแบบสรุป Topic ที่เนื้อหาสั้นแต่ได้ใจสุด ๆ ของพี่แชมป์แห่ง ODDS| จากงาน ODDS| CONF 2024 ครับ เรื่องมันมีอยู่ว่าปกติแล้วชาว ODDS| จะเชื่อว่าการทำ Software ต้องสนุกครับ พี่แชมป์บอกว่าคนข้างนอก ODDS| อาจจะไม่รู้ หรือไม่เข้าใจว่าทำไมการทำ Software ต้องสนุก พี่แชมป์เลยมาขยายเล่าให้ฟังครับ รอบนี้นิลลองมาสรุปเป็น Bullet ดูครับ 1. สิ่งที่ชาว ODDS| เชื่อมาเสมอคือ “การทำ Software ต้องสนุก” 2. คำว่าสนุกของแต่ละคนไม่เหมือนกัน บางคนสนุกอาจจะหมายถึงได้ Challenge บางคนอาจจะหมายถึงการได้ชนะอะไรซักอย่าง หรือบางคนอาจจะรู้สึกเหมือนได้เปลี่ยนโลก 3. คำว่าเหนื่อยกับสนุกไม่เหมือนกัน บางครั้งเราทำงานหนักเราอาจจะรู้สึกเหนื่อย แต่ถ้ามันยังสนุกอยู่ = การทำ Software เรายังสนุกอยู่ 4. ทำไมการทำ Software ต้องสนุก เพราะถ้าไม่สนุก เราก็จะนั่งหมดใจในออฟฟิศรอให้เวลาผ่านไปเรื่อย ๆ 5. คนที่เป็น Lead ต้องสามารถซื้อ Trust ของทีมให้ได้ เพื่อให้ทีมกล้าพูดว่าตัวเองยังสนุกกับงานอยู่หรือเปล่า 6. ถ้าคนในทีมไม่สนุกแล้ว สำหรับ Lead แล้วก็ต้องหาวิธีแหละ ถ้ายังอยากให้คนในทีมสนุกอยู่ 7. ถ้างานมันสนุกแล้ว ชิ้นงานที่ออกมามันจะออกมาไม่แย่ อาจจะไม่ได้ดีเลิศ แต่ก็สามารถผ่านอุปสรรคที่เข้ามาได้ก่อน 8. พี่แชมป์ลองไปถามชาว ODDS| เรื่องของความสนุกของการทำ Software บางคนก็ตอบว่าการได้รับงานยาก ๆ และผ่านมันได้เป็นเรื่องสนุก บางคนก็ตอบว่าการได้ส่งของที่ดีให้ User เป็นเรื่องสนุก สรุปก็คือความสนุกของแต่ละคนไม่เหมือนกัน (เหมือนข้อ 2 นั่นเอง 5555) อย่าลืมสนุกกับการทำ Software นะครับ --- # สรุป Session จากงาน SCBX Unleashing CX: EP3 Figma Bangkok Meetup - URL: https://blog.ninprd.com/blog/summarize-figma-bangkok-meetup-2024/ - Published: 2024-11-01 - Tags: meetup-2024, meetup, scbx-next-tech, uxth, summary - Summary: สวัสดีครับ วันนี้นิลได้มีโอกาสไปงาน SCBX Unleashing CX: EP3 Figma Bangkok Meetup มาครับ ซึ่งในงานก็มี Session ในฟังถึง 3 เรื่องเลย หัวข้อแรกพี่แบงค์มาพูดถึงเทคนิคและวิธีการจัดระเบียบ Design System ในสำหรับงาน Scale เล็ก กลาง ใหญ่ครับ หัวข้อที่ 2 อ.วิชัยจากเพจ Qwerty is a DUCK วันนี้อาจารย์มาแบ่งปัน Tools เพื่อเพิ่ม Quality of Life ให้กับชาว Design ครับ และ Session สุดท้าย พี่แบงค์ อ.วิชัย และคุณเอกจากเพจ UncleAke มาเปิดวงคุยเกี่ยวกับ Figma UI3 ว่ามันต่างจาก UI เก่ายังไงและเขาสูญเสียอะไรไปบ้างเพื่ออะไรครับ แต่ละหัวข้อจะเป็นยังไง ไปดูกั๊น สวัสดีครับ วันนี้นิลได้มีโอกาสไปงาน SCBX Unleashing CX: EP3 Figma Bangkok Meetup มาครับ ซึ่งในงานก็มี Session ในฟังถึง 3 เรื่องเลย หัวข้อแรกพี่แบงค์มาพูดถึงเทคนิคและวิธีการจัดระเบียบ Design System ในสำหรับงาน Scale เล็ก กลาง ใหญ่ครับ หัวข้อที่ 2 อ.วิชัยจากเพจ Qwerty is a DUCK วันนี้อาจารย์มาแบ่งปัน Tools เพื่อเพิ่ม Quality of Life ให้กับชาว Design ครับ และ Session สุดท้าย พี่แบงค์ อ.วิชัย และคุณเอกจากเพจ UncleAke มาเปิดวงคุยเกี่ยวกับ Figma UI3 ว่ามันต่างจาก UI เก่ายังไงและเขาสูญเสียอะไรไปบ้างเพื่ออะไรครับ แต่ละหัวข้อจะเป็นยังไง ไปดูกั๊น ## Design System แบบพอดีคำ พี่แบงค์บอกว่าหลาย ๆ องค์กรชอบทำ Design System แบบคำใหญ่เกิน (ทำเยอะเกินที่ตัวเองใช้) ทำให้รสชาติไม่อร่อยครับ หลัก ๆ แล้วเราควรออกแบบ Design System ตาม Cognitive Load ของ Project ไป ซึ่งถ้างานขนาดเล็ก เราก็อาจจะไม่จำเป็นจะต้องมี Design System จริงจังก็ได้ แค่วางของในหน้าเดียวกันก่อนก็ได้ ถ้างานใหญ่หน่อยก็อาจจะต้องทำจริงจังขึ้นมา ซึ่งการจะวัดว่างานนั้นมีขนาดเท่าไหร่ พี่แบงค์บอกว่าเราจะใช้ปริมาณหน้ามาวัด ถ้าประมาณ 10 หน้าเราจะเรียกว่างานขนาดเล็ก ถ้าไม่เกิน 50 หน้า เราจะเรียกว่าขนาดกลาง และมากกว่า 100 หน้าก็จะเป็นขนาดใหญ่ครับ เราจะแบ่ง Design System ออกเป็น 3 แบบตามจำนวนหน้าครับ แบบแรกประมาณ 10 หน้า แบบที่ 2 คือประมาณ 50 หน้าและสุดท้ายคือประมาณ 100 หน้าครับ ซึ่งแต่ละแบบก็จะมีการทำ Desing System ที่ต่างกันออกไปครับ ซึ่งเดี๋ยวจะถูกพูดถึงในลำดับถัด ๆ ไป นอกเหนือจากเรื่องของการออกแบบตามขนาดแล้ว พี่แบงค์ยังให้ Component Guide เพิ่มเติมมาตามนี้ครับ 🌟 **วาง Component ใกล้กับที่ ๆ ใช้มันมากที่สุด** ถ้าใช้ Component นั้นแค่ 1 ที่ให้วาง Component นั้น ๆ ไว้ข้าง Frame ที่ออกแบบเลย ถ้าใช้ Component นั้นมากกว่า 1 ที่ให้วาง Component ใกล้ ๆ และครอบด้วย Frame เอาไว้ ถ้าใช้ Component นั้นมากกว่า 1 หน้าให้สร้าง Page: Component ใน Figma แล้วย้าย Component เราไปอยู่ในนั้น เราสามารถใส่ Emoji ❖ (ชื่อของมันคือ Black Diamond Minus White X) นำหน้า page ของ component เพื่อให้หา page นั้นง่าย ๆ ด้วยครับ ถ้าใช้ Component นั้นมากกว่า 1 Figma file: ให้แยกเป็น Figma component file และ import เข้ามา 🌟 **ใช้ชื่อให้สม่ำเสมอกันทั้ง Project**= หลัก ๆ แล้วการทำ naming ของนั้นมีด้วยกัน 3 ระดับ ระดับแรกสุดคือ Brand Color หรือใช้ชื่อของสี เช่น Slate 700, White 900 เป็นต้น ระดับที่สองคือ Semantic Color หรือการระบุหน้าที่ของสีนั้น ๆ เช่น Text-Primary, Background-Primary, Background เป็นต้น และระดับสุดท้ายคือ Component นั่นคือการเอาชื่อ Component มาระบุเข้าไป เช่น Card-Title, Card-Background เป็นต้น  ซึ่งหลัก ๆ จากข้อนี้คือให้เราเริ่มจากการค่อย ๆ กำหนด brand color ละไล่ไป semantic และค่อยไล่ไป component **อย่ารีบซับซ้อนโดยไม่จำเป็น** Tips อีกข้อที่พี่แบงค์บอกมาคือ อย่าใช้ Hex Code ในการใส่สีใน Frame เด็ดขาด เพราะทำให้เราต้องตามแก้เยอะ ให้กำหนดสีเป็น Local Styles หรือ Variables เอาไว้ พี่แบงค์ฝาก plugin Figma ไว้อีกตัวครับชื่อว่า [Design Lint](https://www.figma.com/community/plugin/801195587640428208/design-lint) เอาไว้ช่วย detect ว่าตรงไหน เรามีการ hard code พวก Hex Code ไว้ หรือว่ามีการใช้ของไม่ถูก system 🌟 **ให้แต่ละ group มี component หลัก 7 ตัว** ในข้อนี้พี่แบงค์บอกว่าเราสามารถใช้หลาย ๆ หลักการเพื่อเข้ามาช่วยเรื่องนี้ได้ เช่น Atomic Design เป็นต้น แต่มันก็อาจจะไม่ใช่วิธีที่ดีที่สุดสำหรับเราก็ได้ ลองนึกเวลาเรากอง component เอาไว้เยอะ ๆ แล้วเราต้องกลับมาหาของในกอง component นั้นอะ ยากอยู่นะ ดังนั้นวิธีที่พี่แบงค์ทำก็คือ ค่อย ๆ ปั้น component มาเรื่อย ๆ และเมื่อของที่ใกล้เคียงกันครบ 7 อันเมื่อไหร่ให้ group มันแล้วตั้งชื่อให้พวกมัน ทำแบบนี้ไปเรื่อย ๆ เราจะหาของง่ายมากขึ้นเพราะ group นึงเราจะมีของไม่เกิน 7 อันและจะเป็น 7 อันที่เรา group ของใกล้ ๆ กันไว้ อีก Tips นึงจากพี่แบงค์คือใน group นึงเนี่ย ควรวางของในแนวเดียวกัน (แนวตั้ง/แนวนอน) เพื่อให้สามารถ scan หาของจากบนลงล่างหรือซ้ายไปขวาทางใดทางหนึ่งเท่านั้น ## Awesome ~~Plugins~~ Tools ในหัวข้อนี้ อ.วิชัยบอกว่าตัวเองไม่ได้เป็น Designer เลยไม่ได้แนะนำ plugin Figma แหละ แต่มาแนะนำ tools ที่อาจจะทำให้คุณภาพชีวิตเหล่า Designer ดีขึ้นครับ จะมีตัวอะไรกันบ้าง ไปดูกันเลย **🌟 Design Sidekick** เพื่อน ๆ เคยเข้าไปหน้าเว็บไหนแล้วรู้สึกว่าถูกใจ อยากดูดสีมาใช้ไว ๆ ไหมครับ หรืออยากรู้ว่าเขาใช้้ Typography แบบไหน ถ้าเคยล่ะก็ ลองใช้่ Chrome Extension: Design Sidekick เป็นตัวช่วยดูสิครับ ตัว extension นี้จะสามารถทำให้เราเห็น palette หลักของเว็บไซต์ รวมถึงสามารถดู typography style ต่าง ๆ ของหน้าเว็บไซต์นี้ทั้งหมดครับ นอกเหนือจากนั้นแล้วยังสามารถดู SEO Checklist ของหน้านั้น ๆ ได้อีกด้วย ช่วยในเรื่องของ SEO ได้อีก และยังไม่หมด ๆๆ ยังสามารถใช้แทนการกด Inspect ด้วย ทำให้ชีวิต Designer ไม่จำเป็นตัองเข้าไป inspect panel แบบชาว Developer แหละ **🌟 SVG Globber** ตัวนี้เป็น Chrome Extension ที่ใช้งานในดึง SVG ที่อยู่ในหน้านั้น ๆ ออกมาและสามารถแก้ไข ดัดแปลง เปลี่ยนขนาด icon รวมทั้งสามารถ copy ออกไปและ export เป็น svg หรือเป็น React code ได้เลย นอกจากนี้ tool ตัวนี้ยังสามารถสร้าง icon ที่เราไปดูดมาเป็น collection ได้อีกด้วย บอกเลยว่าโหดสุด ๆ **🌟 Noise & Texture** Plugin ตัวนี้เอาไว้สร้าง Noise หรือใส่ Texture ลงใน frame ต่าง ๆ โดย texture จะมีทั้งแบบภาพนิ่งและ animation ด้วยแหละ และ ๆๆๆ เราสามารถ export frame นั้น ๆ ออกมาเป็น iframe, React code, หรือเป็นรูปแบบ json ได้อีกด้วย โคตรเมพ จบหัวข้อนี้พี่แบงค์มาเสริมว่า Figma ใช้ออกแบบ icon ได้ดี แต่อย่าใช้วาดรูป ## UI 3: What and Why? หลัก ๆ ที่ได้จาก Session นี้คือ pain point ของ Figma ใน UI เก่าคือความไม่สม่ำเสมอของข้อมูลใน toolbar ด้านบน ทำให้ Figma เลือกจะย้าย menu ที่เคยเข้าถึงง่ายจากด้านบน เช่น Layer intersection, Create a new component เข้าไปซ่อนอยู่ทางขวามือให้หมด เพื่อให้ไม่ว่าจะ click ที่ layer แบบไหน behavior ก็จะสม่ำเสมอทั้งหมด ซึ่งปัญหานี้เกิดจากสิ่งที่เรียกว่า Information Architecture แหละครับ เนื่องจากเขาอยากได้ความสม่ำเสมอ ก็จะต้องมีบางอย่างที่ต้องสูญเสียและแลกมาครับ กับอีกปัญหากวนใจของ toolbar ใน UI3 คือมันอยู่ด้านล่างครับ ซึ่งใน MacOS นั้น เวลาเราจะใช้ของใน toolbar เราจะต้องเอาเม้าส์ลากลงข้างล่าง ซึ่งสิ่งที่เกิดขึ้นคือเราจะไปโดน dock ขึ้นมาบังครับ ซึ่งคุณเอกกับพี่แบงค์ตั้งข้อสังเกตว่าที่เขาย้ายลงมาไว้ข้างล่าง เพราะน่าจะมาจาก FigJam ที่ไว้ toolbar ไว้ด้านล่างครับ ซึ่งข้อสรุปของทั้ง 2 คนคืออยากให้ย้าย toolbar ไปไว้ด้านบน (พี่แบงค์ฝากใครก็ได้ไปเปิดใน Figma Community หน่อยเดี๋ยวพี่แบงค์ไปตาม 555555) สุดท้ายคุณเอกกับพี่แบงค์ก็บอกว่าถ้าใครรู้สึกว่าข้อที่เขากล่าวมา วิธีแก้ปัญหาเบื้องต้นก็จะเป็นการกลับไปใช้ UI เก่าก่อน เพื่อลดความสับสนและรอทาง Figma พัฒนา UI ใหม่ที่ดีขึ้นออกมาครับ --- จบไปแล้วสำหรับ Blog สรุปงาน Figma Bangkok Meetup ครับ ขอบคุณงานดี ๆ จากพี่แบงค์ อ.เจมส์และก็คุณเอก รวมถึงทีมงานทุกคนเลยครับ สุดยอดมาก สุดท้ายถ้าใครอยากได้ slide สามารถไปโหลดได้ที่[โพสต์นี้ของเพจ Qwerty is a DUCK](https://www.facebook.com/share/p/BDvqtjyVfbL9NvFs/) เลยครับ นิลได้เจออ.เจมส์ละถ่ายรูปมาด้วย แค่นี้ก็คุ้มละครับ อิอิ วันนี้ลาไปก่อน สวัสดีครับ --- # สรุป Session - Why use JavaScript when CSS is possible? - URL: https://blog.ninprd.com/blog/summary-session-why-use-javascript-when-css-is-possible/ - Published: 2024-10-20 - Tags: software-engineer, conference, JavaScript-Bangkok, JSBKK2 - Summary: สวัสดีครับ วันนี้นิลได้ไปงาน JavaScript Bangkok 2.0.0 มาฮะ เลยลองสรุป Session - Why use JavaScript when CSS is possible? Session ของพี่จุ้นจาก MUI มาแหละ จะเป็นยังไง ลองไปดูกัน สวัสดีครับ วันนี้นิลได้ไปงาน [JavaScript Bangkok 2.0.0](https://javascriptbangkok.com/) มาฮะ เลยลองสรุป Session: Why use JavaScript when CSS is possible? Session ของพี่จุ้นจาก [MUI](https://mui.com/) มาแหละ ลองไปดูกัน พี่จุ้นมาพูดถึงการทำ Reusable Components ครับ ซึ่งการจะทำให้มันดีเนี่ย ต้องมีองค์ประกอบอะไรบ้างกับแต่ละ Stakeholder ซึ่งแต่ละ Stake มีเงื่อนไขแบบนี้ - End Users (ผู้ใช้งานหน้าเว็บ): UI ต้องน่าดึงดูดและโหลดไว - Business: Implement ไว และ Scale ได้ - Frontend Devs: ไม่ผูกมัดกับ Framework, ใช้ง่าย, Customize ง่าย, Developer Experience ดี แล้วจากเงื่อนไขเหล่านี้ CSS Method ไหนที่ตอบโจทย์ล่ะ พี่จุ้นมองว่า **CSS Modules + Inline Style** คือ Combo ที่ตอบโจทย์เหล่านี้มากที่สุด แล้วทำไมถึงเป็นคู่นี้ ต้องอธิบายถึง CSS Modules ก่อนว่า CSS Modules เป็นของที่ Built-in Support ในหลาย ๆ Framework เช่น Next, Nuxt, Solid ซึ่งการใช้งานนั้นก็เป็นเพียงแค่การ Import CSS File เป็น Module แล้วนำไปใช้งานใน File JS แบบนี้ครับ ```css title="button.module.css" .btn { background-color: red; padding: 12px 24px; } ``` ```js title="button.jsx" import * as styles from './button.module.css'; export default function Button() { return } ``` แต่การทำแบบนี้ก็จะมีปัญหาในเรื่องของการทำ Dynamic Styling ครับ เพราะว่าถ้าเราใช้ CSS Modules แล้ว เราต้องประกาศ CSS rules เป็น combination ของ style ปุ่ม ขนาดของปุ่ม และสีของปุ่ม แปลว่าถ้ามีปุ่ม 4 styles 3 ขนาด และ 4 สี ก็ต้องสร้าง CSS rules ตั้ง 48 rules แหนะ รวมทั้ง CSS นั้น ยังไม่มีความสามารถในการทำ Tree-Shaking ด้วย ถ้าเราประกาศ CSS rules เยอะ แต่ไม่มีการใช้ = หนักเว็บเล่น ๆ เว็บเราก็จะโหลดช้าอีก ดังนั้นพี่จุ้นเลยเสนอการเอา Inline Style มาใช้ร่วมกับ CSS Modules โดยมีขั้นตอนตามนี้ 1. Template CSS: สร้าง CSS Modules ที่มีแต่ CSS variables ผูกกับ Properties ต่าง ๆ ไว้ ```css title="button.module.css" .btn { padding: var(--padding); height: var(--height); } ``` 2. สร้าง Function ที่ return CSS variables ตาม style ที่กำหนด ```js title="button-styles.js" export function buttonSmall() { return { "--padding": "4px", "--height": "32px" }; } export function buttonNormal() { return { "--padding": "12px 16px", "--height": "40px" } } ``` 3. inject ใส่ Inline Style ```js title="button.js" import * as styles from './button.module.css'; export default function Button({style}) { return ( ); } ``` 4. Import ไปใช้งานแค่นี้ก็เสร็จละ ```js title="page/home.js" import { ButtonSmall } from "../components/button/button-styles.js"; import Button from "../components/button/button.js" export default function HomePage() { return (Image Taken By me
พอได้เข้าทีม นิลก็ได้เจอกับ Leo ซึ่งเป็นหนึ่งใน Table Leads ของทีม Documentation ครับ Leo ก็ได้พานิลเริ่มตั้งแต่สร้าง Account ที่หน้าเว็บ WordPress.org ซึ่งนั่นเป็นปัญหาแรกที่เจอในงานครับ หน้าเว็บส่วน Login โหลดโคตรช้า ตอนแรกนิลก็คิดว่าที่ Internet แต่ว่าพอเข้าหน้าเว็บอื่น ๆ มันก็เข้าได้ปกติ แต่หน้า Login ของ WordPress นั้นช้ามาก ทำให้เสียเวลาไปเกือบ ๆ ครึ่งชั่วโมงเลย ซึ่งพอสร้าง Account และ Login สำเร็จ Leo ก็ได้สอนวิธีที่จะ Contribute ให้กับทีม Doc ของ WordPress ครับ ซึ่งนิลก็ได้เรียนรู้วิธีและได้เริ่มสร้างประโยชน์แก่ WordPress เป็นครั้งแรก 5555 ยังไม่ทันไรก็ถึงเวลาข้าวเที่ยงแล้ว ด้วยความที่นิลมาแบบ Solo เลย นิลไม่รู้จักใครเลย Leo เลยพานิลไปนั่งด้วย บอกเลยว่าอาหารในงานโคตรอร่อย โซ้ยหมดด้วยความรวดเร็วและลืมถ่ายรูปมา 55555 ซึ่งในโต๊ะกินข้าวนั้น นิลก็เจอ Akira และ Milana ซึ่งเป็น Table Leads ของทีม Doc อีก 2 คน นิลก็ได้คุยกับ Akira เรื่องประเทศไทยเพราะปีที่แล้ว Akira มา WordCamp Asia 2023 ที่จัดที่ประเทศไทย เขาก็เล่าเกี่ยวกับการผจญภัยในกรุงเทพของเขา และเราก็เผาประเทศให้เขาฟัง 555555 อย่างมันส์ ส่วน Milana นั้นก็คอยแจกจ่ายขนมที่ตัวเองซื้อมาให้กับคนในโต๊ะกิน พอคนในโต๊ะไม่กินด้วย เขาก็เอาไปแจกโต๊ะอื่น ๆ ต่อ 555555 ซื้อมาเยอะเกิ๊นนน หลังจากที่อิ่มจนพุงกางนิลก็ได้ขอตัวออกมาเดินเล่นซักพักและกลับไป Join งานของทีม Doc ต่อซึ่งในตอนบ่ายนิลก็ได้เจอ Michael ซึ่งเป็นคนที่เพิ่งมาจอยโต๊ะนี้ตอนบ่ายมานั่งข้าง ๆ Michael เจอปัญหาเรื่อง Internet แต่อันนี้เป็นที่ Internet จริง ๆ Michael เลยชวนนิลคุยเรื่องว่าทำไมถึงมา WordCamp Asia รอบนี้ ทำไมถึงอยากมาจอยทีม Doc อะไรแบบนี้ นิลก็ตอบเหตุผลของนิลไป หลังจากนิลเล่าเหตุผลของตัวเอง นิลก็ได้ถามกลับไปว่าทำไมเขาถึงสนใจทีม Doc ซึ่งเหตุผลของเขาก็คือเขาอยากมาเรียนรู้การทำ Doc เพราะหลังจากจบงาน WordCamp เขาต้องกลับไปช่วยทำ Doc ให้กับบริษัท ความสนุกเริ่มต้นขึ้นเพราะว่าในโต๊ะนิลมีคนที่มาจาก GoDaddy และ Hostinger มาอยู่ซึ่งเขาเป็นคู่แข่งทางธุรกิจกัน ในระหว่างนั่งทำ Doc ก็ได้มีการเล่นมุขแบบ แซ่บ ๆ จิก ๆ กัด ๆ กันหลาย ๆ ครั้ง 55555 แต่พอตอนเล่นกันไปซักพัก Michael ก็พูดขึ้นมาและเป็นคำพูดที่นิลชอบมาก เขาพูดว่า > I really like this kind of event. Even though we are business rivals, during these 3 days of event, we’re friends. > > Michael ซึ่งทุกคนก็เห็นด้วยกับคำพูดนี้มาก ในวันนั้นนิลถึงกับรีบเข้าแอพโน๊ตไปจดคำพูดนี้เลยนะ 5555555 หลังจากนิลเสร็จงานส่วนแรกนิลก็ได้ไปคุยเพิ่มกับ Leo ถึงการทำงานของทีม Doc ของ WordPress นิลถึงได้รู้ว่าจริง ๆ แล้วทีม Doc ของ WordPress ไม่ได้เป็นทีมงาน WordPress แบบ Full Time แต่เป็นทีมงานจากบริษัทต่าง ๆ มาจอยกัน (ซึ่ง Leo ก็มาจาก Hostinger) และช่วย ๆ กันทำ Doc แหละ ซึ่งทีมงานก็มีประมาณ 20 คนและมีเวลากันขั้นต่ำคนละ 2 ชั่วโมงต่ออาทิตย์มาทำกันและด้วยความที่ WordPress มีการปล่อย Minor Release ปีละ 3 ครั้งและ Feature ที่มีการเปลี่ยนแปลงเยอะมาก ทำให้เขาทำไม่ทันกัน บางทีก็จะต้องเพิ่มในส่วน Feature ที่มาใหม่ก่อน ของเก่า ๆ ถึงไม่ได้ถูก Update เลย ซึ่งถ้าใครอยากเข้าไปช่วยเนี่ยก็สามารถเข้าไปตามในนี้ได้เลยครับ คิดว่าเป็น Starting Point ที่ดีในการเริ่มช่วยทีม Doc ครับ ใน Session นี้นิลได้ช่วย Proof Screenshots และ Content ของตัว Documentation เรื่อง Query Loop กับ Tag Cloud ครับ โดยหน้าเหล่านี้ถูกแก้ไขล่าสุดเมื่อมีนาปีที่แล้ว 😱😱 ซึ่งแค่ตรวจ 2 หน้าและ Capture รูปที่เป็นของใหม่ทั้งหมดก็หมดเวลาทำมาหากินอย่างไม่น่าเชื่อแล้วครับ จริง ๆ มีอีก Session ที่เขาจัดขึ้นใน Contributor Day ครับแต่นิลไม่ได้เข้าร่วมด้วยเพราะแค่ทำงาน Team Doc ก็หมดเวลาแล้ว ซึ่ง Session นั้นมีชื่อว่า “Human Library” ครับ Session นี้เป็น Session ที่จะมีคนที่ทำหน้าที่เป็น Librarian ที่สามารถตอบคำถามของที่เข้ามาถามได้ ตัวนิลคิดว่าเป็นไอเดียที่สุดยอดมากเลย ถ้านิลทำอะไรเร็วกว่านี้อีกนิดนึงนะ นิลอาจจะได้ไปลอง Session นี้เพิ่มเติมก็ได้ แต่ไม่ทันซะก่อน งานทับตัว 555555 จบวันไปนิลก็มีคุยกับ Leo เพิ่มขอ Connect เขาไว้ใน LinkedIn ด้วย Leo บอกว่าพรุ่งนี้เขาจะมาเป็นตากล้องให้กับงานนี้ เขาบอกว่าจริง ๆ ใครที่มีกล้องก็สามารถมาช่วยเป็น Staff ได้เลย แอบเสียดายที่ไม่ได้เอากล้องมาเลย 5555 และนิลก็ขอไป Contact Akira ด้วย ได้นามบัตรเขามาด้วยแหละ ส่วนนิลทัก Milana ไม่ทัน Milana ขยับตัวออกไปไวมากและก็นิลก็ไม่ได้คุยกับเขาเยอะด้วย เลยอดคุย อดขอ Contact เลย สิ่งที่นิลได้จาก Contributor Day คือนิลได้รู้จักคนเพิ่มเยอะมาก ซึ่งก็คือคนที่มาร่วม Contribute ในทีม Documentation แหละ ซึ่งมาจากหลาย ๆ บริษัทที่นิลเคยเห็นผ่านตา ไม่ว่าจะเป็น GoDaddy, Hostinger, Yoast, และ WPML รวมถึงได้รู้ว่า Process ในการจะ Contribute ให้กับ WordPress จริง ๆ แล้วไม่ยากเลย แค่เข้ามา Join ทางทีมก็พร้อมต้อนรับ นอกจากนี้ยังได้เข้าใจ Process การทำงานของทีมทีมนึงใน WordPress Team และเข้าใจว่าทำไม Doc มันถึงไม่ค่อยอัพเดท (ไม่ได้รู้สึกว่าโลกสวยนะ แต่เข้าใจเขามากขึ้นละกัน) – จบ WordCamp Day 1 – --- ## Day 2: Conference Day 1 วันนี้เป็นวัน Conference วันแรก ด้วยความที่นิลได้บัตรเข้างานตั้งแต่เมื่อวานแล้ว ทำให้วันนี้นิลไม่ต้องไปต่อคิวลงทะเบียนแบบคนอื่นเขาด้วย นิลเลยดิ่งไปซิบกาแฟในยามเช้าที่ร้าน Louisa Coffee ในตึกจัดงานครับ ในนั้นนิลก็นั่งทำงานอย่างอื่นไปเรื่อย ๆ และพบกับแก๊งค์ชาวไทยในร้าน ซึ่งหนึ่งในนั้นคือพี่จาบอนซึ่งเคยเป็น Consult ให้กับบริษัทนิลใน Project นึง นิลเลยได้คุยกับพี่จาบอนและพี่เขาเลยชวนนิลไปเข้ากลุ่ม Facebook ของชาวไทยและไปกินข้าวกับแก๊งค์ชาวไทยหลังจากจบงานวันนี้ นิลก็ตอบตกลงไปแบบไม่ได้คิดอะไรเพราะตัวนิลก็อยากมาหา Connection อยู่แล้วด้วย อันนี้ก็อาจจะเป็นโอกาสอันดีที่จะได้รู้จักคนเพิ่มแหละ หลังจากแยกกับชาวไทยที่ร้านกาแฟมา นิลก็ได้เข้า Hall เพื่อฟัง Opening Keynotes ตามตารางเลยครับ โดยนิลสรุปมาได้เป็นประเด็นประมาณนี้ครับ - ตอนนี้ WordPress เป็น 43% ของ Website ทั่วโลก - ยอดการใช้งาน WordPress เพิ่มทุกปี - คน Supply เพิ่ม แต่ Demand ไม่โตตาม แปลว่าตอนนี้ Supply (WordPress Developer) ในท้องตลาดกำลังแย่งงานกันอยู่ - WordPress เมื่อก่อนเคยโดนตราหน้าว่าเป็น Monolith CMS แต่ก็สามารถสร้าง S-Curve และเติบโตมาได้จนถึงทุกวันนี้ และตอนนี้ WordPress กำลังเปลี่ยนตัวเป็น Composable CMS และกำลังหา S-Curve ใหม่ - ตอนนี้ตลาดยังไม่รู้ Capabilities ทั้งหมดของ WordPress ในฐานะของ WordPress Developer ควรจะทำให้ท้องตลาดเข้าใจและอยากใช้ Solution ที่เป็น WordPress มากขึ้น - Guideline ตัวอื่น ๆ ในท้องตลาดดูง่ายกว่า Doc ของ WordPress - อยากทำ Integration Directory สำหรับ WordPress เพื่อให้สามารถเริ่ม Project ได้ง่าย ๆ เหมือนพวก Frontend Framework สมัยใหม่ - ใน Service ยุคใหม่ ๆ อาจจะต้องเอา WordPress ไป Plug กับ Service อื่น ๆ เพื่อทำให้ WordPress กลับมาเป็นผู้นำตลาดอีกครั้ง  พอจบ Session Keynote ทุกคนก็ปรบมือกันลั่น Hall เลย ส่วนตัวนิลก็แบบ อะไรวะเนี่ย ข้อมูลเป็นล้าน 5555555 พอฟัง Keynotes เสร็จนิลก็ได้เข้าไปฟัง Session ต่าง ๆ (ส่วนสรุป Session ต่าง ๆ นิลขอเอาไว้เขียนแยกเป็นอีก Blog นะไม่งั้นเยอะเกิน) พอถึงพักเที่ยงนิลก็ได้เจอกับพี่ไทแห่ง BKK.JS หลังจากนั้นนิลก็ทำเสมือนเล่นเกมและเปิด Bot เลย นิลก็เป็น Bot เดินตามพี่ไทเลยเพราะนิลไม่รู้เลยว่าถ้ามางาน Networking แบบนี้ นิลจะต้องทำตัวยังไง พี่ไทก็พานิลไปนู่นนี่นั่น พาไปกินข้าว เปิดบทสนทนาในโต๊ะกินข้าว จนสุดท้ายนิลก็ผ่านมื้อเที่ยงที่ต้องคุยกับคนแปลกหน้าหลายคนได้ (p.s. ข้าวเที่ยงวันนี้ไม่ค่อยอร่อยอะ ฮืออออ) นอกจากนั้นพี่ไทยังพานิลไปเจอกับชุนซึ่งชุนเป็นคนที่ร่วมทำ Commu ฝั่ง JavaScript กับพี่ไทมา พี่ไทบอกว่าชุนเป็น Indie Hacker และกำลังทำโปรเจค [https://learnalgorithm.com/](https://learnalgorithm.com/) นิลก็ตกใจมากแบบ เชี่ยย นี่แม่งบุคคลที่แบบโคตรตึง โคตรโหด โคตรอันตราย ก็ได้ทำความรู้จักกับชุนที่ตรงนั้นครับ แต่ก็ได้คุยแปปเดียวเพราะว่า Session บ่ายกำลังจะเริ่มแล้ว หลังจากนั้นนิลก็เข้า Session บ่ายปกติไป ซักพักนึงพี่ไทก็เดินมาบอกว่าเดี๋ยวบ่าย 3 คนไทยมีรวมตัวกันถ่ายรูปรวม ตอนแรกนิลก็สองจิตสองใจเพราะว่าในตอนแรกนิลก็ไม่อยากพลาดซัก Session เลย แต่ยังไงก็ตาม นิลก็เลือกที่จะมารวมตัวกับคนไทยคนอื่น ๆ เพราะอยากรู้ว่าคนไทยมากันเยอะไหม พอรวมตัวกันครบ ก็ได้รู้ว่าคนไทยมากันเยอะมาก เกือบ 30 คนแหนะ แต่แค่ทีมงาน Seed Webs ก็ล่อไป 10 คนแล้ว ยังมีทีมงานจากมหาวิทยาลัยเชียงใหม่อีก รู้สึกว่าเปิดโลกมากเลย ได้คุยกับพี่เม่นกับทีมงาน Seed Webs ด้วย ทุกคน Friendly มากเลยแหละ ปลาบปลื้มใจมาก ตอนแรกคิดว่าจะ Connect กับคนอื่น ๆ ยากกว่านี้ Image of Nin and P'Men by Junior from Seed Webs Team
Image of Thai people at WordCamp Asia 2024, taken by WordPress Staff
พอถ่ายรูปรวมชาวไทยที่ WordCamp Asia กับเม้ามอยเสร็จ นิลก็จะกลับไปฟัง Session อื่น ๆ พี่ไทยก็มาบอกนิลว่า Session พวกนี้มีปล่อยฟรีบน YouTube ถ้ามาแค่ฟังอย่างเดียว โดยไม่ได้มีคำถามไปถามคนพูดหรืออยากไป Connect คนพูดแล้ว ก็เหมือนเสียค่าบัตรฟรี เอาเวลาไปคุยกับคนในงานหรือ Sponsor Booth ที่ตั้งอยู่ในงานดีกว่า นิลก็มานั่งคิดไปคิดมาละเห็นด้วย แต่ด้วยความที่นิลเข้าหาคนไม่เก่ง นิลจึงเลือกที่จะไปลองคุยกับ Booth Sponsor และ Booth แรกที่นิลเข้าไปคุยคือ Booth ของ Elementor ซึ่งเป็น Page Builder Plugin ที่นิลใช้กับ Project ล่าสุด นิลได้คุยกับ Rami ซึ่งเป็นหนึ่งในทีมพัฒนา Elementor เขาก็ให้คำแนะนำเกี่ยวกับการใช้มาและเขาก็พูดปัญหาที่ตอนนี้ Elementor กำลังเจอ นั่นคือการ Backward Compatability ของต่าง ๆ ไม่ว่าจะเป็น Icon Pack หรือ php version เพื่อ Support ผู้ใช้งาน 16 ล้านคนทั่วโลก (เยอะมากกกก) นอกจากนี้นิลยังถามเรื่องการพัฒนา Feature ว่าเขามี Strategy ยังไง Rami เลยตอบนิลว่า 1 ใน Strategy คือดูใน Github Issues ว่ามีคน Feature Request อะไรและมีคนเข้าไป Like หรือ +1 กันเยอะไหม ซึ่งก็แอบตกใจเหมือนกันว่าทำไมถึงไม่ได้เป็นการ Drive Feature จากทีมมาด้วย แต่นิลก็ไม่ได้ถามเหตุผลเพิ่มเติมไป จบ Booth นี้นิลก็ได้หมวก Elementor มาใบนึง 555555 จริง ๆ หลังจากจบ Booth Elementor นิลมีแวะ Booth ของ Woo, Google, ละก็ GoDaddy แต่ก็ไม่ได้มีอะไรเยอะมากจนนิลจะเขียนได้ 555555 หลังจากจบงานนิลก็มีไปรวมกับพี่ไทอีกครั้งเพื่อรอกินข้าวชาวไทย แต่ว่าพอรู้ว่าจะไปรวมตัวแบบคนเยอะนิลแอบกลัวนิดนึง (ไม่ค่อย Comfort กับการอยู่ในวงสนทนาที่มีคนเยอะ รู้สึกทำตัวไม่ถูก) พี่ไทก็มาถามนิลว่าสนใจไปกินแยกอีกกลุ่มนึงไหม นิลก็ตอบตกลงไปและไปกับพี่ไทกับชุนไปเดินตลาดกลางคืนแห่งหนึ่ง เดินไปกินไป เงินอย่างไหลเลย ละนิลก็เดินไปเจอชานม 50 Lan ที่อยู่ใน List ชานม นิลก็รีบโดดไปสั่งไปกินทันที แต่กลับเศร้ามากเพราะสั่งชานมไข่มุก Size M แต่ได้ชานม Size L ที่ไม่มีไข่มุก 🥺 พอเดินกันเสร็จก็มีไปเดินคุยกันในสวน ZhongShan ต่อฮะ รู้สึกวงสนทนาใกล้ชิดดีครับ เสร็จแล้วก็แยกย้ายกันไปพักผ่อน – จบ WordCamp Day 2 – --- ## Day 3: Conference Day 2 วันนี้นิลตื่นสายย แต่ตื่นก็ 9 โมงแล้วไอบ้าเอ้ย สุดท้ายนิลก็มาถึงงานประมาณ 9 โมงครึ่งและพุ่งตรงไปที่ Session ที่นิลสนใจ นั่นคือ “Fighting the JavaScript Fatigue: Picking the right framework for Headless WordPress” ซึ่งเป็น Session ของภูมิ ซึ่งเป็นชาวไทยที่นิลติดตามเพจเขามาซักพักใหญ่ละ พอนิลไปถึงที่ห้องจัด Session นิลก็ได้เจอกับภูมิที่ยืนอยู่หน้าห้อง นิลก็เข้าไปคุยกับภูมิ ซึ่งภูมิ Friendly มากกก พอคุยกันซักพักก็ถึง Session ของภูมิ ภูมิขึ้นไปพูด นิลไปนั่งฟัง ฟังแล้วแบบ โอ้โหหห โคตรเก่ง พูดโคตรดี ภาษาอังกฤษอย่าง Flow เลย พอจบ Session ภูมิ นิลก็ได้คุยกับคณะอาจารย์จากมหาวิทยาลัยเชียงใหม่ เขาเหมือนสนใจเกี่ยวกับการ Training/Course Online ของ Skooldio เลยมาขอ Contact นิลไว้ แอบทำตัวไม่ถูกนิดนึง 55555 พอจบ Session ของภูมิก็ได้ไปฟัง Session ของพี่เพิร์ธต่อ เป็นหัวข้อเรื่อง “Multiply your income streams with WordPress development skills” ซึ่งบอกเลยว่าดีมากก เป็น 10 นาทีที่มีประโยชน์กับชีวิตมากเลย ซึ่งพอจบ Session พี่เพิร์ธนิลก็ออกไปเดินเล่น Sponsor Booth ต่อ พอเดิน Sponsor Booth ตอนเช้าเสร็จก็ถึงเวลาข้าวเที่ยงแล้ว วันนี้นิลกับพี่ไทยแยกตัวกันไป ทำให้นิลต้องฝึกการเข้าสังคมเอง 55555 แต่นิลก็กลับไปนั่งโต๊ะเดียวกับเมื่อวานและเจอคนเดิมที่นั่งอยู่ รอบนี้นิลก็ได้คุยกับเขามากขึ้น ซึ่งด้วยเขาเป็นคนไต้หวัน ตอนแรกก็ได้คุยเกี่ยวกับการทำ Personal Blog, งานประจำของแต่ละคน แต่พอซักพักนึงนิลก็คุยเรื่องที่พัก เขาก็คุยเรื่องเกี่ยวกับไต้หวันมากขึ้น เขาแชร์ว่าตอนนี้ค่าที่พักในไต้หวันสูงขึ้นมาก ตัวเขาเลยไปอยู่แถวชานเมืองและเดินทางเข้ามาเพราะค่าเดินทางนั้นรวม ๆ แล้วถูกกว่าค่าที่พัก นิลก็ช็อค ๆ ไปแปปนึง หลังจากนั้นเขาก็แนะนำนิลไปกินร้าน Din Tai Fung เขาบอกนิลว่ามันเป็น Foreigner’s Must Eat เลย (แต่สรุปแล้วนิลไม่ได้กิน คนแม่งเยอะไม่ไหวว) พอแยกย้ายหลังข้าวเที่ยง นิลก็เดินสาย Sponsor Booth ต่อ นิลไปเดิน Booth ของ Hostinger ซึ่งมี Leo ที่เป็น Table Leads ที่ทีม Doc อยู่ นิลก็เข้าไปคุยกับคนใน Booth และคุยเรื่อง Hosting ของ Hostinger ด้วยหลัก ๆ คือนิลอยากรู้ว่า Hosting ของ Hostinger มันดีกว่าเจ้าอื่นยังไง โดยสรุปแล้วคือนิลมองว่าตัว Infra ก็อาจจะคือ ๆ กับเจ้าอื่นแต่ Hostinger นั้นมีการทำ UI ของ Backoffice ที่ใช้ Manage การ Hosting สวยมากและมีการพัฒนา AI มาช่วยเขียน Blog ซึ่งแค่ใส่หัวข้อมันก็จะ Generate เนื้อหามาให้ ฟังละแบบ โคตรโกงเลย 55555 ตัวนิลซึ่งกำลังมองหา Hosting WordPress อยู่ก็ได้ถามซอกแซกเขาไปเรื่อยจนเขาให้ Hosting Free มาปีนึง ให้เมล็ดกาแฟมาถุงนึง ให้ผ้าเช็ดจอคอมแล้วก็ให้ถุงผ้ามาอีก พูดเลยว่าให้มาอย่างคุ้มเลยครับ นิลก็น้อมรับด้วยความยินดีมาทุกอย่างเลย อิอิ และแล้วก็มาถึง Session Q&A with Matt, Co-Founder ของ WordPress ซึ่งนิลรู้สึกชอบ Session อะไรแบบนี้มาก จริงใจสุด ก็มีคนมีคำถามจะถาม Matt เยอะมาก และ Matt ก็ตอบอย่างดีทุกอันด้วย ตัวนิลก็เสียดายนิดนึงเพราะจริง ๆ ก็มีคำถามที่อยากถามเหมือนกัน แต่คนถามเยอะเกิน แย่งไม่ไหว TT นอกจากนี้ Matt ยังประกาศอีกว่าจะมีงาน State of The Word ซึ่งจะเป็นงานที่เกี่ยวกับการอัพเดท WordPress ที่กรุงโตเกียว ประเทศญี่ปุ่นแหละ 🤩 พอ Matt พูดเสร็จก็มีประมวลภาพจบ WordCamp Asia 2024 และก็ประกาศว่าปีหน้า [WordCamp Asia 2025](https://asia.wordcamp.org/2025/) จะจัดที่ประเทศฟิลิปปินส์ 🥳🎉 นอกจากนี้ก่อนจบงานเขาก็ประกาศว่าจะมี After Party ที่ MAJI Square ด้วยซึ่ง Party จะเริ่มตอนทุ่มนึงครับ โดยมีอาหารฟรี เครื่องดื่มฟรี (หูผึ่งตรงนี้ 5555) Image of Matt on stage, taken by me
Image of me by Chun Rapeepat
หลังจากจบ Session ก็จะเหลือเวลาประมาณ 2 ชั่วโมงก่อนจะเริ่ม Party ครับ นิลก็เลยไปเดินเล่นกับชุน เดินจากงาน WordCamp ไปที่ National Theatre and Concert Hall (ระยะทาง 4.6 กิโล) ระยะทางแบบบ้าบอมาก ระหว่างทางก็ได้คุยสัพเพเหระไปเรื่อย เดินไปประมาณชั่วโมงกว่าก็ถึงที่หมาย นิลก็แยกกับชุนและเดินไปที่พักนิลต่อ (อีก 2 โล) เดินให้ขาพังไปเลย 5555555 พอถึงที่พักนิลก็ทุ่มกว่าแล้ว นิลเลยเข้าไปอ่านข้อความชาวไทยที่ถึงที่งานแล้วว่าบรรยากาศงานเป็นไงบ้าง ก็เห็น Feedback เหมือนงานค่อนข้างเสียงดัง + คนเยอะ + เน้นแอลกอฮอล์ซึ่งตัวนิลไม่ค่อยชอบปัจจัยเหล่านี้ ตอนแรกนิลจะไม่ไปละ แต่พี่ไททักมาบอกว่ามาก่อนละถ้า Social Energy หมดค่อยไปเดินสวนเล่นกัน นิลเลยไป (โดนล่อด้วยการเดินสวน 555555) พอไปถึงที่งานนิลก็ได้เจอกับพี่ไท ชุน และภูมิอีกครั้งนึง โดยพอนั่งในงานไปซักพักพี่ไทก็ชวนชุน ภูมิ นิลไปเดินสวนใกล้ ๆ งาน ก็ได้เดินไปคุยไปกินไป เป็น Session การคุยที่ยาวนานมากถึง 4 ชั่วโมงและเต็มไปด้วยการเรียนภาษาที่สุดมันส์ โคตรโหด โคตรอันตราย ไม่เกิน 3 ชั่วโมงพวกเราก็สามารถพูดภาษาจีนได้อย่างไม่น่าเชื่อ 555555 ประมาณตี 1 ครึ่งก็เดินไปส่งชุนที่โรงแรมและก็นั่ง Uber กลับโรงแรม จบวันเดินไป 20 โล บ้าพลังขั้นสุดยอด 55555 – จบ WordCamp Day 3 – --- โดยรวมนิลมองว่าการมาจอย WordCamp Asia ของนิลรอบนี้เป็นการเปิดโลกนิลมาก ตั้งแต่การมาต่างประเทศคนเดียวครั้งแรก การเข้าร่วม Contributor Day การไป Connect กับชาวไทย ชาวต่างชาติในงาน การเดินคุยกับ Sponsor หลาย ๆ อย่างมันดูใหม่สำหรับ Software Engineer คนนึงที่นั่งทำงานหงก ๆ ในออฟฟิศแล้วไม่ได้ออกไปงานไหนเลยแหละ ถ้าใครรู้สึกว่าอยากออกมาหาประสบการณ์ใหม่ ๆ การมางาน Conference อะไรแบบนี้ก็น่าสนใจดีนะครับ แต่อาจจะต้องมากับเพื่อนนิดนึง กันเหงา กันเคว้ง โดยรวมนิลว่ามันสนุกดีนะครับ นอกจากนี้ใครอยากดูไลฟ์ย้อนหลังของงานก็สามารถเข้าไปดูได้ที่ [Youtube: WordPress](https://www.youtube.com/@WordPress/streams) ได้เลยครับ มี Conference ย้อนหลังทุก Session เลยครับ หวังว่าการแชร์ประสบการณ์ครั้งนี้จะเป็นประโยชน์กับคนอ่านนะครับ ให้สมกับเป็น Content ราคาแพงที่ต่างแดนนะครับ ถ้าชอบก็สามารถมาพิมพ์ Comment ทิ้งไว้ที่เพจได้นะะ [เพจ:ตากล้องที่เขียนโค้ดได้นิดหน่อย](https://www.facebook.com/profile.php?id=61555700437640) สำหรับวันนี้ลาไปก่อน สวัสดีครับ ขอให้สนุกกับการไป Conference เย่ะ ๆ – นิล – --- # สรุป Session - The Future of Design Teams จากงาน UXTH2024 - URL: https://blog.ninprd.com/blog/uxth2024-summary-future-of-design-trends/ - Published: 2024-03-22 - Tags: conference, Y2024, uxth, ai, ux - Summary: สรุป Session: The Future of Design Teams ของพี่นน Senior Designer ที่ ทีม Beacon Interface ของ KBTG ในงาน UX Conference 2024 ## The Age of AI พอเราเข้าสู่ยุคคอมพิวเตอร์ ทุกสิ่งถูกแปลงข้อมูลเป็น Data และถูกนำไปให้ AI ในยุคปัจจุบันเรียนรู้ ซึ่งในตอนนี้ AI เปรียบเสมือนเด็กคนนึงที่กำลังเติบโตเป็นผู้ใหญ่ พี่นนพูดถึง AI หลัก ๆ 2 ตัวคือ Predictive AI ซึ่งจะเป็น AI ที่ใช้ในการ Predict สิ่งต่าง ๆ แต่ไม่มี UI หรือ Feedback กลับมาหาผู้ใช้ กับ Generative AI ที่เราใช้กันทุกวันนี้ เช่น ChatGPT ซึ่งมีเบื้องหลังของมันคือ Large Language Model (LLM) เรียกได้ว่าพวก LLM นี่เป็นผู้เชี่ยวชาญด้านภาษา ในยุคนี้ บริษัทยักษ์ใหญ่ต่าง ๆ พัฒนา AI ของตัวเองโดยแข่งกันด้วยแง่มุมของ Speed, Capability, Cost, Easy to use, Specialized และ Integrated ## Types of model - ข้อความ -> ข้อความ: LLMs เช่น ChatGPT, Gemini - ข้อความ -> ภาพ: เช่น Midjourney, Stable Diffusion, Bing - ภาพ -> ข้อความ: เช่น Midjourney - ข้อความ -> วิดีโอ: เช่น Sora โดย OpenAI - Multimodal Model -> การใช้หลายโมเดล AI ร่วมกัน เรียกว่า “CustomGPT” ## Mindset towards AI การมี Positive Mindset ต่อ AI เป็นสิ่งสำคัญ โดยควรมองว่า AI ช่วยให้เรามีประสิทธิผลมากขึ้น แทนที่จะมีทัศนคติที่ปฏิเสธหรือตื่นตระหนกว่า AI จะแย่งงานของเรา ## UX Use cases - การใช้ Perplexity แทนการ Search จาก Search Engine เพราะตัว AI มันเร็วและมีการบอกแหล่งที่มาข้อมูลเพื่อช่วยเพิ่มความน่าเชื่อถือ และแสดง Related Questions ที่ให้เราสามารถถาม Follow-Up Question ที่เกี่ยวข้องกับคำถามแรกที่เราถามไปได้ - อีกตัวอย่างคือแอป Sleep Cycle เมื่อจ่ายตังค์จะมี SleepGPT ซึ่งเราสามารถถามคำถามเกี่ยวกับการนอนของเราและตัว AI จะ Summarize และ ตอบให้ สิ่งนี้จะมีประโยชน์เมื่อเวลาแอปออกแบบมาแล้ว UI ใช้งานยาก กดหาข้อมูลยาก ข้อมูลเยอะและทำให้ดูยาก etc. ซึ่งในมุมพี่นนถือเป็นการ Value Added ให้กับแอป ## Design Guideline Google มีออก Guideline เพื่อช่วย Guide การพัฒนา Feature AI ภายใน Digital Product/Platform ของเรา ชื่อ [People + AI Guidebook](https://pair.withgoogle.com/guidebook/) อยู่ สามารถไปอ่านกันได้ ## ตัวอย่างการใช้งานจากทีม Beacon Interface - ตอนนี้ Communication Designer เริ่มมีการใช้ Midjourney เพราะลดปัญหาค่า License ได้ดี - ตอนนี้ User Researcher มีการใช้ ChatGPT + Gemini มาช่วยสรุปผล Research แต่ต้องระวัง Sensitive Data อย่าลืม Clean ก่อนเอาไปใช้งานกับ Generative AI - ถ้ามีสิทธิ์การใช้งาน Copilot ในรูปแบบขององค์กร สามารถเอา Sensitive Data ขึ้นไปใช้งานได้เลย โดยที่ Copilot จะใช้งานและแชร์ข้อมูลแค่ภายในองค์กรเท่านั้น นอกจากนี้ยังสามารถเก็บข้อมูล Train ในฐานข้อมูลของมันเพื่อเอาไปใช้งานภายหลังได้ด้วย - ส่วน UX/UI Designer ตอนนี้กระแส AI ยังเงียบ ๆ แต่ให้รอดูกลางปีเพราะว่า Figma เพิ่ง Acquire บริษัทชื่อ Diagram ไป ต้องรอดูว่าจะมีอะไรเจ๋ง ๆ มาไหม ## Speaker’s Prediction - AI จะย้ายการแข่งขันจาก On Cloud ไป On Device มากขึ้น aka. **EDGE AI** - คนจะไปค้นหากับ Generative AI มากขึ้น - คนที่ไม่สามารถส่งมอบงานที่เหนือกว่า AI Generate ขึ้นได้จะ**ตกงาน** - คนจะโหยหาและให้คุณค่ากับ Craftsmanship หรือผลงาน Craft โดยมนุษย์มากขึ้น สุดท้ายพี่นนฝาก Quote ทิ้งไว้ว่า > AI draft, Human craft > > Facebook: Chongo Visavayodhin แปลว่า AI นี่แหละที่จะมาช่วยเรา Draft งานในเกรด B หรือ B+ และเราก็จะเป็นคน Craft งานให้มันเป็นเกรด A ดังนั้นถ้าใครที่ Craft งานไม่ผ่านคุณภาพของ AI คุณก็จะตกงานนั่นเอง --- # ตามรอยชานมไต้หวัน 2024 - URL: https://blog.ninprd.com/blog/taiwan-boba-milk-tea-2024/ - Published: 2024-03-16 - Tags: experience-sharing, boba-milk-tea, Y2024 - Summary: เอาล่ะ วีคก่อนนิลไปไต้หวันมาครับแล้วก็มีโอกาสได้ไปกินชานมร้านต่าง ๆ ตาม Guide หลาย ๆ ที่มา นิลเลยอยากจะเขียนร่องรอยประวัติศาสตร์เอาไว้นิดนึงครับ ในนี้จะเป็นความเห็นส่วนตัวของนิลเรื่องชานมนะครับ ส่วนตัวแล้วนิลชอบทานหวานครับ ใครเห็นต่างหรือคิดยังไง Comment บอกกันได้ครับ ส่วนการตามรอยของนิลจะเป็นยังไงไปดูกันเลยครับ เอาล่ะ วีคที่ผ่านมานิลไปไต้หวันมาครับแล้วก็มีโอกาสได้ไปกินชานมร้านต่าง ๆ ตาม Guide หลาย ๆ ที่มา นิลเลยอยากจะเขียนร่องรอยประวัติศาสตร์เอาไว้นิดนึงครับ ในนี้จะเป็นความเห็นส่วนตัวของนิลเรื่องชานมนะครับ ส่วนตัวแล้วนิลชอบทานหวานครับ ใครเห็นต่างหรือคิดยังไง Comment บอกกันได้ครับ ส่วนการตามรอยของนิลจะเป็นยังไงไปดูกันเลยครับ ## 1. Xing Fu Tang ร้านนี้เป็นร้านแรกที่ได้ลองเลยครับ นิลได้ไปลองที่บริเวณ Ximending Night Market ซึ่งตอนแรกที่อ่านมาดูเหมือนคิวจะยาวครับ แต่นิลน่าจะโชคดี ไปวันที่คนน้อยพอดี นิลลองตัวชานมที่เป็นตัว Best Seller ของเขาเลยครับซึ่งก็คือ “**Brown Sugar Milk Tea**” ครับ รีวิวจากใจจริงนิลเลยคือรสชาติหวานกำลังดีแต่นิลแทบไม่ได้กลิ่นชาเลยครับ รู้สึกเหมือนนมล้วนมาก ๆ ตัดคะแนนตรงนี้แล้ว 1 ต่อไปส่วนของไข่มุก ตัวไข่มุกเป็นแบบลูกใหญ่ครับ ส่วนตัวนิลว่ามันนิ่มแปลก ๆ แต่ก็ไม่ได้นิ่มขนาดร้านถูก ๆ ในไทยนะครับ แต่ยังไงก็ดี รู้สึกว่ายังไม่โดน ผนวกกับ Layer ด้านบนที่นิลไม่มั่นใจว่ามันคืออะไร (แต่คล้าย ๆ ชีส) ซึ่งส่วนตัวแล้วนิลไม่ชอบอยู่แล้วครับ ดังนั้นการมาลองร้านนี้สำหรับนิลคือแอบผิดหวังนิดนึง แต่ยังไงก็ดี ถ้าใครชอบรสชาติหวานพอดี ไข่มุกไซส์ใหญ่และก็ Layer นัว ๆ ด้านบน ร้านนี้ก็เป็นตัวเลือกที่ดีครับ  ราคา: 120 NTD สถานที่ตั้ง: [https://maps.app.goo.gl/eacg1f22xb497mcE9](https://maps.app.goo.gl/eacg1f22xb497mcE9) ## 2. 50 Lan ร้านนี้เป็นร้านที่นิลเดิน ๆ อยู่แล้วก็เจอครับ นิลจำ Location ไม่ได้ละ แต่ว่าร้านนี้หาได้ตามทั่วไปเลยครับ คิวไม่ยาวด้วย นิลลองเป็นตัว OG ของเขาเลยครับ ตัว “**Milk Tea with Small & Large Bubble**” หวาน 100% Size M ครับ สั่งครั้งแรกก็ได้ Content เลยครับ นิลสั่ง M แต่ว่าได้ L แค่นั้นยังไม่พอ สั่งใส่ไข่มุก แต่ไม่ได้ไข่มุก นี่โกรธมาก 😡 แต่โดยรวมนิลมองว่ารสและกลิ่นของชาค่อนข้างเบาครับ ทานง่ายดี แนะนำถ้ากินชาแบบไม่ใส่ไข่มุกกิน M ก็พอครับ L นี่แอบเยอะไปนิดนึง  ราคา: 50 NTD ## 3. 50 Lan (รอบ 2) หลังจากไปทำการบ้านมา นิลเจอว่ามีร้านนี้เปิดอยู่แถว ๆ ที่พักที่นิลไปอยู่ครับ นิลเลยรีบพุ่งตัวไปกินเลยครับ รอบนี้นิลก็ซ้ำเมนูเดิมครับ “**Milk Tea with Small & Large Bubble**” หวาน 100% Size M ด้วยความคาดหวังว่ารอบนี้จะมีไข่มุกมาให้ 555555 รอบนี้ค่อนข้างกลมกล่อมมากขึ้นครับ อย่างที่บอกไปว่าตัวชาก็ค่อนข้างเบาและตัวนมก็โอเค โดยรวมแล้วก็คือทานง่ายมาก และที่ชอบอีกอย่างคือไข่มุก 2 ขนาดที่ผสมกันอยู่ มันมีความ Dynamic อยู่ข้างในอะ นิลรู้สึกว่ามันมีลูกเล่นมาก ชอบมากกก 55555  ราคา: 50 NTD สถานที่ตั้ง: [https://maps.app.goo.gl/CRF1hwFzJVRPJRY16](https://maps.app.goo.gl/CRF1hwFzJVRPJRY16) ## 4. Chun Shui Tang ร้านนี้เป็นร้านสุดท้ายที่ได้ลองเพราะว่านิลวันก่อนกลับนิลรู้สึกท้องไส้ไม่ค่อยดี ทำให้นิลเลือกที่จะไม่กินนมเข้าไปเร่งปฏิกิริยาเพิ่มครับ ถ้าเอาในเชิงประวัติศาสตร์นิดนึง ร้านนี้เป็นร้านต้นตำรับชานมของโลกเลยนะครับ ตัวนิลแอบมีความคาดหวังกับการกินชานมที่นี่อย่างมากครับ นิลสั่งตัว “**Pearl Milk Tea**” และแน่นอนครับ หวาน 100% ครับ ส่วนตัวแอบผิดหวังเพราะมันไม่หวานเลย ตรง ๆ คือจืดเลยแหละครับ แต่ถ้าเอาในส่วนของชากับตัวไข่มุกนี่ดีเลยครับ ตัวชากับนมค่อนข้างเจ๋งแจ๋ว โคตรนัว ส่วนตัวไข่มุกก็มีความหนึบและไม่นิ่มเหมือนไข่มุกถูก ๆ ครับ รู้สึกว่ามีความมันความนัวที่ค่อนข้างดีเลย ยังไงใครมาไต้หวันก็แนะนำให้ลองครับ ด้วยประวัติศาสตร์เอย คุณภาพเอย นิลว่าโอเคเลยครับ  ราคา: 100 NTD (ยังไม่รวม VAT หรือ Service Charge อีก 10% นะ // นิลไม่ชัวร์ว่า VAT หรือ Service รู้แต่โดนเพิ่ม 10% ฮะ) สถานที่ตั้ง: [https://maps.app.goo.gl/tgCaQcmgoTxyskEj7](https://maps.app.goo.gl/tgCaQcmgoTxyskEj7) --- เย้ ๆ วันนี้มาเป็น Blogger สายท่องเที่ยวนิดนึงพอดีเพิ่งกลับจากไปเที่ยวมาครับ จริง ๆ แล้วยังขาดร้านชื่อดังอีกร้านนึงคือ Comebuy แหละ แต่พอท้องเสียไปวันนึงนิลก็ไม่กล้าไปกินเพิ่มเลยอดเลย สุดท้ายใครชอบหรือไม่ชอบอันไหนก็มาบอกกันได้นะครับ หรือใครไปตามรอยแล้วเป็นยังไงบ้างก็แชร์กันได้นะครับ นอกจาก Guide ชานมแล้วยังมี Content ท่องเที่ยวไต้หวันตามมาแน่นอน ติดตามกันได้เลยครับ ขอให้อร่อยกับการกินชานมไข่มุก – นิล – --- # ทุกงานสำคัญหมด แต่งานไหนสำคัญกว่า - URL: https://blog.ninprd.com/blog/prioritzing-tasks/ - Published: 2024-02-03 - Tags: experience-sharing - Summary: การตั้ง Priority เป็นสิ่งหนึ่งที่ควรค่าแก่การทำมากเพราะว่าเราจะสามารถ Manage งานได้ดีกว่าคนอื่น หากเรา Prioritize ของถูกว่าอันไหนควรเสร็จก่อน มาตามหาวิธีการจัด Priority ของแต่ละชิ้นกับนิลกัน! > นิลครับ พี่ขอ 5 นาทีได้ไหมครับ? > > – ทุกคนที่ทักนิลเรื่องงานมาช่วงนี้ คำพูดนี้ถูกยกเอามาอีกครั้ง เพราะคำพูดนี้ก็เป็นหนึ่งในชนวนที่ทำให้เกิด Blog นี้เหมือนกันครับ ช่วงนี้นิลจะเจอหลาย ๆ คนทักมาว่าขอเวลาซัก 5 นาที ช่วงแรก ๆ นิลก็ให้ 5 นาทีกับทุกคนไปครับ แต่มันก็เป็น 5 นาทีจอมปลอมกันหมดเลย เวลานิลหายไป 1 ชั่วโมงบ้าง 2 ชั่วโมงบ้าง จนสุดท้ายเวลาทำงานหลักของนิลหายหมดเลยครับ ทีนี้นิลเลยเริ่มมาคิดว่านิลน่าจะต้องมาตั้ง Priority ของการคุยกับแต่ละคนครับ ## แล้วทีนี้จะดูได้ไงว่างานไหน Priority มากกว่า? หลาย ๆ คนที่ทักเรามามักจะบอกว่าเรื่องของเขามันด่วนมากและให้รีบจัดการ หรืออาจจะให้เรารีบ Investigate ปัญหาที่เขาเจอ ถ้าเราจัดการให้กับทุกคนทีเดียว ตายแน่ครับ เพราะนิลทำมาแล้ว ตัวแทบระเบิด 5555 ดังนั้นจริง ๆ เราควรถามพวกเขาเหล่านั้นไปก่อนว่าแต่ละคนติดต่อมาด้วยเรื่องอะไร อาจจะให้เขาเล่ากันแบบคร่าว ๆ ซึ่งพอฟังบางคนที่เขาว่างานของตัวเองนั้นด่วน แท้จริงแล้วก็ไม่ได้ด่วนอะไรเลยครับ เป็นงานธรรมดาที่ต้องนำไปต่อคิวเข้า Backlog เท่านั้น แต่ในขณะเดียวกันบางคนที่ทักเรามานั้น เขาก็ทักมาด้วยความเร่งด่วนจริงครับ ## เมื่อกี้ยังไม่ตอบเลยว่าดูยังไงว่างานไหน Priority มากกว่า! ปกตินิลจะแบ่งงานในหัวตัวเองเป็น 3 ส่วนคือ งานที่เร่งด่วน งานที่ต้องทำแต่ไม่รีบ และงานที่ไม่ต้องทำ ซึ่งแน่นอนพอนิลเข้า Filter ในหัวไปแล้วว่างานนั้นมันไม่ต้องทำ นิลปฏิเสธและโยนทิ้งเลย ทีนี้ถ้ามันเป็นงานประเภทที่เหลือนิลก็เรียงตามที่นิลเขียนมาเลยครับและก็จะเอา Deadline มาประกอบอีกทีครับว่างานไหน Deadline ก่อน งานนั้นก็จะถูกหยิบมาก่อนแหละครับ ทั้งนี้ถ้าเราได้รับงานที่สำคัญมาแต่นิลประเมินแล้วว่า Manpower ของนิลทำไม่ทัน Deadline นิลก็จะไม่รับงานนั้น ๆ มาครับ หรือถ้าเป็นงานในบริษัทนิลก็ต้องแบ่งงานออกไปให้คนอื่นที่สามารถทำงานนั้น ๆ ได้เหมือนกันครับ ทีนี้ถ้ามาพูดในบริบทของบริษัทที่ทำงานกันแบบ Agile นิลว่าเราต้องมองย้อนกลับไปถึง Sprint’s Goal, Team’s Goal, รวมถึง Personal Responsiblities ครับว่างานที่เขาจะเข้ามาคุยกับเรานั้น มันตรงกับของที่นิลเขียนไปก่อนหน้านี้หรือเปล่า เช่น ถ้า Sprint นั้น ทีมคุยกันแล้วว่าจะทำ สมมติว่าเป็นการสร้างเมนูในการ Navigate ให้กับ User และเอาไปวางตามหน้าต่าง ๆ ในเว็บไซต์ ถ้าทีมคุยกันแล้วว่าใน Sprint นี้ Goal ของเราคือสิ่งเหล่านี้ แปลว่างานที่ทักมาที่ไม่เกี่ยวกับ Goal ก็ไม่ควรจะถูกยกเป็น Priority ขึ้นมาและควรเอาไปต่อตูดที่ด้านล่างของ Backlog ทั้งนี้ทั้งนั้น ถ้างานนั้น ๆ แทรกเข้ามาแล้วเราคุยกันในทีมว่างานที่เข้ามานั้น ต่อให้ไม่ตรงกับ Sprint Goal แต่เป็นเรื่องใหญ่และเป็นเรื่องที่ต้องรีบทำ ทีมก็อาจจะต้องยก Priority งานที่แทรกเข้ามาได้ แต่นิลว่ามันเป็น Case-By-Case ไปแหละเรื่องพวกนี้ ถ้าถามว่ามันมีพวก Framework หรือแนวคิดอะไรที่ช่วยให้เรา Manage Task ได้ง่ายขึ้นไหม นิลขอนำเสนอ Eisenhower Matrix ครับ ตัว Matrix นี้จะให้เราแบ่งงานออกเป็น 4 ประเภทคือ 1. งานที่สำคัญและเร่งรีบ (ต้องทำเลย) 2. งานที่สำคัญแต่ไม่รีบ (ไว้ทำทีหลังได้) 3. งานที่ไม่สำคัญแต่เร่งรีบ (แบ่งงานให้คนอื่นทำได้) 4. งานที่ไม่สำคัญและไม่รีบ (ช่างมันได้เลย) ซึ่งใครอยากจะเข้าใจตัว Matrix นี้เพิ่มเติมนะครับ สามารถไปลองอ่านได้ที่[ลิงก์นี้](https://www.eisenhower.me/eisenhower-matrix/)เลย ## Manage Task ที่เข้ามาทั้งหมดแล้ว ลืมอะไรไปหรือเปล่า? ต่อให้เรา Manage Task ทั้งหมดที่เข้ามาได้แล้ว สิ่งที่หลาย ๆ คนรวมถึงตัวนิลลืมคือการเหลือเวลาส่วนตัวให้กับตัวเองครับ ตัวนิลในช่วงธันวานี่ถือว่างานแทรกเยอะมากและนิลตั้งใจว่าจะทำทุกอย่างให้เสร็จ สรุปนิลทุ่มเวลาให้กับงานบริษัทอาทิตย์ละ 7 วันเลยครับ สุดท้ายสุขภาพก็พัง รู้สึกล้าง่ายและไม่ Fresh แบบ 100% เหมือนเมื่อก่อน ช่วงหลังปีใหม่มานี่นิลถึงได้เริ่มเอา Balance กลับมาด้วยการลดเวลางานให้กลับไปเหมือนปกติชนก่อนและไม่คิดเรื่องงานนอกเวลางานครับ ผลสรุปที่นิลได้ตอนนี้คือความ Fresh ถึงจะยังไม่เต็ม 100% แต่ว่าก็มากกว่าช่วงธันวามากครับ แต่ถ้าใครยังมองไม่เห็นความสำคัญของการดูแลและให้เวลาตัวเองตัวเองหรือว่ามองว่า Task ที่ต้อง Manage มันสำคัญกว่า ก็ให้ลองมองห้วงเวลาที่เราจะใช้กับตัวเองเป็น Task นึงแล้วโยนการให้เวลาตัวเองไปในขั้นตอนของการ Prioritizing ดูก็ได้ นิลหวังว่ามันจะกลายเป็น Task ที่ทุกคนเห็นความสำคัญนะครับ ## แนะนำ Tools ที่ปกตินิลใช้ดีกว่า ปกติเนี่ยนิลจะใช้ตัว Notion ในการ Manage Task ต่าง ๆ ครับ รวมถึงการทำ Documentation หรือการจด Note ต่าง ๆ เนี่ย นิลก็ใช้ Notion เป็นหลักเลยครับ ซึ่งนิลชอบ [Tutorial](https://youtu.be/bP8wTapHsbc?si=k3ba2Hee6Qmd57yf) ของคนนี้มาก ลองไปตามดูกันได้ครับ อีก Tool นึงท่ีนิลใช้คือ [Google Calendar](https://calendar.google.com/) ครับ ซึ่งสิ่งนี้ปกตินิลใช้ในการลงตารางการนัดหมายและ Block เวลาการทำงานให้ Focus เพื่อให้สิ่งที่สำคัญมันลุล่วงไปก่อนครับ แค่มีบัญชี Google ก็สามารถใช้งานได้แล้ว นิลว่าสะดวกมากเลยครับ นิลมีใช้อีกตัวนึงเพื่อใช้ในการ Capture Idea แบบเร็ว ๆ ด้วย ซึ่ง Tools นั้นก็คือ Todoist นั่นเองครับ นิลใช้ App ตัวนี้ในการจดเวลาเจออะไรเร็ว ๆ เช่น มีคนทักให้ทำสิ่งนึงให้แต่ไม่รีบ นิลก็จะจดไว้ใน Todoist ก่อนแล้วพอถึงที่ทำงานหรือเริ่มวันทำงานก็จะกาง Todoist ออกมาเพื่อดูว่ามี Issue เล็ก ๆ น้อย ๆ อันไหนบ้างที่นิลสามารถเก็บได้หรือมีงานอะไรเล็ก ๆ น้อย ๆ ที่คั่งค้างอยู่หรือเปล่า  --- จบไปแล้วนะครับ Blog นี้ นิลคิดว่าเป็นหนึ่งใน Blog ที่ยาวที่สุดในช่วงนี้เลย ตัว Blog นี้นอกจากอยากให้คนฝึก Prioritize งานที่เข้ามาแล้ว อยากให้ดูแลตัวเองกันด้วยครับ โหมงานกันหนัก ๆ ก็อย่าลืมแบ่งเวลาซักนิดนึงมาดูแลตัวเอง นิลคิดว่ามันอาจจะเป็นเรื่องที่หลาย ๆ คนมองข้ามมันไป แต่นิลไม่อยากให้ทุกคนมามองเห็นมันในวันที่สายไปแล้วนะครับ ยังไงก็ดูแลสุขภาพกันด้วย ช่วงนี้นิลเพิ่งป่วยเพิ่มเป็นบ่าอักเสบ พูดเสร็จแล้วก็ไปยืดร่างกายตามหมอสั่งก่อน 5555555 ขอให้ทุกคนสนุกกับการ Prioritize งานครับ – นิล – --- # มือใหม่หัด Estimate - URL: https://blog.ninprd.com/blog/estimation-newbie/ - Published: 2024-01-20 - Tags: experience-sharing - Summary: ช่วงนี้ในฐานะที่นิลเริ่มเติบโตขึ้นมา (นิดนึง) ในฐานะ Software Engineer คนนึง นิลเริ่มเห็นปัญหาใหญ่ ๆ ที่ Dev หลาย ๆ คนมักจะเจอนะครับ นั่นคือการ Estimate เวลาที่ใช้ทำ Task ใน Sprint นั่นเอง มาดูกันว่าทุกคนกำลังเจอปัญหาเดียวกันหรือเปล่า > นิลครับ พี่ขอคุยด้วยซัก 5 นาทีหน่อยได้ไหมครับ คำพูดนี้ช่วงนี้นิลได้ยินทีนี้สั่นซู่วขึ้นมาเลยครับ ช่วงนี้ในฐานะที่นิลเริ่มเติบโตขึ้นมา (นิดนึง) ในฐานะ Software Engineer คนนึง นิลเริ่มเห็นปัญหาใหญ่ ๆ ที่ Dev หลาย ๆ คนมักจะเจอนะครับ นั่นคือการ Estimate เวลาที่ใช้ทำ Task ใน Sprint นั่นเอง ปกติตอน Planning เหล่า PM ก็จะให้ Dev ลาก Card จาก Backlog เข้า Sprint พอเราลากเสร็จก็จะย้อนกลับมาถามเราว่าเราสามารถทำ Task เหล่านี้ให้เสร็จใน Sprint หรือเปล่า ตัวเรา ณ ตอนนั้นก็คิดแค่ว่า Task แต่ละใบน่าจะทำให้เสร็จในเท่านี้วัน เท่านี้ชั่วโมงแหละ แต่อาจจะลืมคิดถึงปัจจัยอื่น ๆ ไป วันนี้นิลจะมาลองยกตัวอย่างปัจจัยเหล่านั้นแล้วพาทุกคนคิดตามดูนะครับ ว่ากำลังเจอปัญหาเดียวกันอยู่หรือเปล่า ## Meeting ในโปรเจคที่นิลทำช่วงนี้ สิ่งนี้นับเป็นเกือบ ๆ 40% ของ Task ใน Sprint นึงเลยก็ว่าได้ ซึ่งมีทั้ง Meeting ที่เป็น Scheduled Meeting และ Unexpected Meeting ซึ่งในความเป็นจริงแล้วเราควรเอา Scheduled Meeting มาคำนวนในเวลาที่เราเหลือใน Sprint ด้วย และถ้าสมมติเราทำข้อมูลเก็บไว้ เราก็สามารถเอาข้อมูล Unexpected Meeting มาวิเคราะห์และ Buffer เผื่อไว้ให้เราสามารถคิดเวลาที่เหลือใน Sprint ได้อย่างใกล้เคียงความเป็นจริงมากที่สุดด้วย นอกจากนี้หาก Meeting นั้น ๆ มีความนานเกินไปหรือเราไม่มีความจำเป็นจะต้องอยู่ใน Meeting นั้นแล้ว อาจจะขอตัดจบเข้าการสรุปการประชุมหรือออกจากการประชุมได้เพื่อให้เราไป Focus งานใน Sprint ต่อได้ครับ ## Review PR สิ่งนี้เป็นสิ่งที่ Dev หลาย ๆ คนอาจจะลืมเผื่อกันเอาไว้ตอนที่วาง Task กัน ทุกคนก็จะคิดแต่งานตัวเองกัน แต่ยังไงก็ดี สิ่งนี้นิลคิดว่าเหล่า Dev น่าจะต้องเอาไปคิดเพื่อลบเวลาใน Sprint ด้วย เช่น เราเห็นแล้วว่าเพื่อน ๆ ลากการ์ดเข้ามา 4 ใบใน Sprint และเป็น Issue ที่เราต้องไปช่วย Review เราอาจจะต้องประเมินเผื่อหักลบตรงนี้ไปเพื่อให้เราไม่ต้องไป Review PR นอกเวลาหรือว่าทำงานของตัวเองไม่ทันเพราะไปนั่ง Review PR คนอื่นอยู่ ## Misestimation อันนี้อาจจะเป็นสิ่งที่ Subjective นิดนึงครับ อันนี้จากประสบการณ์ของนิลนะว่าหลาย ๆ ครั้งเราชอบคิดว่า Task มันง่าย อาจเป็นเพราะเราคิดว่ามันก็แค่นิดเดียวกับเราไม่มีความรู้มากพอที่จะประเมินเวลาที่แน่ชัดของมันได้ ทำให้สุดท้ายแล้วเราก็ Underestimate ไปยับ ๆ ซึ่งถ้าความผิดพลาดนั้นเกิดขึ้นในระดับชั่วโมงก็อาจจะโชคดีไป แต่ที่เกิดกับนิลล่าสุดคือด้วยความที่นิลไม่รู้เกี่ยวกับ WordPress เยอะมาก นิลคิดว่า Task ที่นิลต้องทำจะเสร็จใน 4 วันแต่ในความเป็นจริงแล้วนั้น… ใช้ไป 4 อาทิตย์แหนะ บ้าบอ แค่นี้ PM ก็ปาดเหงื่อแล้วครับ หรือบางทีนิลได้ Task นึงมา ด้วยความใหม่นิลก็รู้สึกว่ามันน่าจะยาก แต่ในความเป็นจริงอาจจะแบบดีดนิ้วเสร็จ ซึ่งในเคสเหล่านี้จริง ๆ ควรมี Senior/คนที่มีความรู้เกี่ยวกับเรื่องนี้มา Estimate เพื่อให้ค่าของการ Estimate มันไม่แกว่งมากเกินไปครับ ## Support หลาย ๆ ครั้งพอเราทำสิ่ง ๆ นึงเสร็จไป มักจะมีคนมาถามเรา ไม่ว่าจะเป็น PM Designer หรือลูกค้าก็ตาม ยกตัวอย่างเช่น เรา Release ของเสร็จปุ๊ป ทางลูกค้าอาจจะเจอ Bug หรือ Designer อาจจะอยากถามเรื่องของหน้าตาของที่เปลี่ยนไปบ้าง หรือแม้แต่ PM อาจจะต้องมาถามในเรื่องของการใช้ Feature นั้น ๆ ที่เราเพิ่ง Release ไป ซึ่งในความเป็นจริงแล้ว ควรจะต้อง Lock ไปเลยว่า Sprint นี้จะใช้ Resource เราในการ Support กี่วันเพื่อให้จำนวนวันที่เราเหลือใน Sprint นั้นเป็นตัวเลขที่ใกล้เคียงความเป็นจริงที่สุด ## งั้นแปลว่าใน Sprint นึงเราอาจจะมีเวลาทำงานน้อยมาก ๆ เลยล่ะสิ เป็นคำถามที่ดีครับ งั้นลองมายกตัวอย่างกันดีกว่า สมมติ 1 Sprint มี 10 mandays และนิลรู้ว่าต้องมีงานแทรกดังนี้ | **Activity** | **Time (mandays)** | | -------------------------------- | ------------------ | | Planning | 0.5 | | Review PR (6 Issues) | 0.5 | | Meeting With Client #1 | 0.3 | | Meeting With Client #2 | 0.2 | | Support After Release | 2 | | Sprint Review + Retro + Grooming | 1 | จากตารางนี้จะพบว่า 1 Sprint เราจะเสียเวลาไปทั้งสิ้น 4.5 mandays สำหรับงานอื่น ๆ ที่ไม่ใช่งานหลักใน Sprint ที่อยู่ใน Backlog เลย แปลว่าถ้า Sprint นึง มี 10 mandays เราก็จะเหลือเวลาทำ Task หลักใน Sprint อยู่ทั้งสิ้น 5.5 mandays นั่นเอง เย่ะ ๆ จากตอนแรก ถ้าสมมติเราไม่กางตัวเลขนี้มา เราอาจจะตีว่าเราจะมีอยู่ 10 mandays หรือบางคนอาจจะลบ Meeting ที่เป็น Planning กับ Review ไปอยู่แล้ว ก็อาจจะคิดว่าตัวเองมีอยู่ 9 mandays ใน Sprint ก็เป็นได้ครับ ซึ่งจากตารางที่ยกตัวอย่างมา ถามว่า 5.5 mandays ต่อ Sprint ในการเคลียร์ของน้อยไหม? ต้องตอบว่าดูน้อยครับ เพราะจริง ๆ อันนี้เรายังไม่ได้รวมเรื่องของการ Misestimate หรือ Unexpected Meeting ที่เป็นปัจจัยแปรผันและ Backlog ของบริษัทก็ไม่ได้น้อยนะครับ แต่ Resource ของ Dev ถูกเอาไปใช้ในงานอื่น ๆ ซะเยอะจนสุดท้าย Resource ของ Dev ก็ไม่ได้เอามาทำงานที่เป็น Development อย่างเต็มที่ครับ ## แล้วชีวิตจำเป็นต้องเป๊ะขนาดนี้ไหม? นิลตอบตรง ๆ ว่าไม่ครับ และก็ไม่ใช่ทุกครั้งที่เราจะทำให้ Estimate ใกล้เคียงกับความเป็นจริงครับ สุดท้าย Estimate ก็แค่ค่าประมาณครับ เวลาที่ใช้ทำ Task นั้นจริง ๆ ก็อาจจะขึ้นกับประสบการณ์หรือเวลาที่เราใช้เพื่อประมวลข้อมูลก็ได้ครับ ถ้าย้อนกลับไป นิลจะใช้คำว่า Estimate ได้แค่ “ใกล้เคียง” กับความเป็นจริง แต่ไม่ใช้คำว่า “ถูกต้อง” หรือ “ตรงเป๊ะ” ด้วยเหตุผลนี้แหละครับ ว่าสุดท้ายมันอาจจะไม่เป๊ะแหละ นิลแค่อยากมาชวนให้ทุกคนลองคิดว่าเจอปัญหาเหล่านี้อยู่หรือเปล่าครับ ## เราจะทำอย่างไรเพื่อลดปัญหาเหล่านี้? นิลว่ามันมีวิธีลดปัจจัยที่ควบคุมได้ เช่นพวก Scheduled Meeting หรือการ Estimate Task รวมถึงการ Dedicated Support ด้วย ซึ่งแต่ละหมวดก็มีวิธีการควบคุมและลดได้อยู่แล้ว เช่น Meeting ก็อาจจะสามารถตัด Meeting ที่วกไปวันมาเข้าสู่การสรุปประชุมเพื่อจบ Meeting ที่ไม่มีประโยชน์ในการคุยต่อ หรือในหมวด Misestimation ก็อาจจะต้องหา Senior มาคอยช่วยน้อง ๆ Junior ในการ Estimate นิดนึงเพื่อลดความแกว่งที่อาจจะเกิดขึ้นได้ --- จบไปแล้วนะครับ กับ Blog ที่มาแบบงง ๆ ตัว Blog นี้มันเริ่มมาเพราะช่วงนี้นิลเสียเวลากับการ Activity เหล่านี้ในอัตราส่วนที่ค่อนข้างเยอะแหละครับ และทำให้นิลต้องไปทำงานนอกเวลาเยอะมาก สุดท้ายก็ส่งผลเสียกับสุขภาพนิลครับ ตอนแรกก็ไม่ได้ Capture จริงจังว่าใช้เวลาไปแต่ละ Activity เท่าไหร่บ้าง แต่นิลก็แบบ ไม่ได้ละ ต้องหาตัวการละว่าอะไรที่ทำให้นิลทำงานเกินขนาดนี้ได้ ก็ไปเจอเข้ากับสาเหตุเหล่านี้แหละครับ เลยออกมาเป็นเนื้อหาของ Blog แบบนี้ ยังไงถ้าอ่านแล้วมี Feedback อะไรก็สามารถให้ Feedback ทาง DM ของ Instagram ได้เหมือนเดิมนะครับ จนกว่านิลจะเปิดช่องทางเพิ่ม 555555 ขอบคุณทุกคนที่อ่านมาถึงจุดนี้ด้วยครับ ขอให้สนุกกับการ Estimate Task – นิล – --- # 2023 Year In Review - URL: https://blog.ninprd.com/blog/2023-year-in-review/ - Published: 2023-12-31 - Tags: experience-sharing, year-in-review, Y2023 - Summary: เอาล่ะ จะปีใหม่แล้ว สิ่งที่ขาดไปไม่ได้เลยตอนสิ้นปีคือ “Year In Review” ยังไงล่ะ ในปีนี้นิลก็ขอขอบคุณทุกคนที่ติดตาม Blog ของนิลมาตลอด รวมถึงคนที่ Support นิลด้วยนะครับ วันนี้ที่นิลจะมาเล่าสิ่งที่เป็น Highlight ที่เกิดขึ้นกับนิลใน 1 ปีที่ผ่านมานะครับ จะเป็นยังไง ไปดูกันเล้ย! เอาล่ะ จะปีใหม่แล้ว สิ่งที่ขาดไปไม่ได้เลยตอนสิ้นปีคือ “Year In Review” ยังไงล่ะ ในปีนี้นิลก็ขอขอบคุณทุกคนที่ติดตาม Blog ของนิลมาตลอด รวมถึงคนที่ Support นิลด้วยนะครับ วันนี้ที่นิลจะมาเล่าสิ่งที่เป็น Highlight ที่เกิดขึ้นกับนิลใน 1 ปีที่ผ่านมานะครับ จะเป็นยังไง ไปดูกันเล้ย! ## รับ Freelance ครั้งแรก เปิดปีด้วยการรับ Freelance ครั้งแรก เป็นสิ่งที่นิลไม่เคยกล้าทำเลย เพราะนิลไม่มั่นใจในตัวเองเลยว่าจะทำมันได้ แต่พอตอนนั้นตกลงทำก็รู้สึกสนุกดีนะ รู้สึกเลยว่าเราก็ทำได้นี่นา ไม่ได้ยากชิบหายอย่างที่คิด แต่ผลที่ตามมาคือการแบ่งเวลาที่ไม่ดีจนสุดท้ายก็ป่วยรัว ๆ เลย รอบหน้าถ้ารับงาน นิลได้บทเรียนมาละต้องประเมินเวลาให้ดีกว่านี้และต้องไม่ให้เวลาทำงานทับเวลานอนไปครับ ## ไปงาน Networking ครั้งแรก ในปีนี้นิลได้ไปงาน UX Day ที่ทาง Gangs Connector เป็นคนจัดฮะ เป็นครั้งแรกเหมือนกันที่นิลกล้าที่จะไป Networking เพราะรู้ทั้งรู้ว่าตัวเองแบบ Social Akward มากเวลาไปกับคนที่ไม่รู้จักเลย แต่ยังไงก็ดีพี่ ๆ ในงานน่ารักมาก ช่วยมาดึงนิลจากมุม ๆ นึงเข้าไปคุยกับคนอื่น ๆ ทำให้สุดท้ายก็เปิดใจกับงาน Networking ว่าจริง ๆ ก็ไม่ได้น่ากลัวอย่างที่คิด แอบกระซิบว่าตอนนี้เขากำลังขายตั๋วงาน UX Conference ของปีหน้านะ ไปกดตั๋วกันได้ที่[นี่เลย](https://uxth.co/) ## แข่ง Hackathon อันนี้ไม่ใช่ครั้งแรกที่ลงแข่ง Hackathon แต่รอบนี้เป็นการไปแข่ง Hackathon ในนามบริษัทแหละ ปีนี้ได้ลงแข่งรายการ [Hack For Growth](https://www.etda.or.th/th/hackforgrowth) เป็นรายการที่จัดโดย ETDA เพื่อเฟ้นหา Solution ที่จะมาส่งเสริมในหมวดการท่องเที่ยว ซึ่งมันรู้สึกคนละ Scale กับ Hackathon ที่เคยแข่งก่อนหน้านี้เลย แต่ทั้งนี้ทั้งนั้นก็มั่นใจในทีมเพราะพี่ ๆ ในทีมนี่ระดับตัวตึงบริษัททั้งนั้น 😂 นอกจากนี้ยังได้มาเรียนรู้ Skills ต่าง ๆ ผ่าน Workshop (ที่มีทั้งรู้เรื่องและไม่รู้เรื่อง 5555) ได้ออกมาเปิดโลกว่าจริง ๆ ในโลกกว้างข้างนอกตอนนี้เขาทำอะไรกันบ้างนะ มีอะไรที่สามารถไปส่งเสริมการท่องเที่ยวตามโจทย์บ้าง ได้เห็นเลยว่าแต่ละทีมโหดมาก ถึงจะไม่ชนะ แต่ก็ได้อะไรกลับไปเยอะมาก และก็ตั้งเป้าว่าอยากลงแข่ง Hackathon อีก ps. อยากใช้พื้นที่ตรงนี้ขอบคุณพี่ ๆ ในทีมทุกคนอีกครั้งด้วยนะครับ พี่ ๆ เก่งมาก 💪 ## ได้มีโอกาสไป Public Speaking ในฐานะ Software Engineer เป็นครั้งแรก นิลได้รับโอกาสจาก Manager ให้ไปพูดเหมือนแนะแนวน้อง ๆ วิศวะปี 1 ภาคคอมเรื่องของการเรียนรู้เพื่อจะเป็น Software Engineer ที่ดีครับ เป็นครั้งแรกที่พูดและตื่นเต้นมาก แล้วก็ทำสไลด์ไม่ทันด้วย แต่ก็เป็นประสบการณ์ที่ดีมาก ขอบคุณน้อง ๆ หลายคนที่ตั้งใจฟัง (และก็แอบอยากหยุมหัวน้อง ๆ ที่แค่เริ่มคาบยังไม่ทันพูดก็ไม่ฟังกันเลย 5555) แต่ก็อาจจะเป็นว่า Skill การพูดของนิลยังไม่ดีพอแหละ เป็นเรื่องที่ต้องฝึกฝนไปเรื่อย ๆ ยังไงก็ขอบคุณพี่ Manager ด้วยนะครับ สำหรับโอกาสดี ๆ แบบนี้ ## เริ่มทำ Blog.nprd อันนี้เป็นสิ่งที่อยากทำมานานมากกกกแล้ว แต่ว่าสุดท้ายโดนพับไปหลายครั้งมาก รอบนี้กลับมาแบบจริงจัง ที่เริ่มกลับมาทำเพราะเห็นพี่ที่ออฟฟิศคนนึงทำ เลยไปคุยกับพี่เขามาแบบอารมณ์ว่าทำไมถึงทำ หนึ่งในเหตุผลที่รู้สึกว่าเป็นสิ่งที่อาจจะเป็นประโยชน์ในอนาคตคือเรื่องของ “Branding” นิลเลยคิดว่าก็น่าสนใจเพราะนิลก็อยากแชร์อยู่แล้วเป็นทุนเดิมและถ้ามันสร้าง “Branding” ของการเป็นนิลทิ้งไว้ได้ มันก็เป็นเรื่องที่ดี รวมกับว่าถ้าใครอยู่กับนิลเยอะ ๆ จะรู้ว่านิลพูดไม่รู้เรื่องหรือมีปัญหาเรื่องการเรียงประโยคซึ่งนิลคิดว่าถ้าเขียนไปเรื่อย ๆ นิลอาจจะลดปัญหาตรงนี้ได้ด้วย ## นอนป่วยที่โรงบาลครั้งแรก หลังจากบาปกรรมที่ทำกับร่างกายมาในพาร์ทแรก ๆ ทั้งหมด จะเห็นได้ว่านิลน่าจะนอนน้อยและไม่ได้ออกกำลังกายเลย อันนี้เป็นสาเหตุของ Time Management ที่ไม่ดี สุดท้ายนิลก็ป่วยเป็นไข้หวัดใหญ่ครับ นอน Admit อยู่โรงบาล 3 คืน ต้องพักงานไปร่วม ๆ 9 วันเพื่อพักการใช้ความคิด + นอนให้พอ + Social Isolate ครับ เป็นการนอนโรงบาลครั้งแรกที่รู้สึกเคว้งคว้างมาก ไม่เคยอยู่คนเดียวแล้วรู้สึกวังเวงขนาดอยู่โรงบาลมาก่อนเลย มันเป็นความรู้สึกที่แปลกมาก และค่าใช้จ่ายอ่วมมาก ถ้าไม่มีประกันบริษัทนี่กลายเป็นยาจกได้เลยนะ 55555 เป็นประสบการณ์แปลกใหม่ในปี 2023 แต่ 2024 ไม่เอาแล้วนะ 😂 ## โดนจับลง Project WordPress นี่อาจจะเป็นสิ่งที่หนักหน่วงที่สุดของปีนี้ก็ได้ เป็นการถูกย้ายจากการจับ Stack TypeScript เป็น php ในการทำงานครั้งแรก ถือว่าเป็นช่วงเวลาที่ยากที่สุดของปีเลย เพราะในบริษัทไม่ได้มี WordPress Expert ด้วย รวมกับว่าในตอนแรกมี Dev คนเดียวในทีมด้วย ตอนแรกตอนที่ไม่รู้ Scale Project + ยังไม่เห็น Design นี่คิดว่าไหวชิวนะ แต่พอผ่านมาครึ่งทาง อุทานได้คำเดียว “เxี้ยแล้ววว” จะทันไหมว่านี่ สุดท้ายก็ต้องมีน้องในทีมเพิ่มคนนึง กลายเป็น Junior Software Engineer ชุบแป้งทอด (ยังเป็น Junior แต่มีงานดูแลน้องเพิ่มเข้ามา 55555) อยากใช้พื้นที่ตรงนี้ขอบคุณที่ทำงานหนักและขอโทษน้องด้วยที่ดูแลน้องได้ไม่ดีเท่าที่ควร และก็ขอบคุณทีม Designers และทีม Product Manager (PM) ด้วย ทุกคนในทีมเก่งมาก ทีมนี้เป็นทีมที่ช่วยเหลือกันดีมากและเป็นสิ่งที่ฉุดรั้งไม่ให้นิลอยากโดดตึกตาย 555555 นอกเหนือจากการที่เป็น Project ที่ยากแล้ว อีกอย่างนึงเลยคือ เป็น Project ที่ได้ทำงานกับ PM กับ Designers อย่างใกล้ชิดและเห็นเส้นแบ่ง Role อย่างค่อนข้างชัดเจน เพราะตอนนิลอยู่ทีม POC ตอนนั้นทุกคนถือกัน 2 Roles กันหมดเลย เส้นแบ่ง Role มันเลยไม่ชัดและก็ไม่ได้สัมผัสประสบการณ์การทำงานร่วมกับทุกฝ่ายแบบใกล้ชิดด้วย นอกจากการที่มันเป็นช่วงเวลาที่หนักหน่วงแล้ว (หนักจนไม่มีเวลามาเขียน Blog) มันก็สอนอะไรนิลเยอะมาก ๆ เหมือนกันนะ ยังไงก็ต้องอยู่กับ Project นี้ในปีหน้าด้วย ขอให้งานใจดีกับฉันด้วย ฮืออ ps. กำลังคิดว่าจะเริ่มทำ Service ที่รับทำ Landing Page/Blog Website ด้วย WordPress นะครับ ใครสนใจทักนิลมาได้ที่ Inbox ของ Instagram เลย หรือถ้าไม่ได้อ่านเรื่องนี้จากในไอจีก็สามารถติดต่อได้ที่ [ppeeranat.d@gmail.com](mailto:ppeeranat.d@gmail.com) ได้เล้ย! --- จบไปแล้วกับ Year In Review ของ 2023 เป็นปีที่ถ้าใครขอ 3 คำจากนิลก็จะเป็นคำว่า “ทำงาน ทำงาน ทำงาน” เพราะไม่ได้ทำอะไรเลยนอกจากงานจริง มีไปเที่ยวบ้าง สังสรรค์บ้าง แต่น้อยมาก ต้องพาวันลาข้ามปีไปเยอะมาก พอกลับมาตกผลึกความคิดกับตัวเองก็รู้สึกค่อนข้างผิดหวังกับตัวเองครับ และก็รู้สึกว่าต่อให้ต้นปีทำมาดีแค่ไหน แต่ปลายปีเจองานแย่ ๆ ไปก็รู้สึกซึมครับ แบบไม่ได้รู้สึกดีเหมือนช่วงต้นปีเท่าไหร่ ยังไงปีหน้าเอาใหม่ครับ อย่าไปหยอง ต่อให้เราไม่รู้ว่าชีวิตจะอยู่ได้อีกนานเท่าไหร่แต่ก็ต้องไปต่อเรื่อย ๆ ครับ 2024 สัญญากับตัวเองไว้แล้วว่าจะไปเที่ยวให้มากขึ้น ทำงานให้น้อยลง และช่างแม่งให้มากขึ้นครับ ขอบคุณทุก ๆ คนที่ตามอ่าน Blog ของนิลมากเลยนะครับ เป็นกำลังใจที่ดีมากเลยครับ ยังน้อมรับ Feedback อยู่เรื่อย ๆ นะครับ พร้อมรับเสมอ ในปีหน้าจะเป็น Blog เรื่องอะไรรอติดตามกันได้ครับ ขอให้ 2024 เป็นปีที่ดีสำหรับทุกคน นิล --- # เงินกับสุขภาพ เลือกอะไร? - URL: https://blog.ninprd.com/blog/health-vs-money/ - Published: 2023-11-08 - Tags: experience-sharing - Summary: นิลจะมาแชร์ประสบการณ์การทำ Freelance ครั้งแรก ซึ่งในตอนที่นิลเลือกทำนั้น จากคำถามข้างบน นิลเลือกเงินครับ แต่พอทำถึงจุด ๆ นึงมันก็มีจุดที่เรากลับมามองตัวเองว่าสุขภาพเราพังเบอร์นี้เลยหรอ หรือแบบ เราเข้าโรงบาลบ่อยไปไหมนะ ซึ่งนิลจะมาเล่าการเดินทางกับสิ่งที่นิลได้จากการตัดสินใจของนิลครับ ฮั่นแน่ เข้ามาอ่านนี่คาดหวังคำตอบของคำถามตามหัวข้ออยู่หรือเปล่านะ จริง ๆ Blog นี้นิลจะมาแชร์ประสบการณ์การทำ Freelance ครั้งแรก ซึ่งในตอนที่นิลเลือกทำนั้น จากคำถามข้างบน นิลเลือกเงินครับ แต่พอทำถึงจุด ๆ นึงมันก็มีจุดที่เรากลับมามองตัวเองว่าสุขภาพเราพังเบอร์นี้เลยหรอ หรือแบบ เราเข้าโรงบาลบ่อยไปไหมนะ ซึ่งนิลจะมาเล่าการเดินทางกับสิ่งที่นิลได้จากการตัดสินใจของนิลครับ จะเป็นยังไง ไปดูกันเล้ย ## ทำไมถึงเลือกทำงานเสริมนอกเวลา? ต้องเกริ่นก่อนว่านิลก็เป็นเด็กติดเกมส์คนนึงครับ และหนึ่งในเกมส์ที่นิลติดคือ Genshin Impact ครับ การจะเล่นเกมส์นี้ได้อย่างลื่นไหลนั้น ต้องใช้อุปกรณ์ที่ Spec ที่ค่อนข้างสูงครับ ตอนนั้นอยู่ดี ๆ นิลก็เกิดกิเลสในการซื้อ iPad Pro M2 มาเพื่อเล่น Genshin Impact อย่างลื่นไหลที่สุดแบบ 120 fps และก็ซื้อมาในที่สุด พอซื้อมาเท่านั้นแหละครับ มันก็เกิดความคิดว่า **”ชิบหายละ เงินที่จ่ายไปนี่เราไม่ได้วางแผนนี่หว่า น่าจะต้องหาเงินมาทบก้อนที่เราใช้จ่ายด้วยความวู่วามของเราไป”** และจังหวะนั้นเอง เพื่อนนิลก็ทักมาว่ากำลังหา Dev ที่จะมาพัฒนาระบบของที่บ้านเพื่อนให้หน่อย นิลเลยลองคุยกับเพื่อนดูครับ ว่ารายละเอียดงานเป็นยังไง เรทราคาเป็นยังไง สุดท้ายนิลก็ตัดสินใจรับมาและก็คิดในใจว่า “รอดแล้วโว้ยย” ## การบริหารเวลาเป็นยังไงบ้าง? นั่นแหละครับ ความชิบหายมาเยือน ช่วงแรก ๆ ก็เหมือนยัง Balance ไม่ค่อยได้ งานประจำให้ 8 ชมละ งานนอกจะกี่ชั่วโมงดี จะ Manage ยังไงให้งานหลักไม่เสีย งานนอกก็ต้องผ่านพ้นไปให้ได้ แน่นอนครับ สิ่งที่เราทิ้งไปคือออ… **เวลาพักผ่อน** หายไปแบบย๊าบบบบ เหลือแบบ 3-5 ชั่วโมง จากที่นอน 8-10 ชั่วโมงมาตลอด พังเรียบในช่วงนั้นเลยครับ ช่วงเดือนแรกของงานนอกนี่สภาพก็ยังโอเคอยู่ ยังไหว แต่พอมาถึงเดือนถัด ๆ ไปนั้น สภาพทุกวันอย่างกับซากเลยครับ แถมแทนที่ชีวิตจะพอแค่นี้ยังทำ Side Project อื่นอีก (ตอนนั้นทำอีก Project ชื่อ [Pomoration](https://pomoration.ninprd.com/) ด้วยความอินเรื่อง Productivity กับอยากลองใช้ Supabase แต่ตอนนี้ไม่ได้กลับไปแตะมันเลย 5555) รวมกับอีกเรื่องนึงคือเรา Underestimated งานไป คิดว่ามันจะเสร็จเร็วและง่ายแต่มันใช้เวลามากกว่าที่คิดไว้ เลยต้องใช้เวลาช่วงวันเสาร์อาทิตย์อีก บอกเลยว่ายับเยินมาก ๆ เกมส์ที่วางแผนว่าจะเล่นนั้น บอกเลยว่าไม่ได้เล่นเลย 55555 ## แล้วตอนไหนถึงรู้ว่าสุขภาพของตัวเองชิบหายแล้ว? เอาล่ะ มันมาสู่ Part ที่ชิบหายมากตอนที่นิลเริ่มเข้าโรงบาลและเริ่มรู้สึกว่า เราป่วยบ่อยไปหรือเปล่านะ เราเริ่มรู้สึกว่าไปทำงานทุกวันมันล้าหรือเปล่านะ คำถามต่าง ๆ เริ่มโถมมาที่เราและก็อย่างที่เคยพูดในบทความเรื่อง “[ลาพักผ่อน ลาทำไมนะ](why-we-should-take-a-leave.md)” นั่นแหละว่าเรารู้สึกได้เลยว่า Output ที่เรา Deliver ให้ทุก ๆ ฝั่งนั้น น้อยลงอย่างที่นิลสัมผัสได้เลย ผนวกกับความที่แอบรู้สึกไม่สนุกในงานมากขึ้น สุดท้ายเลยตกผลึกทางความคิดได้ว่าเราใช้ร่ายกายแบบชิบหายมาก ๆ ไปแล้ว ## ค่าโง่จากการไม่สนใจสุขภาพ ตอนนั้นนิลต้องเบิกประกัน 2 รอบเพราะว่าเป็นตาอักเสบรอบนึงกับเป็นหวัดไปอีกรอบ และผลกระทบจากการทำงานแบบไม่รู้จักเดือนไม่รู้จักตะวันก็คือครึ่งปีหลังนิลป่วยรัว ๆ แบบเบิกประกันไปหลายรอบมาก (ขอบคุณบริษัทที่มีประกันกลุ่ม 🙇🏻) ใช้ Sick Leave บ่อย แหละทำให้ต้องมา Recap หลังจากกลับมาหลังจากลาบ่อยครั้ง มันแอบมีความหงุดหงิดตัวเองแหละ เช่น ป่วยอีกและ วีคนี้เป็นหวัด วีคถัดไปก็เป็นอีก อะไรประมาณนี้ และก็ด้วยความที่ทำงานที่ใช้ Mouse กับ Keyboard เยอะแล้วไม่ยอมพัก ทำงานต่อเนื่องยาว ๆ ก็เลยทำให้เกิดอาการข้อมืออักเสบ Trigger Point ที่แขนเจ็บต่อเนื่อง ต้องพักตีแบต ถ่ายรูป เล่นเกมส์และห้ามนั่งทำงานนาน ๆ อีก ปัญหาสุขภาพตามมาเพียบ ## ถ้าย้อนกลับไป จะยังเลือกเงินอยู่ไหม? ถ้ามองย้อนไป สิ่งที่นิลพลาดคือเรื่องการ Estimate ความยากของงาน คิดว่างานง่าย ๆ และ Commit ไปว่าไม่เกิน 3 เดือนเสร็จ ซึ่งอันที่จริงมันใช้เวลาเยอะกว่านั้น ทำให้นิลต้องมาเบียดเวลาพักผ่อนส่วนตัว อ่านมาถึงตรงนี้แล้วนิลอาจจะต้องบอกว่านิลยังเลือกเงินอยู่ แต่!!!! ต้องมีการปรับระยะเวลาในการส่งมอบงานให้เหมาะสมกว่านี้เพื่อ Balance ทั้งเงินที่ได้รับกับการดูแลสุขภาพของเรา รวมทั้งการ Balance ความสุขในการทำงานอีกด้วย ซึ่งเรื่องนี้ก็เป็นเรื่องที่ต้องคุยกับลูกค้าด้วยเพื่อ manage expectation ของงานให้ตรงกัน ## สิ่งที่นิลได้รับจากการทำงานนอกนี้ 1. นิลเห็นความสำคัญของสุขภาพมากขึ้นละกัน จากตอนแรกที่แบบ จะนอนกี่โมงก็ได้ ตื่นไปทำงานได้คือโอเค ก็กลายเป็นนอนให้พอเพื่อ Refresh ร่างกายให้ได้พักผ่อนอย่างเต็มที่ 2. การรับงานมาแต่ละครั้ง อย่าคิดว่างานง่าย ๆ เด็ดขาด ถ้ามันง่ายจริง ๆ เขาไม่จ้างเราหรอก เขาทำเองก็ได้ ควรจะระมัดระวังในการประเมินส่วนต่าง ๆ ของงานว่าจะใช้เวลาเท่าไหร่และอาจจะต้องมีการเผื่อในส่วนของ Safety Factor ด้วย 3. คำตอบของคำถามต้น Blog อาจจะไม่มีคำตอบที่ตายตัวอยู่จริง ๆ ครับ หรือบางทีมันอาจจะเป็นคำตอบ ณ ช่วงเวลานั้น ๆ ของชีวิตว่าอะไรสามารถตอบโจทย์เราได้ ณ ตอนนั้น แต่อย่างไรก็ดีเราควรที่จะ Balance ระหว่างการหาเงินกับการรักษาสุขภาพให้ดีเพื่อที่จะได้ยืนระยะในการทำงานและได้ใช้ชีวิตกับคนที่เรารักอย่างมีความสุขครับ --- จบไปแล้วนะครับ อีกบทความที่เป็น Experience Sharing ช่วงนี้นิลไม่ได้เขียน Blog เลยเพราะหมดแรงกับงานของออฟฟิศนิดนึงครับ จบ Blog นี้ไปอาจจะขอพักยาว ๆ ถึงปลายธันวาเลย น่าจะเป็นเกี่ยวกับการ Reflect ตัวเองในครึ่งปีหลังนี้ครับ ยังไงก็สามารถรอติดตามกันได้ ถ้าใครมี Feedback ตรงไหนสามารถทักมาบอกกันได้เลยนะครับ ยังน้อมรับ Feedback อยู่ตลอด หรือถ้ามี Topic ที่น่าสนใจก็ทักมาบอกกันได้ครับ ตอนนี้ Stock เริ่มวนแต่เรื่องงานแล้ว 🥲 มา Balance การทำงานกับสุขภาพกันเถอะ นิล --- # ย้ายสายมาได้ยังไง - URL: https://blog.ninprd.com/blog/how-i-enter-software-engineer-path/ - Published: 2023-10-14 - Tags: experience-sharing, software-engineer - Summary: วันนี้มาสู่หัวข้อที่มีคน request เข้ามาประมาณนึงเลยว่า “ย้ายสายมาได้ยังไง” วันนี้นิลจะมาเล่าประสบการณ์คร่าว ๆ ครับ ไม่พูดพร่ำทำเพลงดีกว่า ไปลุยกันเล้ย! วันนี้มาสู่หัวข้อที่มีคน request เข้ามาประมาณนึงเลยว่า **“ย้ายสายมาได้ยังไง**” วันนี้นิลจะมาเล่าประสบการณ์คร่าว ๆ ครับ ไม่พูดพร่ำทำเพลงดีกว่า ไปลุยกันเล้ย! ต้องเล่าย้อนไปสมัยตอนขึ้นปี 3 ครับ ตอนนั้นนิลก็ยังสมองโล่งอยู่ว่าจบไปแล้วจะทำอะไรดี เพราะการเรียนในภาค IE นั้นมันกว้างและสร้างทางเลือกอาชีพให้เราได้เยอะมาก (แต่ก็ทำให้คนหลงทางได้หลาย ๆ คนเลย) แต่พอดีเทอมนั้นมีวิชาเรียนวิชานึงชื่อว่า **Computer And Information Technology for Industrial Engineer (COMP IT/IE)** ซึ่งในวิชานี้จะได้เรียนอะไรเยอะมาก ๆ ทั้งเรื่องของ Diagram ต่าง ๆ (Use case, 3-NF, etc.), Network Layer รวมไปถึงการสร้างเว็บไซต์ด้วย HTML, php และการเขียน SQL เพื่อดึงข้อมูลออกมาจากฐานข้อมูล เรียกได้ว่าเรียนมันเกือบทุกอย่างเลยแหละ (แต่ไม่ลึกซักอย่าง) ด้วยความที่อาจารย์เขาอยากให้นิสิตเข้าใจวิชากันมากขึ้น อาจารย์ก็สั่งโปรเจคกลุ่มเป็นให้ทำเว็บไซต์ที่ต้องมีการใช้สิ่งที่เรียนมาทั้งหมด โดยมีเวลาให้ 2 อาทิตย์นิด ๆ ตัวนิลและเพื่อนในกลุ่มก็มาคุยกันเพื่อจะแบ่งงานกันไปทำ จังหวะนี้แหละครับ จุดพลิกชีวิตเลย พอเพื่อน ๆ เห็นว่านิลพอเขียนได้ เพื่อน ๆ นิลบอกว่า _“ไอนิล มึงทำวิชานี้ไปเลยนะ เดี๋ยวพวกกูไปช่วยวิชาอื่นให้มึงแทน”_ ใช่ครับ เพื่อน ๆ ผมไม่อยากมาเรียนรู้ Code กันเลยให้นิลจัดการทั้งโปรเจคคนเดียวเลย จากนั้นนิลก็เริ่มต้องศึกษาศาสตร์นี้ทั้งหมดเลยเพื่อปั้นโปรเจคนี้ให้รอดใน 2 อาทิตย์ด้วยตัวคนเดียวให้ได้ โชคดีที่คุณพ่อของนิลทำงานในสายงานนี้พอดี นิลเลยเอาของที่นิลสงสัยไปถามคุณพ่อแล้วก็สามารถพัฒนาโปรเจคเสร็จภายใน 2 อาทิตย์ได้โดยสวัสดิภาพ จนช่วงจบปี 3 นิลไปฝึกงานแบบสหกิจศึกษา (ฝึกงาน 6 เดือนช่วง Summer ปี 3 ถึงปี 4 เทอม 1 และทำ Senior Project ร่วมกับทางบริษัท) ที่ True Digital Group ซึ่งจริง ๆ ต้องเข้าไปเป็น Data Scientist แต่ว่าพอตอนจะถึงวันที่ฝึกงานแล้ว ทางทีมที่รับไปเห็นว่าตอนที่นิลจะเข้าไปฝึกเข้าจะไม่มี Resource เวลามา Babysit ในเรื่อง Data ขนาดนั้น ด้วยความที่ทีมเขาเป็นทีมที่ทำ Web กับ App และมีแผนที่จะทำเว็บไซต์แพลตฟอร์มใหม่อยู่และก็เห็นนิลมี Profile เคยเขียนเว็บมาอยู่บ้าง เขาเลย Offer ให้เปลี่ยนตำแหน่งเป็น Dev ไป ทีนี้ไอเราก็ชอบตอบรับทุกโอกาสที่เข้ามาซะด้วยสิ ทีนี้ก็ว้าวุ่นเลย ก็รับ Offer โดยที่ตอนนั้นยังไม่รู้ด้วยซ้ำว่า Dev คืออะไรด้วยซ้ำ 555555 เขาก็บอกให้เราไปเรียนมา 1 2 3 4 อย่าง นิลก็ตอบรับและกลับไปก้มหน้าก้มตาเรียนมาครับ สุดท้ายก็ได้ไปเขียนเว็บไซต์ที่ใช้ [Nuxt 2](https://v2.nuxt.com/) เป็น Frontend และใช้ Node.js + [Express](https://expressjs.com/) เป็น Backend (ขอไม่พูดถึงรายละเอียดของโปรเจคมาก) ทำเป็นโปรเจคระยะเวลา 6 เดือนที่ระหว่างทำก็ยิ่งตอกย้ำความชอบการได้แก้ไขปัญหาและการฝึกวิธีคิดมากขึ้น ด้วยสิ่งที่ประสบมาทั้งหมดทำให้นิลเลือกอยากที่จะทำงานในสายนี้ครับ หลังจากจบฝึกงาน นิลก็เข้าสู่โค้งสุดท้ายของชีวิตมหาลัย (ปี 4 เทอม 2) เป็นเทอมที่ชิวมาก และด้วยความชิวทำให้นิลมีเวลาที่จะไปนั่งไถ LinkedIn, JobsDB หรือ Platform หางานอื่น ๆ เพื่อหางานในตำแหน่ง Software Engineer ได้มากกว่าคนอื่นเขา และก็ทำให้รู้ความจริงของโลกใบนี้ว่า บริษัทในไทยส่วนใหญ่จะรับคนที่ใช้ React เป็นหรือมีประสบการณ์ในการใช้ React ทีนี้ก็ว้าวุ่นอีกทีเลย เรียน Vue + Nuxt มาตลอด 55555 นิลก็เลยใช้ช่วงเวลาที่เหลืออยู่ในระบบการศึกษานั่งเรียนพื้นฐาน React (ด้วยความที่มีและเริ่มทำเว็บไซต์ด้วย React แบบงู ๆ ปลา ๆ เสร็จไปเว็บนึง (ตอนนี้เว็บนั้นสูญสลายไปละ ไม่เหลือซากอารยธรรมให้ดูละอะสิ 555) แล้วพอเริ่มมีความมั่นใจก็เริ่มยื่นสมัครไปหลายที่ จนสุดท้ายได้มีโอกาสมาร่วมงานกับ Skooldio ครับ ## สิ่งที่อยากชี้ให้เห็นคือ 1. การวางแผนที่ดีย่อมทำให้เรามีโอกาสมากกว่าคนอื่น จากในที่นิลเล่าไป จริง ๆ นิลวางแผนว่าจะฝึกงานแบบสหกิจศึกษาตั้งแต่เข้าไปในภาค IE แล้ว ทำให้พอนิลฝึกงานเสร็จ นิลมีเวลาในเทอม 2 เพื่อพุ่งไปยังเป้าหมายอาชีพที่ต้องการมากกว่าคนอื่น ๆ อยู่นิดนึงครับ 2. การศึกษาตลาดแรงงานเป็นเรื่องสำคัญมาก ถ้าตอนนั้นนิลคิดแค่ว่านิลเรียน Nuxt มาแล้วและนิลเอาประสบการณ์ Nuxt ไปหว่านหางานโดยที่ไม่ Skim ดูก่อนว่าส่วนใหญ่เขารับคนที่มีประสบการณ์ใน Framework/Library อะไร นิลอาจจะไม่ได้มานั่งเล่าเรื่องแบบนี้อยู่ก็ได้ 3. ทุกวิกฤต มีวิกฤตอยู่เสมอ และก็มีโอกาสอยู่เช่นกัน เช่นอย่างตอนที่เพื่อน ๆ นิลส่งงานวิชานี้มาให้นิลทั้งหมดแล้ว วิกฤตก็เกิดทันที และมันก็มีวิกฤตอยู่ในนั้นตลอดนะ 555 แต่ทั้งนี้ทั้งนั้นในช่วงเวลาที่นิลปั่นงานวิชานี้ เพื่อน ๆ ก็ช่วยวิชาที่เหลือให้นิลและก็ชวนนิลเข้ากลุ่มติวแบบ One Night Miracle และนิลก็รอดมาได้ด้วยแหละ 4. ความสม่ำเสมอเป็นสิ่งที่สำคัญมาก การที่นิลสามารถทำงานสายที่นิลไม่เคยทำมาก่อนได้อย่างราบรื่น อาจจะเป็นเพราะพี่เลี้ยงฝึกงานดี โปรเจคไม่มีความซับซ้อนขนาดนั้น แต่อีกอย่างนึงแน่ ๆ คือความสม่ำเสมอในการฝึกการเขียน/การพัฒนา Logic ให้ใช้บ่อย ๆ จนเราสามารถทำงานได้ และทำได้เร็วขึ้นเรื่อย ๆ ด้วย การเล่าเรื่องทั้งหมดมันเป็นไปด้วยการเล่าเพียงมุมเดียว แต่จริง ๆ นิลก็เป็นเด็กธรรมดาคนนึงที่ชื่นชอบการเล่นเกมส์ ดูการ์ตูนแหละ นิลก็ไม่ได้ใช้เวลาแบบ Productive แบบ 100% 200% 300% ขนาดนั้น เวลาที่นิลเล่านิลก็เล่าส่วนที่มันเกี่ยวกับตัวเรื่อง ไม่ได้เล่าแบบ เวลา 100% นิลแบ่งไปทำอะไรบ้าง (เพราะจริง ๆ นิลก็ไม่ได้ Track ไว้เหมือนกัน) แต่ยังไงก็ดี ไม่อยากให้คนอ่านแล้วแบบเครียดว่าชั้นเตรียมตัวไม่ดีจัง ชั้นไม่เก่ง ทำไมนิลบริหารเวลาดี วางแผนดี จริง ๆ มันไม่เป็นแบบนั้น 100% นะครับ นิลก็เหลวแหลกประมาณนึงเหมือนกันแหละ --- # ลาพักผ่อน ลาทำไมนะ? - URL: https://blog.ninprd.com/blog/why-we-should-take-a-leave/ - Published: 2023-10-01 - Tags: experience-sharing - Summary: คำถามนี้อาจจะได้ยินกับพนักงานบริษัทหลาย ๆ คนที่กำลังนั่งทำงานแล้วก็กำวันลาในมือโดยที่ยังไม่มีเป้าหมายในการลาขนาดนั้นนะครับ แล้วพอเกิดคำถามนี้แล้วไม่ได้ใช้วันลาครับ อาจจะถามว่าแล้วลาไปทำไม? เราไปดูกันเลยดีกว่าครับ > ลาพักร้อน ลาไปทำไม? คำถามนี้อาจจะได้ยินกับพนักงานบริษัทหลาย ๆ คนที่กำลังนั่งทำงานแล้วก็กำวันลาในมือโดยที่ยังไม่มีเป้าหมายในการลาขนาดนั้นนะครับ แล้วพอเกิดคำถามนี้แล้วไม่ได้ใช้วันลาครับ อาจจะถามว่าแล้วลาไปทำไม? เราไปดูกันเลยดีกว่าครับ สวัสดีครับ นิลนะครับ ห่างหายจากการเขียนไปซักพักนึง ช่วงก่อนหน้านี้นิลเป็นไข้หวัดใหญ่ไปแล้วก็เป็นหวัดต่อ รวมกับการที่งานช่วงนี้ก็ท่วมท้นจนหาช่องว่างเวลามาเขียนได้น้อยครับ แต่ยังไงก็ดี เรากลับมาที่หัวข้อเราดีกว่า ทำไมเราต้องลาพัก ทำไมเราถึงไม่ทำงานไปเรื่อย ๆ ล่ะ ลาไปก็ไม่ได้ทำอะไรอยู่แล้วหนิ บางทีเราอาจจะรู้สึกว่าการที่เราอยู่ทำงานนั้นมัน Impact กว่า หรือสนุกกว่า เพราะลาไปก็เหมือนเอาเวลาไปทิ้ง ไม่ได้ทำตัวเองให้รู้สึกมีประโยชน์เท่าการนั่งทำงาน ใด ๆ คือไม่รู้สึกอยากใช้วันลานั่นแหละ นิลอาจจะยกตัวอย่างตัวเอง (อีกแล้ว) นิลเคยแบบบ้างานหนักมาก ๆ ช่วงนึงครับ แบบทำงานประจำ 5 วัน งานนอกอีก 2 วัน แล้วก็เขียนเว็บเล่นในเวลาว่างไปอีก คือแทบจะเรียกว่าทำงานทุกวันและทุกชั่วโมงเลยก็ว่าได้ ตอนนั้นนิลรู้สึกว่ามันสนุกครับ แบบ โห ได้เขียนและออกแบบเว็บแบบ 7/24 แม่งโคตรสนุกเลย แต่วันนึงนิลก็พบว่าในความสนุกนั้นจริง ๆ มันล้ามากเลยครับ แบบตอนนั้นรู้สึกว่า พอทำไปเรื่อย ๆ แล้ว Output งานที่ Deliver ให้ทุกฝั่งนั้นน้อยลง อาจจะไม่เยอะจนคนอื่นรู้สึกได้ แต่เป็นตัวเราเองที่รู้สึกได้ว่ามันน้อยลง และทำให้เราเริ่มไม่สนุก รู้สึกเหนื่อยมาก จนสุดท้ายช่วงที่นิลส่งมอบงานนอกเสร็จ นิลก็ป่วยและได้ใช้ Sick Leave หลายวันครับ เอ้า! แล้วมันเกี่ยวอะไรกับการลาล่ะ นิลจะบอกว่าหลังจากที่ Sick Leave ไป แล้วกลับมามันเหมือนการ Refresh ตัวเองอะครับ ช่วงที่เราลาไปเราก็อาจจะมีแตะ ๆ งานนิดหน่อย แต่โดยรวมคือเราได้ Clear สมองเรื่องงานออกไปเยอะมาก ทำให้สุดท้ายเราก็กลับมา Fresh อีกครั้งและกลับมาแบบโคตรโหด โคตรอันตราย โคตรไร้เทียมทานอีกครั้งนึงครับ เราจะรู้สึกว่าเรากลับมาใช้เวลารื้อฟื้นแป๊ปนึง แล้วก็กลับมาสามารถทำงานได้อย่างต่อเนื่องเลยครับ ซึ่งในจุดนี้แหละครับที่นิลอยากจะบอกไว้ว่าบางทีเราทำงานไปเรื่อย ๆ มันเกิดความล้า ความเหนื่อยสะสม โดยที่เราไม่รู้ตัว แล้วเราอาจจะผูกตัวเองกับงานมากเกินไปและสุดท้ายอารมณ์ของเราจะผูกกับงานไปด้วยในที่สุด ซึ่งถ้างานออกมาราบรื่นไปเรื่อย ๆ เลย ชีวิตก็จะ Happy มาก ๆ แต่ในวันที่งานเริ่มเนือย เราก็อาจจะเริ่มไม่มีความสุขและส่งผลถึงหลาย ๆ อย่างในชีวิตมากขึ้น จริง ๆ ตอนเรียนนิลเคยมีบทเรียนนึงในซักวิชานึง (ที่นิลจำวิชาไม่ได้) ที่เป็นเรื่องของ Learning Curve ด้วย แต่ด้วยความที่นิลก็จบมาปีนึงแล้ว นิลก็หลงลืมไปบ้างนิดนึง 55555555 แต่คร่าว ๆ เป็นเกี่ยวกับว่าการที่เราทำ Repetitive Task นึงไปเรื่อย ๆ โดยที่มีเวลาพักที่เหมาะสมจะส่งผลให้สามารถทำ Task ได้เร็วกว่าการที่ทำ Task นั้น ๆ ไปเรื่อย ๆ โดยไม่พัก ซึ่งมันก็อาจจะไม่ได้ตรงกับ Case เรื่องของงานฝั่ง Tech ขนาดนั้นหรอก แต่นิลคิดว่ามันก็ค่อนข้างเอามาปรับใช้กับงานฝั่ง Tech ในส่วนที่ว่าถ้าเราพักในปริมาณที่เหมาะสม เราอาจจะสามารถทำงานได้อย่างมี Productivity ที่สูงขึ้นกว่าการที่เรานั่งทำงานไปเรื่อย ๆ ก็เป็นได้ --- จบไปแล้วนะครับกับบทความเรื่องการพักผ่อน Blog โดยรวมของนิลอาจจะมีแต่งาน งาน งาน จนคนอ่านเอียนแล้วมั้ง แต่เพราะนิลเอาชีวิตผูกกับงานประมาณนึงแหละครับ นั่นเลยเป็นสาเหตุว่า Blog ของนิลถึงมีแต่พูดเรื่องงานอย่างเดียว หลังจากนี้นิลคงพยายาม Balance เวลาในการทำทุก ๆ อย่างมากขึ้นครับ เพื่อให้มีหัวข้ออื่น ๆ มาแชร์กันใน Blog กับเพื่อให้ไม่ป่วยอีก ช่วงนี้ป่วยบ่อยไป รับไม่ได้ 5555TT5555 ยังไงก็ขอบคุณทุกคนที่อ่านมาถึงตรงนี้นะครับ ยังทักมา Feedback กันได้เหมือนเดิมนะครับ พร้อมรับคำติชมเสมอครับ 💪💪 ขอให้ทุกคนได้พักผ่อนอย่างมีประสิทธิภาพครับ นิล ### Part รั่ว จริง ๆ มีได้ชื่อ Blog นี้จากเพื่อนมาชอบอันนี้มาก แต่นิลเขียนชื่อกับส่วนเปิดไปแล้ว สุดท้ายเลยไม่ได้ใช้ชื่อนั้น แต่ยังไงก็ชอบชื่อนั้นมากเลยขอเอามาเขียนไว้ Part นี้ 55555 ซึ่งชื่อหัวข้อก็คือออออ > ลาพักร้อนแล้วดียังไง สมองฉับไว ร่างกายแข็งแรง --- # แค่เริ่มก็ชนะแล้ว - URL: https://blog.ninprd.com/blog/start-to-win/ - Published: 2023-09-09 - Tags: experience-sharing - Summary: คำพูดนี้นิลได้มาจากพี่ที่นิลไปปรึกษาเรื่องการเขียน Blog มานะครับ ได้ยินครั้งแรกมันรู้สึกทรงพลังมากเลยครับ แบบเอาว่ะ แค่เริ่มก็ชนะแล้ว แต่นิลค่อนข้างแปลกใจที่หลังจากที่นิลได้รับคำพูดนี้มานั้น ในวันต่อมานิลก็ได้รับคำพูดนี้จากพี่อีกคนนึง แล้วแค่เริ่มก็ชนะจริงไหม เรามาดูกันดีกว่าครับ > _แค่เริ่มก็ชนะแล้ว_ คำพูดนี้นิลได้มาจากพี่ที่นิลไปปรึกษาเรื่องการเขียน Blog มานะครับ ได้ยินครั้งแรกมันรู้สึกทรงพลังมากเลยครับ แบบเอาว่ะ แค่เริ่มก็ชนะแล้ว แต่นิลค่อนข้างแปลกใจที่หลังจากที่นิลได้รับคำพูดนี้มานั้น ในวันต่อมานิลก็ได้รับคำพูดนี้จากพี่อีกคนนึง แล้วแค่เริ่มก็ชนะจริงไหม เรามาดูกันดีกว่าครับ ตอนนิลได้ยินครั้งแรกนิลรู้สึกว่ามันเท่นะ แต่ก็แอบประหลาดใจนิด ๆ แบบงงว่าคำนี้มันมาจากไหน แล้วรู้สึกว่ามันเหมือนเป็นคำพูดที่ให้กำลังใจเฉย ๆ หรือเปล่านะ หรือว่าแค่แบบคำพูดติดปากเฉย ๆ นิลเลยกลับมาลองคิดว่าที่นิลลองเริ่มเขียนมาทั้งหมดนั้น มันชนะอะไรบ้าง นิลลอง List เล่น ๆ ออกมาดูได้ประมาณนี้ครับ 1. ชนะความกลัวของตัวเอง: ได้ลองเขียนบทความจากที่ตอนแรกกล้า ๆ กลัว ๆ ในเรื่องของการสื่อสาร กลัวว่าจะพิมพ์ให้คนอื่นอ่านไม่รู้เรื่อง กลัวการแสดงทัศนะของตัวเองออกไป หลังจากเขียนไปเรื่อย ๆ ก็มีความกล้าที่จะสื่อสารมากขึ้น 2. ชนะความขี้เกียจ: ตอนนี้หลังจากที่ตั้งปณิธานกับตัวเองแล้วว่าจะทำออกมาเป็น Bi-weekly content นิลก็สามารถทำให้มันเสร็จในเวลาได้ โดยที่มันไม่ใช่การทำชุ่ย ๆ หรือส่งเดชให้เสร็จแต่มันยังเป็นความรู้สึกที่อยาก Share ให้คนอื่น ๆ จริง ๆ บางทีคนอ่านมาตรงนี้อาจจะแบบรู้สึกว่า โห่ ชนะแค่เนี้ย โคตรจิ๊บจ๊อยเลย แต่ว่าในความเป็นจริงแล้วบางทีเราอาจจะต้องการการชนะทีละนิดไปเรื่อย ๆ มากกว่าการรอ Huge Win ที่ไม่รู้ว่าจะมาถึงเราเมื่อไหร่นะครับ สิ่งนี้อาจจะคล้าย ๆ กับตอนที่นิลเขียนเรื่องความกลัวกับเวลาและโอกาสนะครับ ว่าการที่เราประวิงเวลาไปเรื่อย ๆ โดยที่มันเป็นการรอสิ่งที่มันอาจจะไม่มาถึงเนี่ย เราเสียเวลาไปมากเลยนะครับ และสุดท้ายคนที่เลือกที่จะชนะจิ๊บจ๊อยอย่างที่คุณว่า เขาอาจจะรู้สึกว่าเขาประสบความสำเร็จหรือมีความสุขมากกว่าคนที่รอ Huge Win ก้อนโตก็ได้ครับ นอกจากนี้การที่เราชนะไปเรื่อย ๆ มันเหมือนเรามี Progress ไปเรื่อย ๆ อะครับ เราอาจจะกำลัง Approach เส้นชัยหรือสิ่งที่คนที่เขารอ Huge Win ปรารถนาอยู่ก็ได้ครับ สุดท้ายนิลอาจจะมา Share อีกซักเล็กน้อยนะครับว่าจากการที่นิลลองเขียนบทความมา 4-5 บทความเนี่ย นิลได้อะไรจากการทำบ้าง 1. ได้สร้างเสริมวินัย: อย่างที่บอกว่านิลได้ Commit กับตัวเองไว้ว่าจะเขียนบทความเป็น Bi-Weekly นิลก็สามารถ Stock หัวข้อบทความและเอาแต่ละหัวข้อมาเขียนในกรอบเวลาที่กำหนดได้ // ทำหน้าภูมิใจเล็กน้อย <(˶ᵔᵕᵔ˶)> 2. ฝึกการคิดอย่างเป็นกระบวนการ: นิลเชื่อว่าถ้านิลสามารถเขียน Blog แบบยาวลงมาเป็นพรืดได้โดยที่หัวข้อกับเรื่องราวที่จะสื่อมันถูกต้องหมด กระบวนการการคิดของนิลน่าจะถูกต้องและสามารถสื่อสารกับคนอื่น ๆ ได้อย่างรู้เรื่องและถูกต้อง 3. ฝึกการเขียนในภาษาเขียน: นิลรู้สึกว่ามีน้อยครั้งมากที่คนเราจะโดน Assign ให้เขียนภาษาเขียนและเมื่อถูก Assign มาก็จะรู้สึกกระอักกระอ่วนใจที่จะทำเพราะเราไม่ได้เขียนภาษาในเชิง/แง่มุม/ระดับภาษาการเขียนบ่อยครับ ซึ่งนิลคิดว่าถ้าเขียนบ่อย ๆ ก็น่าจะทำให้เราได้ฝึกตรงนี้ไป 4. ได้ลอง Share มุมมอง/แง่คิด/ประสบการณ์ในมุมมองของตัวเอง: หลาย ๆ คนอาจจะมีความรู้สึกว่าอยาก Share แต่ไม่มีพื้นที่/ความกล้าพอที่จะ Share นิลรู้สึกว่านิลแค่มาลอง Share และหวังว่ามันจะเป็นประโยชน์กับคนที่มาอ่านไม่มากก็น้อยแหละ นอกจากฝั่ง Blog ที่เป็นบทความ ในส่วนเว็บไซต์นิลก็มีโอกาสได้ลองเล่น Libraries/Tools ใหม่ ๆ ที่อยากจะไปลองเล่นแต่อาจจะไม่มีโอกาสใน Project ของบริษัท ก็ได้เอามาลองเล่นบ้าง เช่น [@shadcn/ui](https://ui.shadcn.com/), [Astro](https://astro.build/), [trpc](https://trpc.io/) และอื่น ๆ ที่อาจจะเอามาใส่ในอนาคต ซึ่งถ้านิลไม่คิดอุตริเขียน Blog เนี่ย นิลอาจจะไม่ได้มีโอกาสเหล่านี้ --- จบไปอีก Blog ครับ ช่วงนี้นิลเหมือนชีวิตติด Loop นิดนึง หลังจากที่ Blog เป็น Bi-Weekly แล้วมีความอยากลองเล่น Libraries/Tools ต่าง ๆ ก็จะใช้เวลาประมาณ 1 อาทิตย์ในการเพิ่ม Feature และอีก 1 อาทิตย์ในการเขียนและ Proof Read อาจจะต้องหาเวลาหรือทำ Time Blocking ให้ดีกว่านี้ละ เพื่อให้ไม่รู้สึกว่ามัน Loop จนเกินไป ยังไงก็ขอบคุณทุกคนที่อ่านมาถึงตรงนี้นะครับ มี Feedback อะไรก็สามารถทักมาได้ IG, LinkedIn ทักมาได้หมดเลยครับ อยากได้ Feedback เยอะ ๆ จะได้นำไปพัฒนาและปรับปรุงให้ดีขึ้นครับ ครบ 10 บทความแล้วเดี๋ยวมา Redesign Web นะครับ ตอนนี้เอาง่ายไว้ก่อน ยังไงก็ขอบคุณทุกคนมากครับ ขอให้สนุกกับการเริ่มต้นทำสิ่งใหม่ ๆ นะครับ นิล --- # โยกย้าย บ๊ายบาย Medium - URL: https://blog.ninprd.com/blog/moved-from-medium-to-personal-site/ - Published: 2023-08-26 - Tags: experience-sharing - Summary: วันนี้มาคุยกันว่าด้วยเรื่องการย้ายจาก Medium มาเป็น Blog Post ที่เป็น Website อีกตัวนะครับ ซึ่งเป็นการเขียน Code เพื่อดึงข้อมูลจาก Notion มาแสดงผลยังหน้า Website ของตัวเองนะครับ เหตุผลที่ผมย้ายมาคืออะไร เดี๋ยวไปดูกันเลยครับ > ⚠️ นิลไม่ได้รับ Sponsor จาก Product ที่นิลพูดถึงใน Blog Post นี้นะครับ แต่ถ้าอยาก Sponsor ก็ติดต่อมาได้ครับ 🙂 สวัสดีครับทุกคน วันนี้นิลอาจจะมาใน Topic ที่มีการผสานเรื่องของ Technical เข้ามาในสัดส่วนที่ค่อนข้างมาก ยังไงเดี๋ยวจะเล่าเป็น General ไปก่อน ถ้าถึงจุดที่เป็น Technical นิลจะคั่นเอาไว้นะครับ เผื่อใครที่ไม่ได้อยากอ่าน Part ที่เป็น Technical จะได้อ่านส่วนที่เป็น General แล้วข้ามไปตอนจบเลยครับ วันนี้มาคุยกันว่าด้วยเรื่องการย้ายจาก Medium มาเป็น Blog Post ที่เป็น Website อีกตัวนะครับ ซึ่งเป็นการเขียน Code เพื่อดึงข้อมูลจาก Notion มาแสดงผลยังหน้า Website ของตัวเองนะครับ เหตุผลที่ผมย้ายมาคืออะไร เดี๋ยวไปดูกันเลยครับ ต้องเท้าความไปถึงตอนแรกที่นิลเขียน Blog นะครับว่าทำไมถึงเลือก Medium เป็น Platform ในการเขียนและเผยแพร่ Blog ซึ่งเหตุผลของนิลมีอยู่หลายข้อเลยคือ 1. เป็น Platform ที่ใช้กันอย่างแพร่หลายอยู่แล้ว ทุกคนเข้าถึงง่าย ไม่น่าอันตรธานหายไปง่าย ๆ 2. มีการทำ SEO ที่ดี สามารถทำให้เราถูกค้นหาจาก Google ได้ง่าย (มั้ง) 3. มีการเก็บสถิติจากการเข้าชมให้ สามารถนำมาวิเคราะห์เป็นตัวเลขได้ 4. (สำคัญที่สุด) Free to use ทั้งฝั่งผู้ใช้งานกับผู้สร้าง Content และพอนิลคิดจะทำจริงจังขึ้นมา นิลเลยไป Manage content ใน [Notion](https://notion.so/) โดยแบ่ง Content ออกเป็น Platform ที่จะปล่อย (เผื่อการปล่อยในหลาย ๆ Platform ในอนาคต 👀) และการแบ่งเป็น Status ของ Content นั้น ๆ ซึ่ง Workflow สำหรับการปล่อยบทความของนิลก็กลายเป็น ซึ่งในตอนแรกก็ไม่มีปัญหาอะไรหรอกครับ จนกระทั่งวันนึงผมพิมพ์ข้อความใน Blog ผิด ทำให้ผมต้องแก้ทั้งใน Medium และ Notion นี่แหละครับ จุดที่ทำให้นิลเริ่มคิดที่จะหาวิธีแก้ เพราะว่านิลไม่อยากจะ Double Work เวลาแก้งานแล้วก็ต้องทำ 2 ที่ นิลเลยเริ่มคิดว่าอยากทำให้ซักที่เป็น Single Source of Truth เพื่อที่จะได้แก้ที่เดียวและส่งผลให้ทั้ง 2 ที่มีหน้าตาข้อมูลที่เหมือนกัน พอมาถึงตรงนี้นิลเลยไปหาตัวเลือกว่ามีตัวเลือกไหนบ้างที่เป็นทั้ง Content Management System (CMS) และสามารถ Publish Content ในรูปแบบ Website ได้ซึ่งนิลเจอหลายตัวที่สามารถ Management Content ได้ แต่สุดท้ายก็จะมาติดปัญหาเรื่อง Pricing อยู่ดี ด้วยความที่หลาย ๆ Platform จะมี Free tier ที่ไม่ได้สูงขนาดที่เรามั่นใจว่าช่วงแรกเราจะไม่ไปชนจุดนั้นได้ สุดท้ายด้วยความที่มีพื้นฐานด้านการเขียน Code เลยเลือกที่จะใช้ Notion เป็น Platform ที่เก็บข้อมูลและเขียน Website เพื่อดึงข้อมูลจาก Notion ไปแสดงผลครับ — เข้า Part Technical แล้วจ้า ✨ — ## เลือกจะเขียน Web แล้ว เลือก Framework/Library อะไร? โอเค ถ้าจะเริ่มตรงนี้ต้องย้อนกลับไปที่เขียนไปข้างต้นถึงจุดที่ทำไมนิลเลือก Medium นะครับ ถ้าไม่นับเรื่องของความเป็น Platform ของ Medium ก็จะเป็นเรื่องการที่ทำ SEO ดี มี Analytics และ Free to use ครับ พอมามองจุดนี้ นิลคิดว่าเรื่องของ Analytics กับ SEO ในช่วงแรกนั้นอาจจะไม่จำเป็นเท่าไหร่ เพราะว่าคนที่เข้ามาอ่านน่าจะเป็นคนรู้จักนิลอยู่แล้ว ที่จะเห็นผ่านจากการแชร์ใน Instagram ส่วนตัวหรือ LinkedIn เพราะงั้นนิลเลยยังไม่อยากได้ Analytics ขนาดนั้นครับ แต่อาจจะต้องคิดเผื่อ SEO นิดนึงครับ พอเป็นเรื่องของ SEO เนี่ย ก็แปลว่านิลต้องหา Library/Framework ที่สามารถทำ Server-side Rendering (SSR) หรือ Static Site Generation (SSG) เพื่อให้ตัวหน้าเว็บถูก Render และมี Content ที่จะทำ SEO ได้อยู่ฝั่ง Server นิลเลยตัด Library/Framework ที่เป็น Client-side Rendering ไปก่อนครับ ด้วยความที่สุดท้ายนิลมองว่าอยากได้ Performance และเรื่องของการเป็นแค่เหมือนเว็บที่เอาไว้อ่านบทความนิลเลยเลือก [Astro](https://astro.build/) มาทำเป็น Server-side Rendering ด้วยเหตุผลดังนี้ครับ 1. เป็น Framework ที่มี Integrations กับ Frontend Library/Framework หลายตัว เช่น React, Preact, Vue, Svelte, Solid, etc. ทำให้สามารถเขียน Component ด้วย Syntax ของ Frontend Library/Framework ต่าง ๆ ได้ โดยใน Project นี้นิลใช้เป็น Astro + React ซึ่งปกติก่อนหน้านี้นิลเขียน React อยู่แล้ว การเขียน React ใน Astro ก็ทำให้ Feel Homie มาก ๆ ครับ 2. เราสามารถเลือกได้ว่าเราจะทำ SSR SSG หรือ Hybrid Rendering โดยเลือกได้ว่าหน้าไหนเราจะทำ SSR หรือ SSG 3. ไม่โหลด JavaScript ไปยัง Browser (ถ้าเราไม่ทำให้มันเรียก JavaScript) ทำให้หน้า Website โหลดเร็ว Performance ดีมาก 4. มี Integration กับ TailwindCSS ซึ่งปกตินิลใช้ TailwindCSS ในการทำ Styling อยู่แล้ว ข้อนี้เป็น 1 ในปัจจัยตัดสินใจหลักเลยครับ 5. ตอนนี้นิลยังคงสับสนกับการ cache ของ NextJS ตัว app directory และก็ยังงง ๆ เรื่องของ data fetching ของ Version ใหม่ของมันอยู่ + Library บางตัวก็เหมือนจะยังไม่ support Next Version ใหม่ นิลเลยมาลองใช้ของที่ใกล้เคียงกันครับ 6. สามารถเขียน Server Endpoint ได้ จริง ๆ ก็คือสามารถเขียน API Route ข้างใน Frontend Repo ได้เลย ซึ่งอาจจะทำให้นิล Extend ของเพิ่มในอนาคตได้ครับ  ## โอเค ได้ Framework ที่จะใช้แล้ว ไปต่อที่ CMS กัน อย่างที่บอกไปตอนแรกว่านิลใช้ Notion ในการ Manage Content แต่ตอนที่เลือกตอนแรกก็มีความไปหาตัวเลือก Headless CMS เจ้าอื่น ๆ เช่น Strapi, Storyblok, WordPress, Webflow, etc. แต่ CMS ส่วนใหญ่จะมาติดปัญหาที่ Pricing ที่ค่อนข้างสูงหรือถ้าไม่อยากจ่ายราคาแพงก็ต้อง Self-Hosted เอง หรืออีกปัญหาคือ Free tier ที่นิลไม่รู้ว่าจะชนเมื่อไหร่ กลัวต้องมาลำบาก Migrate ของถ้ามันชนเร็ว นิลเลยกลับมามอง Notion ที่เคย Setup ไว้อยู่เพื่อ Manage Content อยู่แล้ว รวมทั้ง Notion เองก็มี SDK ของ JavaScript ที่ใช้งานไม่ยากมาก (ติดความยากที่การประกาศ Type นิดนึง) ทำให้นิลเลือกจะใช้ Notion ที่ตัวเองเคย Setup ไว้มาใช้ต่อครับ  ## ว่าด้วยเรื่อง Deployment นิลเลือกที่จะ Deploy ที่ Vercel ด้วยเหตุผลที่ว่า 1. Vercel มี Deployment CI คือเราไม่จำเป็นต้อง Setup CI เอง ประหยัดเวลาได้เยอะเลย 2. รองรับการ Deploy Serverless Function อยู่แล้ว 3. User Interface ของ Website สวย และ User Experience ก็ใช้งานง่าย 4. (สำคัญที่สุด) Free 555555555555  ## Feature(s)/Enhancement(s) ที่อยากเพิ่มในอนาคต - คิดว่าอยากเพิ่มทางให้สามารถกด Like/Comment ได้เหมือนใน Medium หรือ Application อื่น ๆ - อยากเพิ่ม Analytics เข้ามาเพื่อนำตัวเลขมาวิเคราะห์ (อันนี้อาจจะเป็นอนาคตอันไกลหน่อย) - อยาก Redesign หน้าเว็บหมดเลย ตอนนี้ทำมาแบบเร็ว ๆ คิดว่าจริง ๆ น่าจะต้องปรับเยอะเลย - ตอนนี้นิลใช้วิธีเขียน API ด้วย Astro แล้ว host ในอีก Project นึง เพื่อเอามาใช้งานเป็น API แบบไว ๆ นิลเลยคิดว่าในอนาคตน่าจะต้องปรับในส่วนนี้ด้วยครับ ตอนนี้ชุ่ยด้วยกรอบเวลาที่วางไว้กับตัวเองด้วย --- จบไปแล้วนะครับกับ Blog ว่าด้วยเรื่องการย้ายถิ่นฐานของ Blog ครั้งแรก อาจจะไม่ใช่ทุกครั้ง แต่นิลคิดว่าการที่เราจะประดิษฐ์หรือสร้างอะไรขึ้นมาอย่างนึง อาจจะมาจากความที่เราทำงานซ้ำซ้อนจนทำให้รู้สึกว่า ถ้าเราลดความซ้ำซ้อนตรงนี้ได้ก็คงดีนะ เป็น Blog แรกที่นิลลองเขียนเกี่ยวกับ Technical ครั้งแรก แต่กว่าจะคลอดมาได้ก็ใช้เวลานานมาก ด้วยความที่ในสัปดาห์ที่ผ่านมานิลจัดการเวลาไม่ดีเองนะครับ จะปรับปรุงแล้วว่ากันใหม่สำหรับ Blog หน้าครับ ส่วนเรื่องเนื้อหาใครอ่านแล้วเอ้ะตรงไหน ลองทักมาคุยหรือ Feedback กันหลังไมค์ได้ครับ ขอให้สนุกกับการสร้างของกันครับ นิล --- # ความกลัวกับเวลาและโอกาส - URL: https://blog.ninprd.com/blog/what-are-you-scared-of/ - Published: 2023-08-11 - Tags: experience-sharing - Summary: ก่อนที่เราจะทำอะไร เรามักจะกลัวถึงผลลัพธ์ที่จะตามมา กลัวความผิดพลาด กลัวหลาย ๆ อย่างจนเราพลาดโอกาสหลาย ๆ ครั้ง แล้วก็กลับมาคิดกับตัวเองว่า “ทำไมไม่ทำอย่างงี้วะ” “รู้งี้ทำแบบนี้ไปแล้ว” เพื่อไม่ให้ความรู้สึกแบบนี้ค้างคาในใจเราเยอะ เรามาดูกันดีกว่าว่าเราจะสูญเสียอะไรไปเมื่อเรากลัว และถ้าเราไม่กลัว เราจะได้อะไรกลับมามั่ง ก่อนที่เราจะทำอะไร เรามักจะกลัวถึงผลลัพธ์ที่จะตามมา กลัวความผิดพลาด กลัวหลาย ๆ อย่างจนเราพลาดโอกาสหลาย ๆ ครั้ง แล้วก็กลับมาคิดกับตัวเองว่า “_ทำไมไม่ทำอย่างงี้วะ” “รู้งี้ทำแบบนี้ไปแล้ว”_ เพื่อไม่ให้ความรู้สึกแบบนี้ค้างคาในใจเราเยอะ เรามาดูกันดีกว่าว่าเราจะสูญเสียอะไรไปเมื่อเรากลัว และถ้าเราไม่กลัว เราจะได้อะไรกลับมามั่ง สวัสดีครับ รอบนี้อาจจะเปิดบทความงง ๆ หน่อย ตัว Inspiration ของบทความนี้นิลได้มาจากการคุยกับพี่ ๆ หลาย ๆ คนในออฟฟิศครับ ซึ่งนิลก็ไปปรึกษาเรื่อง Blog นี่แหละ แต่ว่าก็พูดความกลัว ความไม่แน่ใจหลาย ๆ อย่างไปกับพี่ ๆ ซึ่งสิ่งที่ตอบกลับมาก็ทำให้นิลรู้สึกมั่นใจขึ้นและกล้ามาแชร์มากขึ้นครับ เวลาที่เรากลัวหรือไม่กล้าทำอะไรเนี่ย มันอาจจะเกิดขึ้นได้ในหลาย ๆ สถานการณ์นะครับ ไม่ว่าจะเป็นการที่เราได้ถูกเชิญชวนไปทำอะไรซักอย่างนึงหรือได้รับงานมาชิ้นนึง เราก็อาจจะเกิดอาการกลัวว่า เราจะทำได้หรือเปล่า เราจะทำได้ดีไหม ให้คนอื่นที่เก่งเจ๋งกว่าทำดีกว่าไหมนะ แล้วพอเรากลัวนี่แหละครับ มันก็จะทำให้เกิดการลังเลว่าจะทำดีไหมนะ ตามมาด้วยเวลาที่ต้องนั่งคิด และจบด้วยบางทีอาจจะปฏิเสธงานนั้น ๆ ไปเพียงเพราะว่าเรากลัวที่จะพลาดหรือเรากลัวที่จะทำไม่ได้ อันนี้นิลลอง visualize ออกมา (อีกแล้ว 5555) ว่าถ้าเรามัวแต่กลัวที่จะทำสิ่งใดสิ่งหนึ่งแล้ว เวลาที่เรากลัวมันจะส่งผลกับเวลาที่เราจะใช้เพื่อไปทำสิ่งใดสิ่งหนึ่ง นอกจากที่เราจะรอ จะกลัวแล้ว เรายังต้องมานั่งทำความเข้าใจ วางแผน แล้วก็ทำอีก ไหนจะรอ Feedback จากการทำ โว้ะ! หมดเวลากันพอดี สุดท้ายอาจจะส่งผลไปถึงการพลาดโอกาสหลาย ๆ อย่างที่สำคัญซึ่งบางทีอาจจะเป็นบันไดที่นำพาเราไปสู่ความสำเร็จในภายภาคหน้าก็ได้  ทีนี้ถ้าสมมติเราไม่กลัวแล้วทำสิ่งนั้นไป เราจะได้อะไรกลับมามั่ง นิลขอย้อนจากที่นิลบอกว่านิลไปปรึกษาพี่ ๆ ที่ออฟฟิศนะเรื่องความกลัวนี่แหละครับ ซึ่งในตอนนั้นสิ่งที่นิลกลัวคือกลัวว่าจะเขียนไม่รู้เรื่องกับกลัวการที่จะ Express ความคิดตัวเองออกไปทั้งหมดแล้วคนอื่นจะรู้สึกยังไงนะ เสียเวลานั่งคิด นอนคิด พินิจพิจารณา จนสุดท้ายความกลัวเหล่านี้ร่วมกับความขี้เกียจและอาการป่วยของนิลเมื่อเดือนที่แล้ว ทำให้ใช้เวลาร่วมเดือนในการปล่อยบทความที่แล้วออกมาทั้งที่จริง ๆ วางแผนเอาไว้ว่าจะใช้เวลาน้อยกว่านั้น จะสังเกตว่าจริง ๆ แล้วถ้าไม่คิดเยอะ หรือไม่กลัวโดยใช่เหตุเนี่ย จริง ๆ นิลก็อาจจะใช้เวลาน้อยกว่านี้ในการทำบทความนึงขึ้นมา แต่ด้วยปัจจัยหลาย ๆ อย่างเนี่ย มันทำให้นิลใช้เวลามากกว่าที่คิดซึ่งเวลาที่เหลือนี้จริง ๆ นิลอาจจะเอาไปทำอะไรอย่างอื่นที่มีประโยชน์มากกว่านี้ ไม่ว่าจะเป็นการออกไปออกกำลังหรือว่าพักผ่อนให้เพียงพอก็ตาม อีกคำถามก็อาจจะตามมาว่า แล้วถ้าไม่ได้เขียน Blog ล่ะ เท่าที่ดูในย่อหน้าก่อนหน้า หลายคนอาจจะคิดว่า “เอ้า! ก็กลัวเพราะว่าเขียน Blog หนิ” หรือว่า “ถ้าไม่ทำ Blog ก็คงไม่เกิดความกลัวแล้ว” อะไรประมาณนี้ซึ่งนั่นก็จริงส่วนหนึ่งครับ แต่หนึ่งในปัจจัยที่นิลมาเขียน Blog คือการฝึกการสื่อสารกับคนในรูปแบบของตัวอักษรให้รู้เรื่องมากขึ้นครับ ดังนั้นในจุดนี้นิลคิดว่าเรื่องความกลัวการสื่อสารไม่รู้เรื่องเนี่ย เป็นสิ่งที่นิลจะต้องข้ามผ่านมันไปให้ได้ครับ --- จบไปอีกแล้วววว บทความนี้อาจจะดูตึง ๆ นิดนึง เพราะตอนเขียนก็ตึงจริง 5555 อาจจะเพราะว่ามันมาจากประสบการณ์ตรง ๆ ที่เพิ่งเกิดและเอามาเขียน ก็เลยมีอารมณ์ร่วมค่อนข้างเยอะ ยังไงก็ขอบคุณทุกคนที่ทักมา Comment หรือให้ Feedback กันด้วยนะครับ รวมทั้งทุกคนที่ให้คำปรึกษาด้วยครับ ได้เอามาเป็นเนื้อหาบทความหลาย ๆ อันเลย 5555 ปล. มาพิมพ์ดักไว้ก่อนว่าทำไมในเมื่อถามพี่ ๆ เขาแล้วไม่เอาคำตอบมากางกันเลยล่ะ ว่าพี่ ๆ เขาตอบว่าอะไร เผื่อจะเป็นประโยชน์กับผู้อ่านมากขึ้น อันนี้ตอบแบบตรงไปตรงมาคือคำตอบของพี่ ๆ มันทำให้นิลเขียนได้เยอะมากกกกก อาจจะเอาไปแทรก ๆ ไว้ตามบทความอื่น ๆ ยังไงก็ติดตามกันในอนาคตได้ครับ ขอให้ทุกคนกล้าออกไปลุยกับสิ่งใหม่ ๆ นะครับ นิล --- # การ Set Expectation ในการทำงาน - URL: https://blog.ninprd.com/blog/clear-expectation-at-work/ - Published: 2023-07-28 - Tags: experience-sharing - Summary: ความคาดหวัง น่าจะเป็นสิ่งที่คนทำงานหลาย ๆ คนละเลยมันไป บางคนคิดว่าก็ทำงานให้เสร็จ ๆ ไปพี่ ๆ Senior ก็น่าจะพอใจแล้วไม่ใช่หรอ หรือบางคนก็คิดว่าต้องพัฒนางานระดับ Premium ออกมา ใช้เวลานานมาก แต่ Senior หรือ PM ไม่พอใจ สิ่งเหล่านี้ทั้งหมดขับเคลื่อนด้วยสิ่งที่เรียกว่า ”ความคาดหวัง” ครับ ความคาดหวัง น่าจะเป็นสิ่งที่คนทำงานหลาย ๆ คนละเลยมันไป บางคนคิดว่าก็ทำงานให้เสร็จ ๆ ไปพี่ ๆ Senior ก็น่าจะพอใจแล้วไม่ใช่หรอ หรือบางคนก็คิดว่าต้องพัฒนางานระดับ Premium ออกมา ใช้เวลานานมาก แต่ Senior หรือ PM ไม่พอใจ สิ่งเหล่านี้ทั้งหมดขับเคลื่อนด้วยสิ่งที่เรียกว่า ”ความคาดหวัง” ครับ สวัสดีทุกคนที่อ่านด้วยนะครับ แล้วก็ขอโทษที่หายไปเกือบเดือน พอดีนิลป่วยบ่อย เนื้อหาของบทความนี้นิลได้แรงบันดาลใจจากการคุยกับ Direct Manager ของนิลนะครับ ตอนช่วงแรก ๆ ที่นิลทำงาน ร่วมกับตอนที่นิลทำงานได้ซักพักและเริ่มสังเกตว่า “ความคาดหวัง” มันสำคัญขนาดนั้นจริง ๆ หรอ ## อะ ลองยกตัวอย่างให้เห็นภาพซักหน่อย นิลอาจจะยกตัวอย่างในมุม Dev นะครับ บางทีเวลาที่เราได้รับงานจาก Product Manager (PM) หรือว่า Senior เนี่ย เราจะคิดว่าจะใช้เวลากี่วัน มันจะทันกับ Timeline ที่เขาให้มาไหม แล้วเราก็ไปทำตามที่เราคิดมา ซึ่งบางทีเราอาจจะไม่ได้ถามกลับไปหาคนที่มอบงานให้เราเลยว่าเขาคิดว่าเราจะใช้เวลากี่วัน เราอาจจะบอกเขาว่าเราจะใช้ประมาณ 4 วัน พี่เขาก็ Say Yes มา เราก็ไปทำมา จะใช้เวลากี่วันก็แล้วแต่แหละ แต่สุดท้ายเราก็จะรู้สึกว่างานเสร็จ แต่ทางคนที่มอบหมายงานมาอาจจะมีความรู้สึกประหลาดใจที่งานเสร็จเร็วกว่าที่คิด หรืออาจจะหงุดหงิดที่งานเสร็จช้ากว่าที่คิดก็ได้ จากตรงนี้คนอาจจะแบบ เอ้า! ก็ทางคนมอบหมายงานไม่ได้บอกความคาดหวังของตัวเองนี่นา คนทำงานก็ไม่มีทางรู้หรอก แต่ในความเป็นจริงแล้ว ถ้าเราสามารถถามเพื่อดูความคาดหวังของคนมอบงานแล้วทำให้เรากับเขาเห็นภาพเดียวกัน เราจะสามารถสร้างความพึงพอใจให้กับทั้งผู้มอบงานและตัวเราด้วยครับ ทีนี้ถ้าลองเอาสิ่งที่นิลพูดมาทั้งหมดมาลองวาดเป็น Chart ดู สุดท้ายแล้วนิลได้ภาพประมาณนี้ ไม่รู้ว่าคนอื่นจะพอเข้าใจไหมนะ  ## สรุป จริง ๆ ที่เล่ามานี้อาจจะไม่ Cover ใน Case อื่น ๆ แต่อย่างไรก็ดี จากภาพก็แสดงให้เห็นแล้วว่าแค่เราทำให้ภาพของคนที่มอบงานให้เรากับเรานั้นตรงกันก็สามารถทำให้ทั้ง 2 ฝ่ายสามารถทำงานกันได้อย่างตรงเป้าประสงค์ของตนเอง รวมทั้งที่เล่ามาทั้งหมดไม่ได้มีความอยากให้คนชุ่ยหรือขยันจนเกินไปนะครับ แต่อยากให้ทุกคน set clear expectation ระหว่างเรากับผู้มอบหมายงานเพื่อให้รู้สึกคุ้มค่ากับความพยายามและเวลาที่เราลงแรงไปกับงานนั้นนะครับ 🙂 --- จบไปอีกบทความแล้ว ขอบคุณสำหรับ Comment และ Feedback ที่มีให้ในบทความที่แล้วนะครับ ก่อนหน้านี้ผมพยายามจะทำ Content เป็นรายอาทิตย์แต่ก็ยังติดหล่มความขี้เกียจกับป่วยอยู่บ่อยครั้งครับ ยังไงจะพยายามหา Pace ที่เหมาะสมและมาเขียนอะไรให้ทุกคนอ่านเรื่อย ๆ นะครับ ถ้ามี Topic ไหนที่อยากอ่านกันเป็นพิเศษก็สามารถ Comment กันมาได้เลยนะครับ อยากรู้เหมือนกันว่าอยากอ่านอะไรกัน หรือถ้ามีอะไรอยากจะบอกก็ Comment มาก็ได้นะครับ ขอให้ทุกคนมีความสุขกับการทำงานกันนะครับ นิล --- # สีเหลืองเยลโล่ว 1 ปีกับ Skooldio - URL: https://blog.ninprd.com/blog/1-year-at-skooldio/ - Published: 2023-06-17 - Tags: experience-sharing - Summary: รู้สึกแปลก ๆ กับการมาเล่าเรื่องแบบนี้แฮะ ก่อนอื่นขอแนะนำตัวก่อนนะ ชื่อนิลนะครับ ตอนนี้เป็น Software Engineer ที่ Skooldio และก็อย่างที่ชื่อบทความเขียนไว้เลย ผมเพิ่งทำงานครบ 1 ปีพอดีเลยอยากมาแชร์ประสบการณ์การทำงานของตัวเอง แต่อาจจะเกริ่น Background ตัวเองซักนิดนึงนะครับ รู้สึกแปลก ๆ กับการมาเล่าเรื่องแบบนี้แฮะ ก่อนอื่นขอแนะนำตัวก่อนนะ ชื่อนิลนะครับ ตอนนี้เป็น Software Engineer ที่ Skooldio และก็อย่างที่ชื่อบทความเขียนไว้เลย ผมเพิ่งทำงานครบ 1 ปีพอดีเลยอยากมาแชร์ประสบการณ์การทำงานของตัวเอง แต่อาจจะเกริ่น Background ตัวเองซักนิดนึงนะครับ ## **เล่า Background คร่าว ๆ** นิลจบ Industrial Engineering (IE) จุฬาฯ ระหว่างเรียนตอนจบปี 3 ได้มีโอกาสไปฝึกงานแบบสหกิจศึกษา (ฝึกงาน 6 เดือน โดยจะเป็นการทำ Senior Project ร่วมกับทางบริษัท) ที่ True Digital Group ในตำแหน่ง Full Stack Developer ตอนนั้นได้ทำโปรเจคเป็นระบบ Telemedicine ขนาดย่อมโดยใช้ NuxtJS กับ NodeJS + Express แล้วรู้สึกว่าสนุกกว่าสิ่งที่ตัวเองเรียนมามาก นิลเลยตัดสินใจเบนสายไปทาง Software Engineer เลย หลังจากนั้นก็ได้สมัครเข้าทำงานและตัดสินใจมาทำที่ Skooldio ในตำแหน่ง Software Engineer ครับ ### **ทำไม Skooldio?** จริง ๆ นิลติดตามเพจ Skooldio ตั้งแต่นิลอยู่ปี 1 แล้ว ตอนนั้นนิลยังเห็น Skooldio เป็นแค่เพจขายคอร์ส (ที่ค่อนข้างมีราคาประมาณนึง 555) กับเพจที่แนะนำ Tips และ Tricks ต่าง ๆ ในการทำงานเท่านั้นเอง แต่นิลก็คิดว่าเป็นเพจที่ดีนิลเลยติดตามมาเรื่อย ๆ และสัมผัสได้ถึงพลังงานที่สนุกสนานจากคอนเทนต์ต่าง ๆ ในหน้าเว็บ ประกอบกับการที่ที่บริษัททำเกี่ยวกับการศึกษาที่เป็นส่วน Reskill Upskill ทำให้นิลรู้สึกว่าที่นี่น่าจะมี Environment การทำงานที่สนุกและท้าทายแน่ ๆ เลย เลยสนใจที่นี่มากครับ ### **เข้ามาทำงานเป็นยังไงบ้าง?** ต้องบอกก่อนว่านิลได้เข้ามาทำในทีม PoC (Proof of Concept) ของบริษัทซึ่งเป็นทีมขนาดเล็ก (ในทีมมี Dev 2 คน) โดยเป้าประสงค์ของ Team เราคือการสร้างของไว ๆ (ทุก Product ที่ทำไปมี Roadmap วางไว้นะไม่ได้ทำอะไรพร่ำเพรื่อ) เพื่อออกไปลองตลาดว่ามันขายได้หรือไม่ได้ เพราะงั้นเวลาเราได้พัฒนาของใหม่ ๆ ออกไปเนี่ย มันสนุกมากเลย ได้ลองเล่น Library ใหม่ ๆ ลอง Tech Stack อื่น ๆ ที่อาจจะไม่ได้ใช้ในบริษัทก่อนหน้านี้แล้วก็เอามาคุยกับพี่ใน Team ว่าเราจะลองใช้อันนี้ไหม ใช้อันนู้นใน Project เราไหม และก็ได้รู้ Process ตั้งแต่ขึ้น Repository ใหม่อีกด้วย นอกจากนี้เรายังได้มีโอกาสไปทำงานกับทีมอื่น ๆ เพื่อร่วมพัฒนาของที่มีอยู่ หรือไปช่วยเขา Research ของอะไรเร็ว ๆ ด้วยครับ พี่ใน Team ก็คอยช่วยเหลือกันตลอด รู้สึกว่าโชคดีมากได้อยู่ใน Team ที่ท้าทายและสนุกมากครับ รู้สึกว่าได้เรียนรู้อะไรใหม่ ๆ ตลอด โคตรมันส์ โคตรโหด โคตรอันตราย 💪  ### **ข้ามสายมา ทำงานเป็นยังไงบ้าง?** อันนี้หลายคนก็ถามนะว่าข้ามจาก IE มาทำ Dev เนี่ย มึนหรือเปล่า หรือว่าตามคนอื่นไม่ทันหรือเปล่า? อันนี้นิลตอบตรง ๆ ว่าตอนแรกนิลรู้สึกว่านิลตามคนอื่นไม่ทันเลย รู้สึกว่าต้องไปหาอะไรมาเรียนรู้เพิ่มจนกว่าจะตาม Dev คนอื่นให้ทัน สุดท้ายตอนที่คุยกับพี่ Manager พี่เขาก็ Reflect กลับมาว่าจริง ๆ แล้วนิลก็ทำงานได้ตามที่ Senior/Manager เขาคาดหวังแล้วนะ แบบอาจจะไม่ต้องกดดันตัวเองขนาดนั้น ตอนนี้ก็เลยรู้สึกผ่อนคลายมากขึ้น แต่เราก็ต้อง Upskill เราไปเรื่อย ๆ แหละ 🔥 ### **ทำงานมา 1 ปีมี Burn out บ้างไหม?** ไม่ถึงขั้นหมดไฟขนาดนั้น รู้สึกแค่ไม่มีความสุขเป็นบางช่วงครับ อาจจะเพราะว่านิล Dev เป็นงานหลัก Hobby และ Freelance ด้วย นิลเลยรู้สึกหมดสนุกหรือเบื่อในบางครั้ง แต่ทุก ๆ ครั้ง แค่ไปนั่งผ่อนคลายซักวัน 2 วัน นั่งเรียนอะไรชิว ๆ ไป ปรึกษา Manager หรือไปนั่งดูเว็บอื่น ๆ แล้วเห็นอะไรที่น่าสนใจก็จะกลับมาลุยต่อได้ตลอดครับ ยังไม่รู้สึก Completely Burn Out ขนาดนั้น ### **ทำไมต้องสีเหลืองเยลโล่ว?** โอเค อ่านกันมาถึงตรงนี้แล้วหลาย ๆ คนอาจจะงงการตั้งชื่อบทความของผมว่าสีเหลืองเยลโล่วมันไปอยู่บนนั้นได้ยังไง ต้องเล่าไปถึงตอนที่นิลสมัครมาทำงานที่นี่ นิลสมัครผ่านโครงการ Skooldio Day Zero ที่จะมี Form ให้กรอกและพอนิลได้กรอกไป นิลก็ไปสะดุดกับหัวข้อนึงที่เขียนอารมณ์ประมาณว่า _“กรุณาแนะนำตัวเองที่นอกเหนือจากใน Resume”_ นิลก็เขียนไปเรื่อย ๆ ซักพักพอจะจบ นิลจบไม่ลง และก็คิดขึ้นมาได้ว่านิลอยาก Express ความตลกและสนุกของตัวเองไปด้วย นิลเลยเขียนประโยคท้ายลงไปว่า “ผมชอบดูมุขตลกครับ เช่น สีเหลืองเยลโล่ว บริษัทที่อยากเข้า Skooldio ผ่ามมม” นั่นละฮะ นิลเลยเอาข้อความตรงนั้นมาตั้งเป็นชื่อของบทความนี้ (อย่าเอาเป็นเยี่ยงอย่างนะ แหะ ๆ) ### **สุดท้ายละ มา Part ขอบคุณดีกว่า** ขอบคุณเพื่อนร่วมงานทุกคน พี่ ๆ Manager และพี่ ๆ ในบริษัททุกคนมากครับ ทุกคนใจดีมากเลย ขอบคุณที่ Support นิลในหลาย ๆ เรื่อง โดยเฉพาะ Direct Manager ของนิลที่คอยเป็นที่ปรึกษาให้ตลอด เป็น 1 ปีที่ยอดเยี่ยมครับ 555 หวังว่าเราจะได้ลุยไปด้วยกันต่อในปีถัด ๆ ไปนะครับทุกคน (ถ้ามีคนในบริษัทมาอ่านอะนะ 5555) 🌟 --- จบไปแล้วกับบทความแรกนะครับ บทความนี้เหมือนเป็นการเริ่มที่จะเปลี่ยนบางอย่างของนิล และก็เป็นการอยากแชร์ประสบการณ์ครั้งแรกจากคนที่รู้สึกว่าตัวเองพูดไม่รู้เรื่อง 555 ยังไงถ้าใครรู้สึกยังไงก็สามารถมา Comment ติชมกันได้นะครับ จริง ๆ ตอนแรกบทความมันยาวกว่านี้เลยตัดออกไปเยอะอยู่ อยากเล่าแต่กลัวตัวเองพูดไม่รู้เรื่อง ถ้า Comment มาบอกกันก็จะช่วยและเป็นกำลังใจในการเริ่มที่ดีมากเลยครับ ขอบคุณทุกคนที่อ่านกันมาถึงตรงนี้ครับ 🙂 นิล