podcast
details
.com
Print
Share
Look for any podcast host, guest or anyone
Search
Showing episodes and shows of
Chaiyong Ragkhitwetsagul
Shows
SE CORNER
EP 100 - ผมได้อะไรบ้างจากการทำ Podcast?
SE Corner Podcast ครบ 100 ตอนแล้วครับ! เย้! ใน EP นี้ขอฉลองครบรอบ 100 episodes ด้วยการทำ retrospective ครับ ว่าผมได้ประโยชน์อะไรบ้างจากการทำ SE Corner ในระยะเวลาเกือบ 2 ปีที่ผ่านมา โดยผ่านการทำ retrospective แบบ Glad-Mad-Sad ครับ :-) ไปฟังกันใน EP นี้เลยครับ
2023-06-25
12 min
SE CORNER
EP99 - Top 10 Technical Debt ของ Google
EP นี้เป็นเรื่องเกี่ยวกับ Developer Productivity แต่ว่าหัวข้อเป็น Technical Debt นะครับ หยิบเอาบทความเรื่อง Defining, Measuring, and Managing Technical Debt ของคุณ Ciera Jaspan กับ Collin Green จาก Engineering Productivity Research Team ของ Google มาเล่าให้ฟังครับ ทีมนี้ทำงานศึกษาวิจัยเกี่ยวกับ technical debt ที่ส่งผลลบต่อประสิทธิภาพการทำงานของ software engineer ที่กูเกิ้ลมาตั้งแต่ปี 2018 และพวกเขาได้ค้นพบ 10 รายการของ technical debt ที่ส่งผลเสียมากที่สุดต่อ engineer ของกูเกิ้ลรายละเอียดเป็นอย่างไร ไปฟังกันใน EP นี้ครับ บทความต้นฉบับ: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10109339
2023-06-19
10 min
SE CORNER
EP98 - "ไกลแค่ไหนคือใกล้" หรือ AI แทน Programmer ไม่ได้ในเร็วๆ นี้
EP นี้เอาบทความของคุณ Bertrand Meyer ศาสตราจารย์ด้านวิศวกรรมซอฟต์แวร์และผู้คิดค้นภาษา Eiffel ใน Communication of thte ACM มาเล่าให้ฟังกันครับ บทความชื่อ "AI Does Not Help Programmers" ซึ่ง อ. Meyer เล่าประสบการณ์การทดลองใช้ ChatGPT เพื่อแก้บั๊กในโปรแกรมภาษา Eiffel แล้วพบว่าโมเดล LLM ณ ปัจจุบัน น่าจะยังไม่ถึงระดับที่จะมาเขียนโปรแกรมแทนโปรแกรมเมอร์จริงๆ ได้ รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ บทความต้นฉบับ: https://cacm.acm.org/blogs/blog-cacm/273577-ai-does-not-help-programmers/fulltext?fbclid=IwAR0FESzXaSnR7LYw9koVcVEg35rJjcQB1zcGxHhwzDxZeoHBHklFoh42COI
2023-06-11
07 min
SE CORNER
EP97 - เล่างานวิจัย: การทดสอบ Microservice ที่ใช้ BFF pattern
EP นี้หยิบงานวิจัยของ นศ. ที่สร้างเครื่องมือในการทดสอบระบบ Microservice แบบที่ใช้ Backends for Frontends (BFF) pattern ชื่อ Microusity มาเล่าให้ฟังกันครับ งานวิจัยนี้ได้รับการตีพิมพ์ที่งานประชุมวิชาการ the 31st IEEE/ACM International Conference on Program Comprehension (ICPC '23) ในหมวด Tool Demonstration ครับ โดยวิธีการที่เราใช้ในการทดสอบ BFF microservice นั้น เราใช้เครื่อง RESTful API fuzzing tool ชื่อ RESTler จาก Microsoft ร่วมกับ network monitoring tool ชื่อ Zeek และเราสร้าง algorithm เพื่อทำการติดตาม request ที่เข้าไปยัง BFF ว่าถูกส่งไปที่ microservice ไหนบ้าง ด้านหลัง BFF ครับ นอกจากนี้ยังมี graph visualization ที่ช่วยให้เข้าใจการเดินทางของ request ได้ง่ายขึ้นด้วย เครื่องมือนี้ช่วยให้นักพัฒนา BFF microservice สามารถแก้ไขปัญหา HTTP 500 ที่เกิดขึ้นได้ง่ายมากขึ้น สามารถเข้าไปลองเล่นกันได้ที่ https://microusity.dev/ ครับ รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ หากสนใจงานวิจัย สามารถอ่านเปเปอร์ได้ที่นี่ครับ: https://arxiv.org/abs/2302.11150
2023-06-04
07 min
SE CORNER
EP96 - บทบาทของ LLM ใน Software Engineering
EP นี้หยิบเรื่องของ Large Language Models (LLMs) ที่เข้ามาใกล้ตัวนักพัฒนาซอฟต์แวร์ขึ้นเรื่อยๆ เพราะสามารถนำมาใช้ช่วยในการเขียนซอฟต์แวร์ได้แล้วในปัจจุบัน บทความเรื่อง "Application of Large Language Models to Software Engineering Tasks: Opportunities, Risks, and Implications" ของคุณ Ipek Ozkaya หยิบประเด็นที่น่าสนใจถึงความเสี่ยงที่เราควรนึกถึง และโอกาสที่เราจะได้ประโยชน์จาก LLM เหล่านี้มีอะไรบ้าง ไปฟังกันใน EP นี้ครับ
2023-05-28
12 min
SE CORNER
EP95 - นำ Design Thinking มาช่วยออกแบบการทำงานแบบ Hybrid Work
ใน EP นี้หยิบบทความจาก IEEE Software ที่เขียนโดยบริษัท SAP มาเล่าให้ฟังกันครับ ทีมงานจาก SAP ร่วมกับนักวิจัยจาก UC Irvine และ Pontifical Catholic University of Rio Grande do Sul ได้ทดลองนำหลักการ Design Thinking (DT) มาใช้ให้ทีมงานได้ออกแบบวิธีการทำงานแบบ hybrid work กันเอง งานนี้น่าสนใจตรงที่ DT ซึ่งปกติใช้ในการออกแบบสินค้าหรือบริการให้ตรงตามความต้องการของตลาดและลูกค้า ได้ถูกนำมาใช้ในการออกแบบการทำงานให้กับบริษัทซะเองรายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-05-21
07 min
SE CORNER
EP94 - 3 วิธีที่ช่วยให้ Unscheduled Meetings ง่ายขึ้นใน Hybrid Work
EP ที่ 94 นี้ หยิบเรื่อง "Unscheduled Meetings in Hybrid Work" จาก IEEE Software มาเล่าให้ฟังครับ ทีมนักวิจัยจากประเทศนอร์เวย์ได้ศึกษาการทำงานของสองบริษัทซอฟต์แวร์ในประเทศ ที่ทำงานแบบ Hybrid work หลัง COVID-19 และพบว่ามี 3 วิธีที่ช่วยให้การประชุมแบบไม่ได้นัดหมาย หรือ unscheduled meetings นั้น ทำได้ง่ายขึ้นครับ คำแนะนำและ 3 วิธีนั้นคืออะไร ไปฟังกันใน EP นี้ครับ
2023-05-14
09 min
SE CORNER
EP93 - 8 แนวทางเพื่อเพิ่ม Team Creativity ในการทำงาน Hybrid Work
EP นี้ เป็นเรื่องการสร้างความคิดสร้างสรรค์ระหว่างการทำงานแบบ hybrid software development ครับ ผมหยิบเอาบทความเรื่อง Team Creativity in a Hybrid Software Development World: Eight Approaches จาก IEEE Software มาเล่าให้ฟังกัน โดยผู้เขียนบทความนำเสนอ 8 แนวทางที่จะทำให้การทำงานแบบ hybrid work ยังคงทำให้มี team creativity อยู่ได้ครับ เนื้อหาจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-05-07
10 min
SE CORNER
EP92 - 4 หลักการช่วยเพิ่ม Productivity ในการทำงานแบบ Hybrid Work
EP นี้ นำ 4 หลักการที่ช่วยให้ผู้บริหารองค์กรหรือทีมนำมาออกแบบรูปแบบการทำงาน Hybrid Work ที่เหมาะสมกับองค์กรของตัวเองได้ครับ เนื้อหามาจากบทความของ Prof. Lynda Gratton ใน MIT Sloan Management Review ซึ่งเขียนเอาไว้ตั้งแต่ช่วงโควิด ปี 2020 แต่ผมเห็นว่ายังใช้ได้อยู่ในปัจจุบันเลยนำมาแชร์ให้ฟังกันครับ เนื้อหาจะเป็นอย่างไรนั้น ไปฟังกันใน EP นี้ครับ ที่มา: https://sloanreview.mit.edu/article/four-principles-to-ensure-hybrid-work-is-productive-work/
2023-04-30
10 min
SE CORNER
EP91 - 4 คำแนะนำเพื่อการปรับองค์กรคุณให้เป็น Hybrid Software Development
EP นี้ หยิบบทความจาก IEEE Software เรื่อง The Future of Hybrid Software Development: Challenging Current Assumptions มาเล่าให้ฟังกันครับ ผมคิดว่าน่าสนใจมากและคิดว่าน่าจะมีเรื่องเล่าในหมวด Hybrid Software Development นี้ไปได้อีกหลาย EP เลยครับ ในบทความนี้มีคำแนะนำสี่อย่างสำหรับองค์กรที่กำลังปรับตัวเป็น Hybrid Softwaer Development มาเล่าให้ฟังกันครับ ซึ่ง 4 คำแนะนำนี้ก็คือ Recommendation 1: Consider Event-Based Hybrid Organization With or Instead of Calendar- Based Organization Recommendation 2: Think About More Than One Way of Doing Hybrid Development Recommendation 3: Consider the Fluidity of Hybrid Development Recommendation 4: Consider Hybrid Work an Ongoing Experiment รายละเอียดของแต่ละคำแนะนำจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-04-23
09 min
SE CORNER
EP90 - แนวทางการทำงานแบบ Hybrid หลัง COVID-19 จาก 6 บริษัทซอฟต์แวร์
EP นี้นำบทความจาก IEEE Software ชื่อ "The Future Workplace - Characterizing the Spectrum of Hybrid Work Arrangements for Software Teams" ซึ่งมีตัวอย่างแนวทางการทำงานแบบ Hybrid หลัง COVID-19 จาก 6 บริษัทซอฟต์แวร์ มาเล่าให้ฟังกันครับ จะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-04-16
08 min
SE CORNER
EP89 - ดูแล Developer Productivity อย่างไร เมื่อองค์กรใช้ Hybrid Work
EP นี้นำบทความที่สองในซีรี่ส์ Developer Productivity for Humans ของคุณ Ciera Jaspan (Google) และคุณ Collin Green (Google) ใน IEEE Software มาเล่าให้ฟังกันครับ เราจะไปดูว่า Google วัด (หรือพยายามเข้าใจ) productivity ของวิศวกรในบริษัท โดยใช้เครื่องมีอ 3 เครื่องมือ (survey, log, interviews) อย่างไร และ Google มีคำแนะนำให้กับพวกเราที่ต้องทำงานในรูปแบบ Hybrid work ต่อไปในอนาคต อย่างไรครับ ไปฟังเนื้อหาใน EP นี้กันได้เลยครับ
2023-04-09
15 min
SE CORNER
EP88 - Continuous Delivery - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้อ่านหนังสือ SE at Google เป็นตอนสุดท้ายแล้วครับ เป็นเรื่อง Continuous Delivery (CD) ในแนวทางแบบ Google โดยผมจะนำเสนอ 8 หัวข้อที่ทำให้ Google สามารถทำ CD ได้อย่างประสบผลสำเร็จตามความเชื่อของบริษัทที่ว่า "faster is safer" รายละเอียดเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-04-02
10 min
SE CORNER
EP87 - AI in Software Development: เหลืออะไรให้คนทำบ้าง?
Episode นี้หยิบเอาหัวข้อที่พูดในงาน DevMoutain University เมื่อวันเสาร์ที่ 25 มี.ค. มาเล่าอีกรอบครับ ผมต้องการจะหาคำตอบว่า "ในโลกอีก 3-5 ที่ AI เข้ามามีบทบาทในการพัฒนาซอฟต์แวร์มากขึ้นเรื่อยๆ ยังเหลืออะไรให้คนทำอีกบ้าง?" โดยการไปดูงานวิจัยจาก Automated Software Engineering Conference (ASE) ว่ามีงานวิจัยด้านไหนบ้าง (ที่อาจจะถูกนำมาใช้จริงในอนาคตอันใกล้) และมีส่วนไหนที่งานวิจัยยังไม่สามารถทำให้คนทำแทนนักพัฒนาซอฟต์แวร์ได้ ผลการศึกษาเล็กๆ ของผมครั้งนี้จะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-03-26
12 min
SE CORNER
EP86 - Java ภาษาผู้ไม่ยอมตายและน่าจะยังอยู่กับเราไปอีกนาน
EP นี้พาย้อนไปดูประวัติศาสตร์ของภาษา Java ที่เป็นที่นิยมกันมาอย่างยาวนานครับ ปัจจุบันดูเหมือน Java จะได้รับความนิยมน้อยลงจนชวนทำให้คิดว่าอาจจะเป็นภาษาที่ตายแล้วในอีกไม่ช้านี้ แต่เดี๋ยวก่อน บทความนี้จาก The ReadME Project ทำให้เห็นว่า Java ไม่เคยหายไปไหน แถมยังมีอนาคตที่สดใสอีกด้วย เรื่องราวจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ The ReadME project: https://github.com/readme/featured/java-programming-language
2023-03-19
11 min
SE CORNER
EP85 - สรุป Octoverse 2022 ตอนที่ 2 - OSS ไหนที่ได้รับความนิยมสูงสุด contributors เยอะสุด และอนาคตของ OSS จะเป็นอย่างไร
EP นี้พาไปดูผลการรายงานจาก Octoverse 2022 ต่อกันเป็นตอนที่สองครับ ในตอนนี้เน้นเนื้อหาไปที่ project ที่ได้รับความนิยมสูงๆ เช่น มี contributors เยอะสุด (vscode) หรือดึงดูดคนที่เพิ่งเข้ามาช่วยในวงการ open source เป็นครั้งแรกเยอะสุด (ก็ vscode อีก) ดูเหมือนว่าบริษัทใหญ่ๆ จะเริ่มเน้นสร้างชุมชนนักพัฒนาของตนเองผ่านการนำ product ของบริษัทมาเป็น OSS สุดท้ายเราปิดกันด้วย 5 ทิศทางที่ GitHub มองว่าเป็นอนาคตของ OSS ครับ ไปฟังรายละเอียดกันใน EP นี้ครับ
2023-03-12
09 min
SE CORNER
EP84 - สรุป Octoverse 2022 ตอนที่ 1 - สามเทรนด์หลักของ OSS, GitHub Copilot, และภาษาที่ได้รับความนิยมสูงสุดปี 2022
EP นี้พาไปดูผลการสำรวจรายปีของ GitHub ที่ชื่อ Octoverse 2022 กันครับ โดยในตอนแรกจะสรุปเนื้อหาในด้าน The state of open source software โดยมาดูกันว่า GitHub มองว่าเทรนด์สามด้านของการพัฒนาที่ใช้ open source software จะไปในทางไหน นอกจากนี้มีผลการวิจัยว่า GitHub Copilot ทำให้นักพัฒนาเขียนโค้ดเสร็จเร็วขึ้นกว่าเท่าตัว! สุดท้ายผมจะพาไปดูว่าภาษาที่ได้รับความนิยมใน GitHub สูงสุด ในปี 2022 มีอะไรกันบ้างครับ ไปฟังกันใน EP นี้ได้เลยครับ
2023-03-05
09 min
SE CORNER
EP83 - It's all about Complexity - สรุปจากหนังสือ A Philosophy of Software Design
EP นี้หยิบหนังสืออีกเล่มมาอ่านและสรุปให้ทุกท่านฟังกันครับ หนังสือชื่อ A Philosophy of Software Design โดย Prof. John Ousterhout เป็นหนังสือที่ให้แนวทางการออกแบบซอฟต์แวร์ในระดับโค้ดดิ้งเลย ผมคิดว่ามีประโยชน์และสามารถนำไปใช้ได้จริงครับ โดยใน EP นี้จะเริ่มจากปัญหาของการออกแบบซอฟต์แวร์ที่ไม่ดีก่อน ซึ่งวายร้ายหลักก็คือ ความซับซ้อน (complexity) นั่นเอง เราไปดูกันว่า สัญญาณที่บ่งบอกว่าซอฟต์แวร์เราเร่ิมซับซ้อนแล้วมีอะไร และสาเหตุของความซับซ้อนมาจากอะไรบ้าง ไปฟังกันได้เลยครับ
2023-02-26
11 min
SE CORNER
EP82 - เล่างานวิจัย: ปัญหาความปลอดภัยใน npm packages
หยิบงานวิจัยที่ทำกับนักศึกษามาเล่าสู่กันฟังใน EP นี้ครับ งานนี้เป็นเรื่องเกี่ยวกับปัญหาความปลอดภัยใน npm packages ซึ่งเกิดขึ้นได้บ่อยๆ ไม่ว่าจะเป็น package ที่เรา import เข้ามาเอง (direct dependency) หรือ package ที่ถูกเรียกใช้จาก package ที่เรา import มาอีกที (transitive dependency) เราจะตรวจสอบปัญหาจาก package เหล่านี้ได้อย่างไร ไปฟังกันใน EP นี้ครับ เครื่องมือ V-Achilles: https://github.com/MUICT-SERU/V-Achilles
2023-02-19
09 min
SE CORNER
EP81 - Continuous Integration - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้ เอาเนื้อหาจาก Chapter 23 ของหนังสือ SE at Google เรื่อง Continuous Integration (CI) มาเล่าให้ฟังกันครับ ไปดูกันว่า Google มีคอนเซ็ปต์ของ CI อย่างไร และใช้งาน CI ในช่วงไหนบ้างใน development workflow ใน EP นี้ครับ
2023-02-12
13 min
SE CORNER
EP80 - วัด Developer Productivity ยังไง? ปัญหาที่ยังแก้ไม่ตก
Episode ที่ 80 นี้ผมหยิบบทความชุดใหม่เรื่อง Developer Productivity for Human โดยนักวิจัยจาก Google สองท่าน คุณ Ciera Jaspan และ คุณ Collin Green มาเล่าให้ฟังกันครับ โดยใน EP นี้จะพูดถึงปัญหาว่า ทำไมการวัดผลิตภาพของนักพัฒนาซอฟต์แวร์ (developer productivity) จึงเป็นเรื่องที่ยาก ซึ่งประกอบด้วยปัจจัยหลายอย่าง เช่น developer ก็เป็นคน (ไม่ใช่เครื่องจักร มีความรู้สึกนึกคิด มีอารมณ์ มี background ที่แตกต่างกัน) และ งานพัฒนาซอฟต์แวร์ก็เป็นงานที่ซับซ้อนและต้องใช้ความคิดสร้างสรรค์เยอะมาก ในการแก้ไขปัญหา รายละเอียดเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-02-05
11 min
SE CORNER
EP79 - เล่างานวิจัย: เอา VR มาใช้กับ SE
EP นี้หยิบงานวิจัยของตัวเองมาเล่าให้ฟังกันครับ เป็นงานวิจัยที่ทำร่วมกับ อ. มรกต เชิดเกียรติกุล อ. อภิรักษ์ หุ่นหล่อ และ อ. โมเรศ ปรัชญพฤทธิ์ ครับ ในงานวิจัยนี้เราศึกษาว่าการนำ Virtual Reality (VR) มาใช้ในการเรียนการสอน Software Engineering โดยเฉพาะการนำเสนอผลงาน มีผลต่อการเรียนการสอนอย่างไร ผมคิดว่าผลที่ได้อาจจะนำไปประยุกต์ใช้กับการทำงานของทีมพัฒนาซอฟต์แวร์ในการทำงานแบบ WFH หรือ work from anywhere ได้เช่นกันครับ งานศึกษาวิจัยนี้เกิดขึ้นในช่วงโควิด-19 ที่ต้องมีการเรียนการสอนแบบออนไลน์ ทำให้การปฏิสัมพันธ์ระหว่าง อาจารย์-นักศึกษา และ นักศึกษาด้วยกันเอง ลดลงอย่างมาก เราพบว่าการนำ VR มาใช้ ทำให้นักศึกษารู้สึกว่ามีปฏิสัมพันธ์กับเพื่อนและอาจารย์ง่ายขึ้น รู้สึกถึงการมีตัวตนอยู่ร่วมกัน และทำให้การเรียนเป็นไปอย่างสนุกสนานมากขึ้นครับ รายละเอียดไปฟังกันใน EP นี้ครับ
2023-01-30
08 min
SE CORNER
EP78 - ใช้เครื่องมือ Static Analysis อย่างไรให้ได้ประโยชน์เต็มที่ - คำแนะนำจากหนังสือ Software Engineering at Google
EP กระโดดมา Chapter 20 ในหนังสือ Software Engineering at Google เรื่อง Static Analysis ครับ ผมอธิบายว่าเครื่องมือ Static Analysis คืออะไร และเลือกแนวทางการใช้งานเครื่องมือ Static Analysis ที่ Google มาอธิบาย เพื่อให้ผู้ฟังสามารถลองหาเครื่องมือที่ใกล้เคียงกัน และเลือกจุดใน developer workflow ที่นำเครื่องมือเหล่านั้นไป plug-in ได้อย่างเหมาะสม โดยหลักๆ มีอยู่ 3-4 จุด คือ ช่วง code review, ช่วง presubmit, ช่วง compile, และใน IDE รายละเอียดไปฟังกันใน EP นี้ครับ
2023-01-22
11 min
SE CORNER
EP77 - DevOps แบบ Netflix ต้องมี Architecture, Culture, Tooling และ Skills ให้ครบ
EP นี้พาไปดูการทำ DevOps แบบ Netflix กันครับ คุณ Lorin Hochstein ซึ่งเป็น senior software engineer ที่ Netflix และดูแลด้าน continuous delivery tooling มาแชร์ว่าบริษัทของเขาทำ DevOps อย่างไร โดยความสำเร็จของ DevOps ที่ Netflix เกิดจาก 4 ปัจจัยหลัก คือ Architecture (สถาปัตยกรรมซอฟต์แวร์ที่เหมาะสม), Culture (วัฒนธรรมองค์กรที่ส่งเสริม), Toooling (ชุดเครื่องมือที่ช่วยสนับสนุน) และ Skills (ความสามารถที่ทำให้ดำเนินงานได้อย่างไม่สะดุด) รายละเอียด ไปฟังกันใน EP นี้ครับ
2023-01-15
08 min
SE CORNER
EP76 - Version Control System ที่ Google เป็นอย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้ มาเล่าเนื้อหาจาก Chapter 16 ของหนังสือ Software Engineering at Google เรื่อง Version Control and Branch Management ให้ฟังกันครับ โดยเน้นไปที่เรื่อง dev branch, release branch, monorepo และกฎ one version ของ Google เนื้อหาจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2023-01-08
09 min
SE CORNER
EP75 - สรุปเทคโนโลยี Frontend ในปี 2022 อะไรมา? อะไรไป?
สวัสดีปีใหม่ผู้ฟัง SE Corner ทุกท่านครับ EP แรกต้อนรับปี 2023 นี้ จะขอนำผลการสำรวจนักพัฒนา frontend จำนวนกว่า 3,700 ท่านมาเล่าให้ฟังครับ โดยการสำรวจนี้ทำโดย The Software House ซึ่งทำให้เห็นภาพสถานะของ frontend technology รวมถึงแนวปฏิบัติด้าน software engineering ที่เกี่ยวข้องและได้รับความนิยมในปีที่ผ่านมาได้ดีมาก รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ ผลสำรวจ State of frontend 2022: https://tsh.io/state-of-frontend/
2023-01-01
13 min
SE CORNER
EP74 - Wrapped of 2022 ของ SE Corner
EP ส่งท้ายปี 2022 นี้ นำผลจาก Wrapped of 2022 ที่ Anchor (ของ Spotify) ที่เป็นแพลตฟอร์มที่ผมใช้ในการอัพโหลด podcast ทำสรุปมาให้อย่างสวยงาม พร้อมทั้งสถิติที่น่าสนใจหลายๆ อย่าง มาเล่าให้ฟังกันครับ ปีนี้เป็นปีแรกที่ผมได้ทำ podcast ครบทุกสัปดาห์ตลอดปี ซึ่ง EP นี้จะเป็น EP ที่ 52 ในปีนี้ เท่ากับจำนวนสัปดาห์ในหนึ่งปีพอดีเป๊ะ :) ขอบคุณท่านผู้ฟังทุกคนมากๆ ครับที่แวะเวียนเข้ามาฟังกัน หวังว่าจะมีประโยชน์นะครับ ขอให้ทุกท่านมีปีที่ดี สุขสันต์วันปีใหม่ล่วงหน้า แล้วไว้พบกันใหม่ปีหน้าครับ :) Wrapped 2022 of SE Coner: https://wrappedforpodcasters.byspotify.com/en/?id=c6648ec1b075e25f4d47db80b231beb3d8e7c828e79887da4d027c2c9e46dad4
2022-12-25
14 min
SE CORNER
EP73 - ISO29110 มาตรฐานการพัฒนาซอฟต์แวร์ที่เหมาะกับบริษัทขนาดเล็ก
EP นี้ผมขออธิบายมาตรฐาน ISO/IEC 29110 ซึ่งเป็นมาตรฐานกระบวนการด้านการพัฒนาซอฟต์แวร์ที่ออกแบบมาสำหรับบริษัทซอฟต์แวร์ขนาดไม่เกิน 25 คนครับ ซึ่งผมคิดว่ามีประโยชน์กับบริษัทซอฟต์แวร์ขนาดเล็กๆ ในประเทศไทยเราเป็นอย่างมาก ใน EP นี้ เราจะไปดูกันว่า องค์ประกอบของมาตรฐานนี้มีอะไรบ้าง และประโยชน์ที่จะได้รับจากการได้มาตรฐานนี้แล้วคืออะไร ไปฟังกันใน EP นี้ครับ
2022-12-18
11 min
SE CORNER
EP72 - เมื่อวันที่ต้อง Deprecate ซอฟต์แวร์มาถึง ทำอย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google
ซอฟต์แวร์ใดๆ วันหนึ่งก็ต้องมีจุดที่มีการหยุดการให้บริการ ไม่ว่าจะเป็นเพราะหมดอายุการใช้งานจริงๆ หรือมีระบบใหม่ที่ทดแทนกันขึ้นมา EP นี้ สรุปเนื้อหาจาก Chapter 15 ของหนังสือ Software Engineering at Google ว่าเราจะทำกระบวนการ Deprecation (การหยุดให้บริการหรือหยุดการดูแลรักษา) ของซอฟต์แวร์อย่างไร ให้เหมาะสม และมีปัญหาน้อยที่สุด ไปฟังรายละเอียดใน EP นี้กันครับ
2022-12-11
10 min
SE CORNER
EP71 - AI Engineer vs. Software Engineer
AI Engineer เป็นงานที่กำลังเป็นที่ต้องการมากขึ้นเรื่อยๆ ในอนาคต ในขณะที่ Software Engineer เองก็เป็นตำแหน่งงานที่ยังได้รับความนิยมสูงสุดในปัจจุบัน บทความจาก IEEE Software ของคุณ Ipek Ozkaya ชี้ให้เห็นว่าสองงานนี้มีความใกล้เคียงกันมากกว่าที่คิด โดยงาน AI Engineering ซึ่งเกิดใหม่ ยังต้องการความรู้พื้นฐานจาก Software Engineering อีกหลายส่วน เพราะการสร้าง ML models ก็เป็นการสร้างซอฟต์แวร์แบบหนึ่ง ไปฟังเนื้อหากันใน EP นี้ครับ
2022-12-04
09 min
SE CORNER
EP70 - ปรัชญาแห่งการออกแบบซอฟต์แวร์ โดย Prof. John Ousterhout จาก Talks at Google
ผมได้ไปฟัง Talks at Google อันหนึ่งแล้วพบว่าน่าสนใจมาก เลยหยิบมาเล่าให้ฟังกันใน EP นี้ครับ หัวข้อคือ "A Philosophy of Software Design" โดย Prof. John Ousterhout จาก Stanford University ศาสตราจารย์ Ousterhout นี่เป็นผู้คร่ำหวอดในวงการการศึกษาและพัฒนาซอฟต์แวร์ เพราะแกทำงานเป็นอาจารย์ก่อน แล้วก็ไปทำบริษัท 14 ปี แล้วก็กลับมาเป็นอาจารย์อีก เพราะฉะนั้นแกรู้ทั้งบุ๋นและบู๊แน่นอน คำแนะนำใน Talks at Google จากหนังสือของแก (ที่ชื่อเดียวกับ talk) มีดังนี้ครับ Classes should be deep Define error out of existence Strategic vs. tactical programming รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-11-27
08 min
SE CORNER
EP69 - End-to-End Test แบบ Google ทำอย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้กลับมาอ่าน Chapter 14 Larger Tests ในหนังสือ Software Engineering at Google กันต่อ โดยจะเล่าให้ฟังถึง larger tests ทั้งหมด 10 ชนิด ที่ใช้อยู่ใน Google Functional testing of one or more binaries Browser and device testing Performance, load, and stress testing Deployment configuration testing Exploratory testing A/B diff (regression) testing User acceptance testing (UAT) Probers and canary analysis Disaster recovery and chaos engineering User evaluation แต่ละชนิดจะเป็นอย่างไร และมีวิธีการทดสอบอย่างไร ไปฟังกันใน EP นี้ครับ
2022-11-20
12 min
SE CORNER
EP68 - ประสบการณ์ไปร่วมงาน DevMountain Tech Festival 2
EP นี้ขอคั่นรายการจาก EP ที่แล้วนิดนึง เนื่องจากเพิ่งกลับมาจากงาน DevMountain Tech Festival 2 ที่เชียงใหม่ เลยมาแชร์ประสบการณ์ในการไปร่วมงาน Developer Conference ครั้งแรกครับ ไปฟังกันใน EP นี้ครับ
2022-11-13
09 min
SE CORNER
EP67 - End-to-End Test แบบ Google ทำอย่างไร? (ตอนที่ 1) - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้ขยับมา Chapter 14 ในหนังสือ SE at Google ครับ มาคุยกันเรื่อง "Larger Test" ซึ่งก็หมายถึง System Test หรือ End-to-End Test นั่นเอง โดยในตอนที่ 1 นี้ ผมจะเล่าให้ฟังว่า Google ตีความหมายของเทสต์ขนาดใหญ่เหล่านี้อย่างไร และเหตุผลใดจึงต้องทำเทสต์เหล่านี้ รายละเอียดเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-11-06
10 min
SE CORNER
EP66 - แนวทางการเรียนการสอนด้าน Software Engineering ในปัจจุบัน
ในปัจจุบันการเรียนการสอนด้าน SE เป็นอย่างไร? ใช้วิธีการใดในการสอนบ้างเพื่อให้นักศึกษาที่จบออกไปมีความรู้ความสามารถที่ตรงกับความต้องการของตลาดจริงๆ EP นี้พาไปดูกันครับ ผมนำงานวิจัยจาก University of Zagreb ที่ไปศึกษางานวิจัยด้านการศึกษาที่เกี่ยวกับ software development จำนวน 120 งานวิจัย และสรุปผลออกมาในสองด้าน คือ (1) วิธีการสอน (teaching methods and approaches) และ (2) ลักษณะของการสอนและวิธีการสอน (characteristics of teaching methods and approaches) โดยผลพบว่าการเรียนการสอนที่ได้รับความนิยมมากที่สุดจะเป็นแบบ project-based learning และลักษณะการสอนที่ได้รับความนิยมสูงสุดจะเป็นการทำงานเป็นทีม (teamwork) รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-10-30
08 min
SE CORNER
EP65 - Requirement Engineering เปลี่ยนไปอย่างไรบ้างในรอบ 10 ปี?
EP นี้นำงานศึกษาวิจัยจาก IEEE Software ชื่อ The Current and Evolving Landscape of Requirements Engineering in Practice มาเล่าให้ฟังกันครับ Mohamad Kassab และ Phillip Laplante จากมหาวิทยาลัย Pennsylvania State University ศึกษาเรื่อง requirement engineering มาอย่างยาวนาน และได้ทำการเปรียบเทียบผลการ survey นักพัฒนาตั้งแต่ปี 2003, 2008, 2013 จนถึงรอบล่าสุด 2020/2021 (ทำสองรอบ) และเปรียบเทียบผลลัพธ์ใน 5 ด้าน ได้แก่ requirement elicitation, requirement representation, requirement inspection, requirement estimation และ tools ว่ามีการเปลี่ยนแปลงไปอย่างไรในรอบเกือบๆ 10 ปี (เทียบปี 2020/2021 กับ 2013) รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-10-23
10 min
SE CORNER
EP63 - Test Doubles คืออะไรและควรใช้อย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้มาคุยกันต่อเรื่อง Test Doubles จากบทที่ 13 ในหนังสือ Software Engineering at Google ครับ โดยจะลงรายละเอียดไปที่การใช้ test doubles สองแบบคือ 1. Fake - ตัวแทน implementation จริง ที่ทำงานเหมือนตัวจริง แต่ใช้วิธีการต่างกันบางอย่าง เพื่อให้เหมาะกับการเทสต์ เช่น การเขียน/อ่านข้อมูลจาก memory แทนที่จะเป็น disk 2. Stub - การใช้ mock object พร้อมกับการกำหนด return value หรือคำตอบจากการเรียก mock method ซึ่งทำให้ทดสอบ method ที่เราต้องการได้ โดยไม่ต้องมี object อื่นๆ ที่เกี่ยวข้องอยู่จริง และวิธีการทดสอบสองแบบคือ state testing vs. interaction testing ซึ่ง Google แนะนำว่าควรทำ state testing (เช็คไปที่ state ของ object ที่ถูกเทสต์ หรือ ผลลัพธ์ที่ได้ออกมา) มากกว่า interaction testing (เช็ควิธีการทำงาน เช่น method ที่ทดสอบถูกเรียกหรือไม่ กี่ครั้ง) รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-10-16
10 min
SE CORNER
EP63 - Test Doubles คืออะไรและควรใช้อย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้เล่าเรื่องจาก Chapter 13 ในหนังสือ Software Engineering at Google เรื่อง Test Doubles หรือ การใช้ตัวแทนของ implementation หรือ API บางส่วนที่จำเป็นในการเทสต์ เพื่อทำให้การทดสอบนั้นเป็นไปได้อย่างรวดเร็วและสะดวกมากขึ้น ส่ิงที่น่าสนใจคือ Google เชื่อว่า เราไม่ควรใช้ test doubles เยอะๆ เพราะมักจะนำไปสู่ปัญหาในการดูแลรักษาภายหลัง รวมถึงเทสต์ที่ใช้ test doubles ก็ไม่ค่อยมีประโยชน์ในการหาบั๊กสักเท่าไหร่ด้วย คำแนะนำจาก Google คือ เราควรเลือกใช้ implementation จริงเป็นหลักก่อน แล้วค่อยพิจารณาปัจจัยดังต่อไปนี้เมื่อจำเป็นจะต้องตัดสินใจว่าจะใช้ test doubles หรือไม่ Execution time: เวลาในการทำงานของ implementation หรือ API บางตัว หากว่านานเกินไปจะทำให้ test suite ช้าลงได้มาก จึงอาจจะต้องเปลี่ยนเป็น test doubles Determinism: implementation หรือ API บางตัว มีความไม่แน่นอนในการทำงาน หรือ ความไม่แน่นอนที่มาจาก network connection จึงอาจจะต้องพิจารณาเปลี่ยนโค้ดส่วนนั้นเป็น test doubles เช่นกัน Dependency construction: implementation หรือ API บางตัว มี dependency เยอะ ทำให้เสียเวลาในการเซ็ตอัพ จึงอาจจะสะดวกกว่าที่จะเปลี่ยนเป็น test doubles รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-10-09
11 min
SE CORNER
EP62 - "The Rise of SQL" การกลับมาของภาษา SQL
EP นี้เป็นตอนต่อเนื่องมาจาก EP ที่แล้วที่เราคุยกันเรื่อง Top Programming Languages 2022 ที่จัดอันดับโดย IEEE Spectrum ครับ ผลการจัดอันดับในปีนี้มีจุดน่าสนใจอันหนึ่งคือ ภาษา SQL อยู่อันดับ 1 หากทำการจัดอันดับเรื่องการหางาน ใน EP นี้เลยมาเจาะลึกกันดูว่า เพราะเหตุผลใด SQL จึงกลับมาเป็นภาษาที่ได้รับความนิยมมากอีกครั้งหนึ่ง ผมเจอบทความที่อธิบายเรื่องนี้ใน IEEE Spectrum เขียนโดยคุณ Rian Diane Caballar ครับ เธอให้เหตุผลไว้ 3 ข้อหลักๆ ดังนี้ 1. Ralational database ได้เข้าไปอยู่ในทุกๆ แพลตฟอร์ม โดยเฉพาะ mobile application ที่มีการเติบโตอย่างสูงมาก 2. การทำการวิเคราะห์ข้อมูล หรือการสร้าง machine learning application จำเป็นจะต้องใช้ข้อมูลจำนวนมาก ซึ่งมักจะเก็บอยู่ใน relational database 3. เครื่องมือที่รองรับการทำงานของ SQL มีจำนวนมาก และมีการปรับปรุงมาอย่างยาวนาน แม้ว่า SQL อาจจะไม่ได้เป็นภาษาที่โดดเด่นมาก แต่เหมือนจะเป็นภาษาที่ขาดไม่ได้ในปัจจุบันครับ รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-10-02
07 min
SE CORNER
EP61 - อันดับ Top Programming Languages 2022 โดย IEEE
EP นี้พาไปดูผลการจัดอันดับ Top Programming Languages ปี 2022 โดย IEEE Spectrum ครับ เค้าจัดอันดับโดยดูข้อมูลจากหลายแหล่งด้วยกัน ได้แก่ Google Search, Twitter, Stack Overflow (no. of questions, posts), Reddit, IEEE Explore (no. of articles), IEEE Job Site, CareerBuilder, และ GitHub (starred repos, no. of PR) ซึ่งผลที่ออกมาก็คือ จัดตามผู้ที่สนใจใน IEEE Spectrum: Python, C, C++, C#, Java, SQL จัดตามประกาศ Jobs: SQL, Java, Python, JS, C#, C, C++ จัดตามเนื้อหาที่ Trending: Python, Java, C, JavaScript, C++, C#, SQL รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-09-25
06 min
SE CORNER
EP60 - หลักการ Unit Testing แบบ Google ตอนที่ 2 - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้มาคุยต่อเนื่องเรื่องการเขียน unit testing แบบ Google ครับ โดยจะเน้นไปที่หลักการเขียนเทสต์ให้มีความชัดเจน (Clarity) โดยเทสต์ที่มีความชัดเจนจะมีประโยชน์ทั้งในแง่การ maintenance และในแง่การตรวจหาบั๊กที่เจอด้วยเทสต์นั้นๆ ด้วย หลักการที่หนังสือ Software Engineering at Google แนะนำ เพื่อให้เทสต์มีความชัดเจนที่สุด มีดังต่อไปนี้ 1. Make Your Tests Complete and Concise ยึดหลักสองอย่างคือ เทสต์ต้องมีข้อมูลสมบูรณ์ในตัวเอง (complete) และไม่มีข้อมูลอื่นที่ไม่จำเป็น (concise) 2. Test Behaviors, Not Methods เปลี่ยนแนวคิดว่าเราทดสอบไปที่การทำงานของโค้ด (behaviours) ที่ต้องการ ไม่ใช่สร้างเทสต์ตามจำนวน method ที่มี 3. Don't Put Logic in Tests หลีกเลี่ยงการใส่ logic ทั้งหลาย (if-else, loop, หรือแม้แต่การต่อสตริง) เพราะทำให้เทสต์มีความซับซ้อน เข้าใจได้ยาก และเสี่ยงต่อการมีบั๊ก (ในเทสต์) 4. Write Clear Failure Messages เขียน failure message ให้ชัดเจน มีเนื้อหาครบถ้วนเพียงพอที่จะไปดีบั๊กต่อได้ง่ายๆ 5. DAMP, Not DRY มีโค้ดซ้ำบางส่วนได้บ้างในเทสต์ หากมันช่วยให้เทสต์ตรงไปตรงมา และเข้าใจได้ง่ายขึ้น 6. Shared Values, Shared Setup การมีตัวแปรที่ใช้ร่วมกัน หรือ setup methods ควรทำให้ชื่ออ่านเข้าใจง่าย และมีวิธีที่จะ override ค่าตั้งต้นใน setup method ได้ รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-09-18
14 min
SE CORNER
EP59 - หลักการ Unit Testing แบบ Google ตอนที่ 1 - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้อ่าน SE at Google book กันต่อครับ Chapter 12 เป็นเรื่อง Unit Testing ที่ Google ให้ความสำคัญมากๆ โดยหนังสือมีคำแนะนำว่าควรจะออกแบบ unit test อย่างไรให้หลีกเลี่ยงปัญหา brittle test และทำให้ unit test suite ของเราดูแลรักษาได้ง่าย (test maintainability สูง) โดยหลักการที่ Google แนะนำ เช่น test state, not interactions ผมคิดว่าชัดเจนและมีประโยชน์มากๆ และเป็นจุดที่คนเขียน unit test จะสับสนว่าจะออกแบบเทสต์แบบไหนดี จึงคิดว่า EP นี้มีปะรโยชน์กับการทำงานจริงมากเลยครับ รายละเอียดจะเป็นอย่างไร ไปติดตามกันใน EP นี้ครับ
2022-09-11
13 min
SE CORNER
EP58 - Software Apocalypse วันซอฟต์แวร์กลืนโลก
EP นี้ ชวนคุยเรื่องน่าสนใจที่ไปอ่านเจอใน Article จาก The Atlantic ครับ เรื่อง "The Coming Software Apocalypse" (https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/) อ่านแล้วคิดว่าน่าสนใจมากๆ เลย บทความชี้ให้เห็นว่าโลกเรา ณ ปัจจุบันกำลังถูกกลืนกินด้วยซอฟต์แวร์ และถ้าเรายังปล่อยให้ซอฟต์แวร์มีปัญหา (บั๊ก) เยอะแยะแบบนี้ต่อไปเรื่อยๆ วันนึงซอฟต์แวร์จะทำให้เราถึงวันสิ้นโลก บทความนี้ยกตัวอย่างเคสปัญหาจากซอฟต์แวร์ที่ทำให้เกิดโศกนาฎกรรมหรือความเสียหายอย่างรุนแรงหลายๆ เคส ที่น่าสนใจครับ นอกจากนี้บทความยังชี้ให้เห็นว่าการเขียนโค้ดแบบที่เราทำอยู่ปัจจุบันอาจจะไม่ใช่วิธีที่ดีที่สุดในการพัฒนาซอฟต์แวร์อีกต่อไป นักพัฒนาซอฟต์แวร์น่าจะต้องผันตัวมาเป็น "นักออกแบบ" ซอฟต์แวร์มากกว่า รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-09-04
14 min
SE CORNER
EP57 - อธิบายเรื่องการค้นหาโค้ดที่ ก๊อปปี้มาและไลเซนส์โค้ดบน Stack Overflow
EP นี้ขออธิบายเพิ่มเติมเรื่องงานวิจัยสมัยปริญญาเอกเรื่อง "การตรวจวัดความเหมือนของโค้ดและการค้นหาโค้ดโคลนในข้อมูลโค้ดขนาดใหญ่" (Code Similarity and Clone Search in Large-Scale Source Code Data)" ที่ได้รับการนำไปประชาสัมพันธ์ผ่านช่องทางสื่อ (เช่น Techhub facebook page) ครับ มีคนสนใจและมีคอมเม้นต์อยู่เยอะพอสมควร (ขอบคุณมากๆ เลยครับ) แต่พอดีเห็นว่ามีบางคอมเม้นต์ที่อาจจะเข้าใจงานและเนื้อหาที่ต้องการจะสื่อสารคลาดเคลื่อนไปบ้างบางส่วน ก็เลยขอใช้ EP นี้เพื่ออธิบายงานเพิ่มเติมครับ :-) รายละเอียด ติดตามได้ใน EP นี้เลยครับ
2022-08-28
10 min
SE CORNER
EP56 - Flaky Tests รันผ่านบ้าง ไม่ผ่านบ้าง เกิดจากอะไร?
หากท่านเขียนเทสต์แล้วพบว่ามีเทสต์บางส่วนที่บางทีก็รันผ่าน บางทีก็ไม่ผ่าน สร้างความปวดหัวและหมดความมั่นใจในเทสต์ของตัวเอง ปัญหานี้เรียกว่า flaky test หรือ non-deterministic test ครับ EP นี้จะพาไปฟังคำแนะนำจาก Martin Fowler เจ้าพ่อสายวิศวกรรมซอฟต์แวร์ ว่า flaky test เกิดจากอะไร และแก้ปัญหาได้อย่างไรบ้าง รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-08-21
10 min
SE CORNER
EP55 - Testability เขียนโค้ดให้เทสท์ง่าย ต้องทำยังไง?
EP นี้ชวนมาคุยเรื่องหลักการ testability ของซอฟต์แวร์ที่ผมคิดว่าเป็นหลักการพื้นฐานที่สามารถนำไปใช้ได้ทุกๆ แพลตฟอร์มและทุกๆ ภาษาครับ ซอฟต์แวร์ใดๆ จะทดสอบยากหรือง่าย เราเรียกว่า "testability" ถ้าค่านี้สูงก็คือทดสอบง่าย แต่ถ้าต่ำก็คือทดสอบยาก ซึ่งเจ้า testability นี้ไม่ต้องหาอะไรมาวัดก็ได้นะครับ ให้คิดถึงสองปัจจัยหลักๆ คือ 1. controllability - สามารถกำหนดหรือควบคุม behavior ของซอฟต์แวร์ที่จะทดสอบได้ง่ายแค่ไหน ผ่าน input ที่เราจะให้เข้าไป 2. observability - สามารถดูหรือวัดค่าผลลัพธ์จากการทดสอบซอฟต์แวร์ได้ง่ายแค่ไหน ผ่าน output ที่ออกมา ถ้าเข้าใจหลักการนี้แล้ว สามารถนำไปประยุกต์ใช้ให้การเขียนโค้ดของเราสามารถทดสอบได้ง่ายขึ้น ได้ทุกๆ ภาษา ทุกๆ เทคโนโลยีเลยครับ รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-08-14
09 min
SE CORNER
EP54 - Testing นั้น สำคัญไฉน? (ต้องถามอีกเรอะ!) ตอนที่ 2 - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้มาต่อกันที่ Chapter 11 ของ Software Engineering at Google ครับ เรามาดูกันว่า Google ฝ่าฝันการนำ testing มาใช้จนเป็นวัฒนธรรมองค์กรได้อย่างไร . ทีมใน Google มีกระบวนการในการปลูกฝังการทำ test ตั้งแต่ปี 2005 โดยใช้กระบวนการหลักๆ สามอย่างคือ 1. อบรมเรื่องการทำ test และ automated test ตั้งแต่ตอนปฐมนิเทศน์ และให้คนใหม่ๆ ช่วยปรับแนวคิดของคนเก่าๆ ในองค์กร 2. มีการให้ Test certified โดยแบ่งระดับของทีมออกเป็น 5 ระดับ ตั้งแต่ 1 (พื้นฐาน) จนถึง 5 (เทพสุดๆ) (หลักจากทำได้ 1,500 โปรเจคท์ แนวคิดนี้ได้ถูกแทนที่ด้วยกระบวนการใหม่ที่ automated ชื่อ Project Health (pH) แทน) 3. ใช้โครงการ Testing on the Toilet (TotT) โดยเอาบทความส่งเสริมความรู้ด้าน testing ไปแปะในห้องน้ำ เรียกว่า โดนบังคับให้อ่านกันเลยทีเดียว ซึ่งได้รับผลตอบรับที่ดีมาก และยังทำมาจนถึงปัจจุบัน . รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-08-07
12 min
SE CORNER
EP53 - Testing นั้น สำคัญไฉน? (ต้องถามอีกเรอะ!) ตอนที่ 1 - คำแนะนำจากหนังสือ Software Engineering at Google
ต้อนรับ Season 2 ด้วย EP53 จาก Chapter 11 ของหนังสือ Software Engineering at Google กันครับ . EP นี้เป็นเรื่องการทดสอบซอฟต์แวร์ (Software Testing) ซึ่งถือว่าเป็นรากฐานสำคัญของการพัฒนาซอฟต์แวร์ที่ Google และเป็นส่ิงที่ Google ทำได้ดีและมีชื่อเสียงมาก ใน EP นี้เลยชวนมาคุยเรื่องความสำคัญของการ test, ทำไมต้องทำ test automation, test size และ test scope . รายละเอียดจะเป็นยังไง ไปฟังกันใน EP นี้ครับ
2022-07-31
15 min
SE CORNER
EP52 - Retrospective: 1 ปีในการทำ SE Corner Podcast
EP นี้ไม่ได้มาเล่าเรื่อง software engineering ครับ แต่จะขอทำรีวิวตัวเองในการทำ SE Corner Podcast นี้มาครบ 1 ปีเต็มๆ เนื่องจากเป็นพอดแคสต์เกี่ยวกับวิศวกรรมซอฟต์แวร์ ก็เลยขอใช้วิธีการ retrospective สักหน่อย จะได้เข้าธีม :-) ใน EP นี้ผมเลยมาเล่าให้ฟังว่ามีเรื่องไหนบ้างที่ผมคิดว่า (1) ผมทำได้ดี (what we did well), (2) ผมยังสามารถปรับปรุงได้ (what we can do better), และ (3) อะไรที่จะเริ่มทำหลังจากนี้ไป (actions) รายละเอียด ไปฟังกันใน EP นี้เล้ย!
2022-07-24
18 min
SE CORNER
EP51 - อ้าว เฮ้ย! รวมความเข้าใจผิดในกระบวนการพัฒนาซอฟต์แวร์ที่ใช้ Machine Learning
Machine learning-enabled systems หรือระบบซอฟต์แวร์ที่มี machine learning เป็นส่วนประกอบ เป็นซอฟต์แวร์ที่พบได้มากขึ้นเรื่อยๆ ในปัจจุบัน งานวิจัยจาก Software Engineering Institute (SEI) ที่ Carnegie Mellon University โดย Grace Lewis และ Ipek Ozkaya พบว่า ทีมพัฒนาของระบบดังกล่าวมักจะประกอบด้วยทีม 3 ทีมที่มีความรู้และความเข้าใจในด้านที่แตกต่างกัน คือ data scientist, software engineering, และ operations ทีม data scientist มีหน้าที่สร้าง ML model แล้วส่งต่อให้ทีม software engineering นำไปรวมกับส่วนอื่นๆ ของซอฟต์แวร์ให้ออกมาเป็นระบบที่คนใช้งานได้ง่าย และสุดท้ายส่งต่อให้ operations ทีม เพื่อนำไปติดตั้งและ monitor การทำงาน งานวิจัยของ Grace และ Ipek พบว่า ยังมีความเข้าใจผิดและปัญหาในการสื่อสารระหว่างสามทีมนี้อยู่มาก ทำให้ซอฟต์แวร์ที่ใช้ Machine Learning หลายๆ ตัว ไม่ประสบความสำเร็จเท่าที่ควร ทั้งก่อนและหลังการขึ้น production รายละเอียดจะเป็นอย่างไร ไปติดตามกันใน EP นี้ครับ
2022-07-17
12 min
SE CORNER
EP50 - สรุปเนื้อหาจาก Stack Overflow Developer Survey 2022
EP นี้เอารายงานผลของ Stack Overflow Developer Survey 2022 มาเล่าให้ฟังกันครับ เนื้อหามีเยอะมากๆ เลยสรุปสั้นๆ ในแต่ละด้านมาให้ฟังกัน น่าสนใจทั้งนั้นเลย คนเรียนที่จะโค้ดเองมากขึ้น Docker ได้รับความนิยมสูงขึ้น Rust เป็นภาษาที่คนรักที่สุด 7 ปีซ้อน แต่ JavaScript เป็นภาษาที่คนเขียนเยอะที่สุด Clojure เป็นภาษาที่ได้เงินเดือนเยอะสุด Tools ด้าน Big-data, data streaming ทำเงินได้เยอะสุด บริษัทใหญ่ๆ เริ่มทำงานแบบ hybrid คนจำนวนมากใช้เวลา 30-60 นาที (หรือมากกว่า) ต่อวันหาคำตอบเพื่อแก้ปัญหา programming รายละเอียดจะเป็นยังไง ไปฟังกันใน EP นี้ครับ ที่มา Stack Overflow Developer Survey 2022: https://survey.stackoverflow.co/2022/
2022-07-10
13 min
SE CORNER
EP49 - Document มีประโยชน์อย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้มาคุยกันต่อจาก EP ที่แล้วเรื่องการเขียน document ครับ Google แบ่งชนิดของ document ออกเป็น 5 ชนิด คือ 1. Reference documentation, including code comments 2. Design documents 3. Tutorials 4. Conceptual documentation 5. Landing pages แล้วแต่ละอันมีความแตกต่างกันอย่างไร ใครคือคนอ่าน? มีวิธีเขียนอย่างไรให้เหมาะสม? นอกจากนี้เรายังไปดูว่ามีวิธีการ review ตัว document อย่างไร และมี tips & tricks อะไรในการเขียน document ที่ดีบ้าง รายละเอียด ติดตามได้ใน EP นี้ครับ :)
2022-07-03
16 min
SE CORNER
EP48 - Document มีประโยชน์อย่างไร? (ตอนที่ 1) - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้พากลับไปอ่าน Chapter 10 ในหนังสือ Software Engineering at Google เรื่อง Documentation กันครับ เราจะพาไปดูว่า Google แปลความหมายของ document อย่างไร และประโยชน์ของการเขียน document (ซึ่ง write once, read many times) นั้นมีอะไรบ้าง นอกจากนี้ผมจะเล่าให้ฟังว่าแนวทางการแก้ปัญหาว่า dev ไม่อยากเขียน document นั้นจะต้องทำอย่างไร จากประสบการณ์ของ Google เอง รายละเอียดไปฟังกันใน EP นี้ครับ
2022-06-27
12 min
SE CORNER
EP47 - ก๊อปปี้โค้ดจาก Stack Overflow อย่าลืม CC BY-SA 4.0 license
EP ชวนคุยเรื่อง software license โดยเฉพาะ license ของโค้ดบน Stack Overflow โค้ดและเนื้อหาใดๆ บน Stack Overflow นั้น ไม่ได้เป็น public domain แต่อยู่ภายใต้ license ชื่อ Creative Commons Attribution-ShareAlike 4.0 International (หรือ CC BY-SA 4.0) ซึ่งมีแนวทางกำหนดไว้ว่าสามารถนำไปใช้ได้ แต่จะต้อง (1) ให้ attribution หรือให้เครดิตกลับมาที่เจ้าของเนื้อหา และ (2) หากนำไปใช้ต่อ ผลงานนั้นๆ ก็จะต้องมี license CC BY-SA 4.0 หรือ license ที่รองรับด้วย เช่น Free Art license 1.3 หรือ GPLv3 EP นี้เลยอยากจะให้นักพัฒนาทุกท่านตระหนักไว้ทุกครั้งเรื่อง software license ก่อนที่จะก๊อปปี้โค้ดจาก Stack Overflow มาใช้ เพื่อจะได้ไม่ทำผิดข้อกำหนดของ license กัน รายละเอียดเพิ่มเติม ไปฟังกันใน EP นี้ครับ
2022-06-19
08 min
SE CORNER
EP46 - Case study การบริหารจัดการ documentation ที่ Google
อ่านๆ Software Engineering at Google บทที่ 10 แล้วไปเจอเรื่องแทรก เลยเปลี่ยนเรื่องเล่าใน EP นี้เลย :-) เป็น case study ของการเปลี่ยนจาก Google Wiki มาใช้ระบบ g3doc ที่ผสานเข้ากับ workflow การทำงานของ developer ที่ Google ได้อย่างดี ทำให้การทำ documentation กลายเป็นเรื่องง่าย และได้รับการยอมรับเป็นอย่างดีจาก developer เลยไปนั่งอ่านและดู talk ของคุณ Riona MacNamara ที่ป็น Google g3doc lead แล้วเอามาเล่าให้ฟังใน EP นี้แทนครับ SE at Google บทที่ 10 เรื่อง documentation เลยขอเลื่อนไปพูด EP ถัดไปแทนนะครับ ;-)
2022-06-12
08 min
SE CORNER
EP45 - กระบวนการ Code Review ที่ Google - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้พูดคุยเนื้อหาจากหนังสือ Software Engineering at Google ในบทที่ 9 เรื่อง Code Review มีเรื่องที่น่าสนใจหลายเรื่องเช่น Code review ที่ Google จะต้องมีการตรวจสอบสามอย่าง คือ correctness (ความถูกต้อง), comprehension (ความเข้าใจง่าย ), และ consistency บางครั้ง ทั้งสามอย่างมีใน reviewer คนเดียว Code review ช่วยทำให้เกิด shared ownership ของโค้ดร่วมกันภายในทีม Code review ช่วยทำให้เกิดการแบ่งปันควารู้ภายในทีม Change ที่จะมารีวิวไม่ควรใหญ่มาก (ไม่เกิน 200 lines) รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-06-05
16 min
SE CORNER
EP44 - ลด Tech Debt ด้วยการสร้าง Tech Wealth
เราน่าจะรู้จักหนี้ทางเทคโนโลยี technical debt (tech debt) กันอยู่บ้างแล้ว มีตัวอย่างมากมายที่แสดงให้เห็นว่า tech debt ก่อให้เกิดปัญหาในภายหลังได้ร้ายแรงขนาดไหน ซอฟต์แวร์ทีมส่วนใหญ่กลัวว่าจะเผลอสร้าง tech debt กัน แต่สุดท้ายก็หนีมันไม่พ้น EP นี้พาไปดูบทความเรื่อง "Reframing tech debt" ของคุณ Leemay Nassery ที่เป็น engineering manager ของ Dropbox ที่บอกว่า เราควรจะปรับความคิดเสียใหม่ ให้เน้นไปที่การสร้างความมั่งคั่งทางเทคโนโลยีหรือ "Tech Wealth" แทนที่จะคอยมาลดหนี้ทางเทคโนโลยี (Tech Debt) โดยคอยใส่แพลนในการเพิ่ม tech wealth เข้าไปในทุกๆ sprint หรือทุกๆ quarter และ เมื่อระบบเราร่ำรวยไปด้วยความพร้อมของ infrastructure, scalability, stability, ทีมพัฒนามีความสุข จำนวน unit test ที่เพิ่มขึ้น ส่ิงเหล่านี้จะส่งผลให้ tech debt ลดลงไปเอง รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-05-29
07 min
SE CORNER
EP43 - เขียน requirements ให้ดีขึ้นได้ ด้วยเทคนิค EARS
EP นี้พาไปรู้จักกับเทคนิคการเขียน requirements ที่ดีและถูกใช้กันอย่างแพร่หลาย ชื่อว่า EARS (Easy Approach to Requirements Syntax) ซึ่งถูกสร้างขึ้นโดย Alistair Mavin และมีแพทเทิร์นการเขียนที่สำคัญ 5 แบบ คือ 1. Ubiquitous requirements 2. State-driven requirements 3. Event-driven requirements 4. Optional feature requirements 5. Unwanted behaviour requirements หากเราเขียนให้ดี requirements ทุกอันจะสามารถเลือกให้เข้ากับแพทเทิร์นใดแพทเทิร์นหนึ่งในห้าแบบนี้ได้เสมอ และจะทำให้ requirements ของเรา สั้น กระชับ เข้าใจง่าย และไม่กำกวม รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-05-22
11 min
SE CORNER
EP42 - โค้ดจาก GitHub Copilot ดีแค่ไหน?
EP นี้หยิบงานวิจัยใหม่เอี่ยมจาก Mining Software Repositories (MSR '22) ชื่อ "An Empirical Evaluation of GitHub Copilot’s Code Suggestions" โดย Nhan Nguyen and Sarah Nadi จาก University of Alberta มาเล่าให้ฟังกันครับ ทีมวิจัยนี้ศึกษาความถูกต้องและความเข้าใจง่าย (understandability) ของโค้ดที่แนะนำมาจาก GitHub Copilot โดยได้ใช้ตัวอย่างคำถาม 33 คำถามจาก LeetCode ซึ่งเป็น website สำหรับฝึกฝนการเขียนโปรแกรม และให้ Copilot สร้างคำตอบใน 4 ภาษา ได้แก่ภาษา Python, ภาษา Java, ภาษา Javascript และภาษา C ทีมวิจัยพบว่าในแง่ของความถูกต้อง คำตอบของ Copilot ในภาษา Java นั้นถูกต้องมากที่สุด (ผ่าน test cases ทั้งหมดใน LeetCode 100%) จำนวน 57% ของคำตอบทั้งหมด ตามมาด้วย Python (42%), C (39%) แต่ Javascript ทำได้ไม่ดีนักที่ 27% ในแง่ของความเข้าใจง่าย ทีมวิจัยใช้ค่า cognitive complexity กับ cyclomatic complexity ของโค้ดที่ Copilot แนะนำให้เป็นคำตอบ ผลพบว่าโค้ดจาก Copilot ส่วนใหญ่มีค่า complexity ต่ำ หรือเข้าใจได้ง่ายนั่นเอง รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-05-15
11 min
SE CORNER
EP41 - เพิ่ม Developer Experience (DX) ได้ ถ้าเข้าใจตรงจุด
EP นี้ชวนคุยเรื่อง developer experience หรือ DX ครับ คุณ Jean Yang เจ้าของบริษัท Akita ให้ความเห็นว่าต่อไปในอนาคต DX จะมีส่วนสำคัญอย่างมาก เพราะจำนวน developers ในโลกนี้เพิ่มขึ้นเรื่อยๆ (ตอนนี้มีจำนวนมากกว่าคนออสเตรเลียทั้งประเทศ!) เราจะสร้าง developer tools ที่ดีอย่างไร? เพื่อให้นักพัฒนามี DX ที่ดี และมีความสุขระหว่างการทำงาน เธอบอกว่านักพัฒนาซอฟต์แวร์จะต้องเจอกับซอฟต์แวร์ที่ซับซ้อนขึ้นเรื่อยๆ และเครื่องมือที่จะช่วยได้ดีที่สุด คือ เครื่องมือที่ทำให้พวกเขาเข้าใจความซับซ้อนของซอฟต์แวร์ได้มากขึ้น เครื่องมือเหล่านี้จะต้องเข้ากับ workflow และเครื่องมืออื่นๆ ที่ใช้ได้เป็นอย่างดี รวมถึงช่วยในการ package software และจัดลำดับความสำคัญของผลลัพธ์ที่อยากจะดูได้ รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-05-08
11 min
SE CORNER
EP40 - Coding Style สำคัญอย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้ไปอ่านบทที่ 8 ของหนังสือ Software Engineering at Google กันต่อ มาดูกันว่า Google สร้าง Style Guide ขึ้นมาจากหลักการทั้ง 5 ที่กล่าวไปก่อนหน้าได้อย่างไร? กฎทั้งหลายใน Style Guide สามารถเปลี่ยนได้หรือไม่และมีวิธีการอย่างไร? การนำกฎไปใช้ นำไปใช้ตอนไหนและใช้อย่างไร? เนื้อหาทั้งหมดนี้ ไปฟังกันใน EP นี้ครับ
2022-05-01
15 min
SE CORNER
EP39 - Coding Style สำคัญอย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้กลับมาอ่านหนังสือ Software Engineering at Google ต่อ ในบทที่ 8 "Style Guides and Rules" ที่พูดถึงเรื่องการกำหนดแนวทางการเขียนโค้ดในบริษัทกูเกิ้ล EP จะเป็นตอนที่ 1 ที่พูดถึงหลักการสำคัญ 5 ประการในการกำหนด coding styles and guides ซึ่งได้แก่ Pull their weight - styles guide ควรมีแค่สิ่งที่สำคัญและจำเป็นจริงๆ Optimize for the reader - style guide ควรคำนึงถึงผู้อ่านมากกว่าผู้เขียนโค้ด Be consistent - style guide ควรทำให้โค้ดมีความสม่ำเสมอ ตรงกัน Avoid error-prone and surprising constructs - style guide ควรทำให้นักพัฒนาหลีกเลี่ยงการใช้ code ที่ทำให้เกิดปัญหาหรือความเข้าใจผิดได้ง่าย Concede to practicalities when necessary - หากจำเป็นจริงๆ ก็สามารถแหกกฎบางส่วนได้ เช่น เพื่อ performance หรือเพื่อการรองรับแพลตฟอร์มที่หลากหลาย รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ Google coding style guide: https://google.github.io/styleguide/
2022-04-24
16 min
SE CORNER
EP38 - "To Microservices and Back Again" เมื่อไมโครเซอร์วิสไม่ตอบโจทย์
EP นี้หยิบบทความเรื่อง "To Microservices and Back Again - Why Segment Went Back to a Monolith" ซึ่งเล่าตัวอย่าง case study ของบริษัท Segment ที่เคยพยายามจะแก้ปัญหา Environment Isolation ของซอฟต์แวร์ตนเองด้วยไมโครเซอร์วิส แต่สุดท้ายกลับพบว่าเจอปัญหาที่บริหารจัดการได้ยากกว่าเก่า และสุดท้ายเลือกที่จะกลับมาใช้สถาปัตยกรรมแบบ Monolith อีกครั้งหนึ่ง ปัญหาเริ่มต้นคืออะไร ทำไมย้ายไปไมโครเซอร์วิสแล้วไม่เวิร์ค ไปฟังกันใน EP นี้ครับ
2022-04-17
08 min
SE CORNER
EP37 - Code Review เมื่อส่ิงที่หวัง กับ สิ่งที่ได้ อาจจะไม่ตรงกัน
EP นี้หยิบงานวิจัยที่เก่าหน่อยแต่ยังมีประโยชน์อยู่มาเล่าให้ฟังกันครับ เป็นงานวิจัยของ Alberto Bacchelli และ Christian Bird ที่ Microsoft ชื่อว่า "Expectations, Outcomes, and Challenges Of Modern Code Review" ซึ่งเป็นงานวิจัยที่ศึกษาจากนักพัฒนาของไมโครซอฟต์และพยายามเข้าใจ 3 อย่าง คือ (1) ความคาดหวังจากการทำ code review, (2) ผลที่ได้จากการทำ code review และ (3) ปัญหาหรือความท้าทายในกระบวนการ code review ส่วนใหญ่ทุกคนน่าจะคิดว่าการทำ code review มีเป้าหมายหลักอยู่ที่การหาบั๊กในโค้ดที่เขียนขึ้นใหม่หรือโค้ดที่ถูกแก้ไข นักพัฒนาที่ไมโครซอฟต์ก็คิดแบบนั้น แต่ผลลัพธ์ที่ได้จริงกลับพบว่าการหาบั๊กไม่ใช่ผลลัพธ์อันดับแรกๆ แต่กลับเป็น code improvement หรือการปรับปรุงการเขียนโค้ด ทำไมสิ่งที่หวังกับสิ่งที่ได้จึงไม่ตรงกัน? ไปหาคำตอบใน EP นี้ครับ อ่านงานวิจัยฉบับเต็ม: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/ICSE202013-codereview.pdf
2022-04-10
12 min
SE CORNER
EP36 - "I test in production" เมื่อการทดสอบใน production เป็นส่ิงที่ควรและต้องทำ
ท่านผู้ฟังอาจจะเคยเห็นมีมอันนี้ "I don’t always test my code, but when I do, I test in production." - the Most Interesting Man in the World ซึ่งก็เป็นมีมขำๆ ที่ให้ชวนหัวเราะว่า การปล่อยให้ซอฟต์แวร์ไปถูกทดสอบบน production นี่มันช่างกล้า เหมือนฆ่าตัวตายชัดๆ Charity Majors (CTO ของบริษัท honeycomb.io) เธอบอกว่าการทดสอบไม่ได้จำกัดหรือไม่ควรถูกจำกัดอยู่แค่ระหว่างการพัฒนาหรือ staging enviroment เท่านั้น แต่ควรจะต้องรวมถึง production ด้วย เนื่องจากการ deploy หรือการใช้งานจริงจากผู้ใช้ เราจะเจอกับตัวแปรที่ควบคุมไม่ได้ (หรือไม่ได้อยู่ในการควบคุม) ระหว่างที่เราทดสอบซอฟต์แวร์อีกเยอะมากๆ คำแนะนำคือเราต้องยอมรับและเตรียมพร้อมรับมือกับมันต่างหาก รายละเอียดจะเป็นอย่างไร ไปติดตามกันใน EP นี้ครับ
2022-04-04
10 min
SE CORNER
EP35 - Measuring Engineering Productivity เราจะนำการวัดมาใช้ประโยชน์ในกระบวนการพัฒนาซอฟต์แวร์อย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google
Episode นี้พาท่านผู้ฟังกลับไปอ่านหนังสือ Software Engineering at Google กันต่อ ใน Chapter 7 จะเป็นเรื่อง Measuring Engineering Productivity ที่อธิบายว่า Google นำการวัดมาใช้ประโยชน์ในกระบวนการพัฒนาซอฟต์แวร์ อย่างไร ที่ Google จะมีทีมวิจัยเฉพาะที่ตั้งขึ้นมาเพื่อทำการวัดผลในหลากหลายกระบวนการ โดยทีมวิจัยนี้จะประกอบไปด้วยนักวิจัยด้านวิศวกรรมซอฟต์แวร์และด้านอื่นๆ ที่เกี่ยวข้อง เช่น จิตวิทยา (เพื่อเข้าใจความรู้สึกของนักพัฒนา) หรือนักเศรษฐศาสตร์ เป็นต้น และทีมนี้จะช่วยเหลือองค์กรเมื่อต้องการผลไปใช้ทำการตัดสินใจ เช่น องค์กรควรทำกระบวนการนี้ต่อไปหรือไม่? สิ่งเหล่านี้มีประโยชน์ต่อนักพัฒนาหรือไม่? วิธีการ measurement ใน Google เป็นอย่างไร และมีประโยชน์อย่างไร ไปฟังกันใน EP นี้ครับ
2022-03-27
14 min
SE CORNER
EP34 - Building for the 99% Developers เมื่อ dev tools ที่ชอบ อาจจะไม่ใช่ tools ที่ใช่?
EP ที่ 34 นี้เอาบทความจากเว็บไซต์ a16z.com ของคุณ Jean Yang มาเล่าให้ฟังครับ ผู้เขียนบอกว่า developer tools/platforms/environments ทั้งหลายที่มีอยู่ในปัจจุบันนั้นเกือบทั้งหมดจะถูกสร้างขึ้นและนำมาใช้ในบริษัทใหญ่ๆ เช่น Facebook-Apple-Amazon-Neflix-Google ไม่ว่าจะเป็น microservices, GraphQL, DevOps นั้น อาจจะไม่ได้จำเป็นต้องนำมาใช้และยิ่งกว่านั้นคือ อาจจะไม่เหมาะกับบริษัทของเราด้วย เราต้องเลือกดูว่าบริษัทและทีมของเรามีรูปแบบการทำงานอย่างไร ขนาดของทีม Support ที่มี มีมากน้อยขนาดไหน รวมถึงลูกค้าและข้อจำกัดอื่นๆ ดังนั้นเพื่อ developer ของเรามีความสุขกับการทำงาน (เดี๋ยวนี้เรียกว่า developer experience) เราไม่ควรจะต้องไล่ตาม technology ใหม่ล่าสุดเสมอไป เราต้องคิดถึงคนส่วนใหญ่ของเรา นั่นก็คือ 99% Developers นั่นเอง เนื้อหาจะเป็นอย่างไร ไปฟังกันใน Episode นี้ครับ ที่มา https://future.a16z.com/software-development-building-for-99-developers/
2022-03-20
13 min
SE CORNER
EP33 - เล่างานวิจัยให้ฟัง "ความท้าทายด้าน Software Engineering ของซอฟต์แวร์ SME ในประเทศไทย"
EP นี้ขอหยิบงานวิจัยล่าสุดมาเล่าให้ฟังกันครับ ผมและทีมอาจารย์จากคณะ ICT มหิดล ร่วมกับนักวิจัยจาก University College London ร่วมกันกับบริษัทซอฟต์แวร์ในประเทศไทย 4 บริษัท เพื่อศึกษาถึงปัญหาและความท้าทายในการพัฒนาซอฟต์แวร์ของบริษัทซอฟต์แวร์ขนาดเล็กไปถึงกลาง หรือที่เรียกว่า SME ในประเทศไทย ว่ามีอะไรบ้าง เพื่อที่เราจะให้หาวิธีการแก้ไขปัญหาและความท้าทายเหล่านั้นด้วยกัน ผ่านการใช้งานวิศวกรรมซอฟต์แวร์อัตโนมัติ หรือ Automated Software Engineering ซึ่งได้แก่ การนำเครื่องมือแบบอัตโนมัติเข้ามาใช้งานเพื่อให้นักพัฒนาไปโฟกัสกับงานส่วนอื่นที่จำเป็นต้องใช้ความสามารถและความคิดสร้างสรรค์ของคน ตัวอย่างความท้าทายที่เราพบ ได้แก่ software testing, software measurements, requirements และ effort estimation รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-03-13
12 min
SE CORNER
EP32 - Coding for Humans and Computers สาขาวิจัยใหม่ที่จะช่วยปรับปรุงโค้ดให้เข้าใจง่ายขึ้นแบบอัตโนมัติ
EP นี้จะพาไปดูสาขางานวิจัยใหม่ที่บอกว่า "โค้ดที่เราเขียนขึ้นไม่ใช่แค่ให้คอมพิวเตอร์เข้าใจนะ แต่เรายังต้องการให้คนก็เข้าใจง่ายด้วย" ซึ่งทีมวิจัยจาก University of California Davis กำลังศึกษาอยู่ว่า เราสามารถที่จะใช้ machine learning เพื่อปรับปรุงโค้ดที่เราเขียนขึ้นมาแล้ว ให้อ่านง่ายขึ้น review ง่ายขึ้น และดูแลรักษาง่ายขึ้น ได้หรือไม่ นอกจากนี้เรายังสามารถใช้วิธีการคล้ายๆ กัน เพื่อช่วยแก้ปัญหาในการเขียนโปรแกรมที่คนเริ่มโค้ดใหม่ๆ มักจะมีปัญหาได้เช่นกัน แนวคิดนี้จะเป็นอย่างไร ลองไปฟังกันใน EP นี้ครับ
2022-03-06
06 min
SE CORNER
EP31 - The Developer Nation ในวันที่นักพัฒนาซอฟต์แวร์มีจำนวนเยอะกว่าประชากรบางประเทศ ประเทศใหม่นี้ต้องการอะไร?
EP นี้ชวนคุยเรื่องการเติบโตอย่างก้าวกระโดดของจำนวนนักพัฒนาซอฟต์แวร์และการสนับสนุนที่นักพัฒนาซอฟต์แวร์เหล่านั้นต้องการ ผมหยิบบทความจาก IEEE Software ชื่อ "The Developer Nation" มาเล่าให้ฟัง เนื้อหาจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
2022-02-27
09 min
SE CORNER
EP30 - AlphaCode: เมื่อ AI เริ่มเขียนโค้ดได้เกือบเท่าคน แล้วคนไปทำอะไรดี?
EP นี้เอางานวิจัยล่าสุดของ DeepMind ชื่อ "Competitive programming with AlphaCode" มาเล่าสู่กันฟังครับ งานนี้เป็นการพัฒนาระบบปัญญาประดิษฐ์ชื่อ AlphaCode ที่สามารถอ่านโจทย์ปัญหาภาษามนุษย์ (ภาษาอังกฤษ) แล้วสร้างโปรแกรมที่สามารถแก้ปัญหาดังกล่าวออกมาได้ โดยผลการทดสอบจากโจทย์จริงบนระบบของ Codeforces พบว่าเจ้า AlphaCode สามารถทำคะแนนได้ในระบบ Top 54% เทียบกับคนที่เข้าร่วมการแข่งขันทั้งหมด ทำให้น่าคิดว่า เหมือนว่างาน programming ก็จะสามารถให้คอมพิวเตอร์และซอฟต์แวร์ทำแทนเราได้แล้วในอนาคตอันใกล้ แล้วถ้าอย่างนั้นในอนาคต คนเราไปทำอะไรดี? ลองไปค้นหากันดูใน EP นี้ครับ
2022-02-20
13 min
SE CORNER
EP29 - Positive patterns ที่ Engineering Manager ควรทำเพื่อสร้างทีมที่แข็งแกร่ง - คำแนะนำจากหนังสือ Software Engineering at Google
Episode นี้ต่อตอนที่สองของ How to Lead a Team จาก Chapter 5 ของหนังสือ Software Engineering at Google มีคำแนะนำดีๆ ในการทำงานเป็น engineering manager ที่จะช่วยให้สร้างทีมที่แข็งแกร่งได้ ปล่อยวางอีโก้ ทำตัวนิ่ง สงบ สยบเคลื่อนไหว เป็นคาตาลิสต์และกำจัดสิ่งกีดขวางของทีม พูดอย่างจริงใจ คอยติดตามความสุขและความก้าวหน้าของลูกน้อง เนื้อหาจะเป็นอย่างไร ไปติดตามกันใน EP นี้ครับ :)
2022-02-13
16 min
SE CORNER
EP28 - 6 Antipatterns ที่ Engineering Manager ควรหลีกเลี่ยง - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้กลับมาอ่านหนังสือ Software Engineering at Google ต่อครับ Chapter 5 เรื่อง How to Lead a Team เป็นเรื่องเกี่ยวกับการบริหารจัดการ software team ของ engineering manager และ teach lead โดยหนังสือได้ยกตัวอย่างทั้งวิธีการที่ควรหลีกเลี่ยงและวิธีการที่ควรปฏิบัติ ใน EP จะสรุปส่วนของ 6 antipatterns หรือ 6 วิธีการที่ควรหลีกเลี่ยงก่อน ดังนี้ครับ 1. Hire Pushovers - เลือกจ้างเฉพาะลูกน้องที่สั่งได้ง่ายๆ 2. Ignore Low Performers - ไม่สนใจคนที่ทำงานไม่ดี 3. Ignore Human Issues - ไม่สนใจปัญหาความสัมพันธ์ ให้ความสำคัญแค่กับปัญหาเทคนิคเท่านั้น 4. Be Everyone's Friend - อยากรักษาความสัมพันธ์กับเพื่อนร่วมงานไว้ ทำตัวเหมือนเป็นเพื่อนกับลูกน้อง 5. Compromise the Hiring Bar - ไม่มีมาตรฐานที่ชัดเจนในการรับคนเข้าทีม 6. Treat Your Team Like Children - ดูแลลูกน้องเหมือนเด็กๆ ไม่ให้ความเชื่อใจ รายละเอียดจะเป็นยังไง ไปฟังกันใน EP นี้ครับ :)
2022-02-06
15 min
SE CORNER
EP27 - Deliver Software ให้ดีขึ้น เร็วขึ้น ทำอย่างไร - งานศึกษาจาก DevOps Research and Assessment (DORA) ที่ Google Cloud
EP นี้นำผลการศึกษาจาก DevOps Research and Assessment (DORA) ที่ Google Cloud มาแชร์ให้ฟังกันครับ เราสามารถแบ่งองค์กร IT ออกเป็นกลุ่มๆ ในด้าน software delivery and operational performance ได้โดยใช้ตัวชี้วัด 4 อย่างคือ Deployment frequency (deploy บ่อยแค่ไหน), Lead time for change (โค้ดที่ commit ขึ้นไป production เร็วแค่ไหน), Time to restore service (เมื่อระบบมีปัญหาแล้ว กู้กลับได้เร็วแค่ไหน), และ Change failure rate (โค้ดที่แก้ทำให้เกิด software failure บ่อยแค่ไหน) และถ้าพบว่าเรายังสามารถหรือควรต้องปรับปรุงในด้านใดด้านหนึ่ง สามารถลองทำตามคำแนะนำต่อไปนี้ครับ ใช้ Cloud นำหลักการ Site Reliability Engineering (SRE) มาใช้ ทำ Document ให้ดี คิดถึง Security ตั้งแต่ตอนพัฒนา ใช้เทคนิค DevOps ต่างๆ เช่น CI/CD, continuous testing อ่านเพิ่มเติม: https://www.devops-research.com/research.html (2021 Accelerate State of DevOps Report)
2022-01-30
18 min
SE CORNER
EP26 - เปลี่ยนภาษา Programming ไม่ใช่เรื่องง่ายๆ เพราะอะไร?
เคยสงสัยมั้ยครับเวลาเราเปลี่ยนภาษาที่เขียน แรกๆ อาจจะง่าย แต่เอาจริงๆ ถ้าจะเขียนให้ดีระดับเซียน กลายเป็นยากมากๆ เหมือนว่าเริ่มเรียนภาษานี้แต่แรกอาจจะง่ายซะกว่า คุณไม่ใช่คนเดียวครับ งานศึกษาจาก North Carolina State University และ Microsoft พบว่า developers ส่วนใหญ่ (61%) ก็มีปัญหาเช่นเดียวกัน ซึ่งสาเหตุมาจากการรบกวนกันระหว่างสองภาษา (interference) ซึ่งเกิดขึ้นได้จากหลายสาเหตุ เช่น ติดนิสัยเดิมๆ มาจากภาษาเก่า paradigm shift ในการเขียนภาษาใหม่ เอกสาร documentation ของภาษาใหม่ไม่ดี หรือ การเปลี่ยนชุดเครื่องมือ
2022-01-23
15 min
SE CORNER
EP25 - สร้างเสริม Knowledge Sharing ในองค์กร (ตอนที่ 2) - Code Readability - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้คุยกันต่อเรื่องการสร้างเสริม knowledge sharing ในองค์กร โดยเน้นไปที่ตัว code เช่น documentation, code comment, และกระบวนการที่ใช้กันใน Google ที่เรียกว่า "Readability" ซึ่งเป็นกระบวนการปรับปรุงคุณภาพของโค้ด รวมถึงการบังคับใช้ best practices ขององค์กรผ่าน code review เรื่องนี้น่าสนใจมากเพราะ Google สามารถใช้วิธีนี้เพื่อควบคุมคุณภาพของโค้ดในหลากหลายโปรเจคท์ หลากหลายภาษา ใน repository ที่มีเพียงแค่หนึ่งเดียว (monorepo) ได้ และทำให้โค้ดอ่านได้ง่ายและเข้าใจได้แม้ว่าจะถูก maintain มานานเป็นระยะเวลาหลายปีก็ตาม รายละเอียดเป็นอย่างไร ไปฟังกันใน EP นี้ครับ :)
2022-01-16
15 min
SE CORNER
EP24 - สร้างเสริม Knowledge Sharing ในองค์กร (ตอนที่ 1) - Building Learning Culture - คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้กลับมาคุยเนื้อหาบทที่ 3 ในหนังสือ Software Engineering at Google กันต่อครับ เราจะบริหารองค์กรอย่างไรให้มีการแบ่งปันความรู้และเป็น learning organization ได้ บทเรียนจาก Google มีดังนี้ครับ Challenges to Learning: ต้องกำจัดปัญหาที่ขัดขวางการเรียนรู้ในองค์กร (เช่น information islands, single point of failure) ออกไป Setting the Stage: สร้างบรรยาการเรียนรู้ให้เกิดขึ้นในองค์กร Scaling Your Questions: ส่งเสริมการถาม-ตอบหลากหลายรูปแบบในองค์กร Scaling Your Knowledge: ส่งเสริมให้คนที่รู้ แบ่งปันความรู้ให้คนอื่น ส่วนรายละเอียดเป็นยังไงนั้น ไปฟังใน SE Corner Podcast EP นี้กันครับ
2022-01-09
15 min
SE CORNER
EP23 - Software Development Trends ในปี 2022
Happy New Year 2022 ครับทุกท่าน EP นี้ผมลองหาข้อมูลดูว่า Software Development Trends of 2022 ที่น่าสนใจมีอะไรบ้าง สรุปได้มา 7 เรื่อง เลยเอามาเล่าสู่กันฟังครับ
2022-01-02
13 min
SE CORNER
EP22 - ความท้าทายในการบริหารจัดการ Agile Guilds: บทเรียนจาก Spotify
Spotify ถือเป็นหนึ่งในบริษัทที่นำ agile development มาใช้ได้อย่างมีประสิทธิภาพมากๆ เราน่าจะเคยได้ยินการแบ่ง agile team ออกเป็น squad, tribe และ chapter ซึ่งเป็นวิธีการที่ Spotify นำมาใช้ในบริษัทตนเอง และประกาศให้โลกได้รับรู้ในปี 2012 วิธีบริหารจัดการ large-scale agile ของ Spotify ก็ถูกนำมาใช้ต่อในบริษัทอื่นๆ จำนวนมาก EP นี้เราพาไปดูว่า Spotify แบ่ง guilds อย่างไรบ้าง มีความท้าทายหรือปัญหาอะไรในการสร้าง guilds และมีคำแนะนำอะไรบ้างที่จะทำให้การสร้าง agile guilds ประสบความสำเร็จอย่างที่ตั้งใจไว้
2021-12-26
16 min
SE CORNER
EP21 - อยากดึง Developers เก่งๆ เข้าบริษัท ต้องทำอย่างไร?
EP นี้พาไปดูผลสำรวจเรื่อง "New data: What developers look for in future job opportunities" ที่พยายามเข้าใจถึงปัจจัยสำคัญที่ส่งผลต่อการตัดสินใจย้ายงานของ Developers นอกเหนือจากเงินเดือนที่เพิ่มขึ้นแล้ว ปัจจัยสำคัญสองอย่างที่ Developers อยากได้คือ การได้เรียนรู้ส่ิงใหม่ๆ และ work-life balance
2021-12-19
11 min
SE CORNER
EP20 - Skillset ใหม่ที่ Software Engineer ต้องรู้ เพื่องานในอนาคต
เพื่อรองรับอนาคตของการพัฒนาซอฟต์แวร์ที่มีการเปลี่ยนแปลงกันก้าวกระโดดรายวัน software engineer ต้องอัพเดต skillset ของตัวเองอยู่อย่างสม่ำเสมอ EP นี้มาดูกันว่า 3 ด้านที่ software engineer ในอนาคตจะต้องมี นอกเหนือจากความรู้ด้าน SE ในปัจจุบันมีอะไรบ้าง
2021-12-12
12 min
SE CORNER
EP19 - AI4SE ปัญญาประดิษฐ์ x วิศวกรรมซอฟต์แวร์ (feat อ.มรกต)
EP นี้ชวน อ.มรกต เชิดเกียรติกุล จากคณะ ICT มหิดล มาคุยกันเรื่อง AI4SE หรือ Artificial Intelligence for Software Engineering มันคืออะไร ทำอะไรได้บ้าง มีประโยชน์อย่างไร ไปฟังกันใน EP นี้ครับ
2021-12-05
23 min
SE CORNER
EP18 - เขียนคอมเม้นต์ในโค้ดอย่างไรให้ดี? กฎ 9 ข้อจาก Stack Overflow
EP นี้พูดถึงกฎ 9 ข้อจาก Stack Overflow blog ชื่อ "Best practices for writing code comments" บางทีการใส่โค้ดคอมเม้นต์ ก็ไม่ใช่ว่าดีเสมอไป มาดูกันว่าทำอย่างไรให้คอมเม้นต์ที่เราใส่เข้าไปในโค้ดมีประโยชน์ต่อผู้อ่านและไม่ทำให้เกิดความสับสนหรือทำให้โค้ดอ่านยากกว่าเดิม
2021-11-27
13 min
SE CORNER
EP17 - อะไรคือสาเหตุที่ทำให้เกิด Technical Debt ในเกมส์?
แม้ว่าเกมส์จะเป็นซอฟต์แวร์แบบหนึ่ง แต่มีความแตกต่างจากซอฟต์แวร์ปกติหลายอย่าง EP นี้พาไปดูกันว่าปัจจัยอะไรบ้างที่ส่งผลให้เกิด technical debt ในเกมส์
2021-11-20
12 min
SE CORNER
EP16 - ทำงานเป็นทีมอย่างไรให้ดี คำแนะนำจากหนังสือ Software Engineering at Google
EP นี้กลับมาอ่านหนังสือ Software Engineering at Google ต่อครับ Chapter นี้ชื่อว่า How to work well on teams หรือ ทำงานพัฒนาซอฟต์แวร์เป็นทีมอย่างไรให้ดี มีข้อคิดดีๆ 3 ข้อ คือ 1. อ่อนน้อมถ่อมตน 2. เคารพผู้อื่น และ 3. มีความเชื่อใจ มาดูกันว่า Google นำหลักสามอย่างนี้ไปใช้ในองค์กรอย่างไร
2021-11-14
16 min
SE CORNER
EP15 - สรุปย่อ 10 ปีที่ผ่านมาของปัญหา Technical Debt เราอยู่ที่ไหนและจะทำยังไงกันต่อ?
EP นี้โฟกัสไปที่ปัญหา Technical Debt หรือหนี้ทางด้านเทคนิค ที่มักจะเกิดขึ้นกับการพัฒนาซอฟต์แวร์เนื่องจากทีมพัฒนามีการตัดสินใจบางอย่าง (ด้านการเขียนโค้ด สถาปัตยกรรม หรือ ด้านอื่นๆ) ที่ส่งผลลบในอนาคตต่อซอฟต์แวร์นั้นๆ ปัญหานี้ไม่ใช้ปัญหาใหม่ มีการศึกษาและหาวิธีแก้ปัญหากันมากว่าสิบปีแล้ว แต่ก็ยังคงเป็นปัญหาที่ยากและต้องมีการศึกษาวิจัยกันต่อไป มาดูกันว่า 10 ปีที่ผ่านมาเราเข้าใจ Technical Debt มากขึ้นแค่ไหน และยังเหลือปัญหาอะไรของ Technical Debt ให้ศึกษากันต่ออีกบ้าง
2021-11-07
14 min
SE CORNER
EP14 - ประสิทธิผลของโปรแกรมเมอร์แต่ละคน จริงๆ แล้วไม่ได้ต่างกันอย่างที่คิด
EP นี้หัวหน้าทีมหรือผู้บริหารต้องฟัง งานวิจัยจาก Software Engineering Institute, Carnegie Mellon University เผยให้เห็นว่าประสิทธิผล (productivity) โดยเฉลี่ยของโปรแกรมเมอร์ส่วนใหญ่ (ไม่นับที่เทพจริงๆ) นั้นไม่ได้แตกต่างกันมากนัก แถมพบว่าโปรแกรมเมอร์คนเดียวกันทำงานหลายๆ งานเร็วบ้างช้าบ้าง เป็นเรื่องปกติ
2021-10-31
14 min
SE CORNER
EP13 - Facebook นำ AI มาช่วยในการพัฒนาซอฟต์แวร์อย่างไร?
EP นี้ไปดู AI tool จำนวน 3 ตัวที่ช่วยนักพัฒนาที่ Facebook ในการพัฒนาซอฟต์แวร์ ให้ค้นหาโค้ดตัวอย่างได้ถูกต้อง รวดเร็วขึ้น และแถมยังช่วยแก้บั๊กให้ได้อีกด้วย!
2021-10-24
16 min
SE CORNER
EP12 - มีปัญหาในการนำ large-scale agile frameworks มาใช้? มาดูคำแนะนำกัน
หากคุณมีปัญหากับการนำ Large-scale agile frameworks เช่น SAFe, LeSS, Scrum at Scale มาใช้ คุณไม่ใช่เพียงคนเดียว! แม้แต่บริษัทขนาดใหญ่ระดับโลกก็มีปัญหาเช่นกัน EP นี้พาไปดูกันว่าเราจะแก้ปัญหาเหล่านั้นอย่างไร
2021-10-17
16 min
SE CORNER
EP11 - คำแนะนำ 21 ข้อในการเขียน requirements ที่ดี (ตอนที่ 2)
EP นี้มาต่อกันข้อที่ 11-21 จาก 21 Top Engineering Tips for Writing and Exceptionally Clear Requirements Document มีอีกหลากหลายคำแนะนำ เช่น เทคนิค EARS, หลีกเลี่ยง weak words รวมถึงหลีกเลี่ยงการใช้ "/"
2021-10-10
11 min
SE CORNER
EP10 - คำแนะนำ 21 ข้อในการเขียน requirements ที่ดี (ตอนที่ 1)
EP นี้ชวนมาคุยเรื่องคำแนะนำ 21 ข้อในการเขียน requirements ที่ชัดเจน ไม่สับสน เข้าใจง่าย และทำให้ไม่ต้องมาแก้ไขกันภายหลัง จากคำแนะนำของ QRA Corporation ชื่อ 21 Top Engineering Tips for Writing and Exceptionally Clear Requirements Document แบ่งเป็น 2 ตอน โดยตอนนี้มาดูข้อ 1-10 กันครับ
2021-10-03
15 min
SE CORNER
EP9 - รู้หรือไม่? Pixar จริงๆ แล้วเป็นบริษัทขายฮาร์ดแวร์มาก่อน!
EP นี้เล่าเรื่องประวัติบริษัท Pixar Animation Studios ที่หลายๆ คน (รวมถึงผม) ไม่เคยทราบมาก่อน เช่น บริษัทนี้จริงๆ เริ่มจากนักวิทยาศาสตร์ที่พยายามจะสร้างภาพยนตร์จากคอมพิวเตอร์ จนถึงสร้างคอมพิวเตอร์เฉพาะสำหรับ 3D movies และ RenderMan software ที่เป็นมาตรฐานของการทำภาพยนตร์แอนิเมชั่นในปัจจุบัน
2021-09-26
15 min
SE CORNER
EP8 - ชอบหรือไม่ชอบ WFH? ผลจาก Microsoft พบว่ามีทั้งสองด้าน
งานสำรวจที่ Microsoft ช่วง WFH ระหว่าง COVID-19 lockdown พบว่าจำนวนวิศวกรซอฟต์แวร์ของบริษัทยักษ์ใหญ่ที่ชอบและไม่ชอบทำงานที่บ้านมีเกือบเท่าๆ กัน แล้วยังพบว่าต่อให้ทำงานที่บ้าน productivity ก็ยังเท่าๆ เดิมหรือมากกว่าเดิมเกินครึ่งด้วยซ้ำ
2021-09-19
17 min
SE CORNER
EP7 - เขียนภาษาไหนดี? Python รั้งอันดับหนึ่งห้าปีซ้อน
EP พาไปดูผลการจัดอันดับ programming languages ที่ได้รับความนิยมมากที่สุดจากหลายสำนัก ได้แก่ IEEE, Stack Overflow, UC Berkeley ผลจาก IEEE ให้ Python รั้งอันดับหนึ่งอีกครั้ง หลังจากครองแชมป์มาสี่ปีแล้ว (2017-2020) Python ยังเป็นภาษาที่นักพัฒนาจาก Stack Overflow อยากเรียนมากที่สุด รวมกับเทรนด์ด้าน AI + ML + Data Science ทำให้ Python เป็นภาษาที่มาแรงสุดๆ ตอนนี้
2021-09-12
13 min
SE CORNER
EP6 - ถ้าซอฟต์แวร์ไม่ scale ยังไงก็ไม่เวิร์ค
EP นี้คุยเรื่อง scalability ของซอฟต์แวร์กันอีกครั้ง นักวิจัยด้านวิศวกรรมซอฟต์แวร์เสนอว่า เราหลีกเลี่ยงไม่ได้ที่จะมีซอฟต์แวร์ที่ขนาดใหญ่ขึ้นเรื่อยๆ แต่ที่เราควรจะต้องกังวลคือ ทำอย่างไรให้ซอฟต์แวร์รองรับการเติบโตได้ทั้งสามด้าน คือ ด้านของ scope, people และ time
2021-09-05
11 min
SE CORNER
EP5 - บุคลิกภาพ (personality type) ของนักพัฒนาซอฟต์แวร์แบบไหน ที่ burnout ง่าย?
EP นี้ชวนคุยเรื่องความสัมพันธ์ระหว่างบุคลิกภาพ (personality type) กับการ burnout ของนักพัฒนาซอฟต์แวร์ งานศึกษาพบว่ามีบุคลิกภาพบางแบบที่ส่งผลให้นักพัฒนาซอฟต์แวร์ มีปัญหา burnout ได้ง่ายกว่าแบบอื่น และเราควรจะจัดการกับคนในทีมที่มีบุคลิกภาพแบบนั้นอย่างไร
2021-08-29
06 min
SE CORNER
EP4 - Software Developers ฟังเพลงอะไรกัน?
EP นี้พาไปดูว่า เหล่า Software Developer เขาชอบฟังเพลงเพราะอะไร ฟังแนวไหน และฟังในช่วงไหนของการทำงานมากที่สุด ข้อมูลมาจากการเซอร์เวย์ Developer กว่า 2 พันคนครับ
2021-08-22
10 min
SE CORNER
EP3 - ความยั่งยืนของซอฟต์แวร์ ตอนที่ 2 (Scale and Efficiency) - Software Engineering at Google
Episode นี้คุยต่อเรื่องความยั่งยืนของซอฟต์แวร์ แต่เป็นในมุมของการขยายขนาด (Scale and Efficiency) ของทีม ของทรัพยากรที่จำเป็น และของโค้ด การที่เราจะควบคุมการขยายขนาดได้ดีนั้น มีเรื่อง Policy ขององค์กรที่เข้ามาเกี่ยวข้องและรวมถึงจะต้องมีการตัดสินใจที่ดี EP นี้มาดูกันว่า Google บริหารจัดการเรื่องนี้อย่างไร
2021-08-15
12 min
SE CORNER
EP2 - ความยั่งยืนของซอฟต์แวร์ ตอนที่ 1 (Time and Change) - Software Engineering at Google
อะไรคือความแตกต่างระหว่าง Programming กับ Software Engineering หรือวิศวกรรมซอฟต์แวร์? จุดแตกต่างอาจจะอยู่ที่ "ความยั่งยืน (sustainability)" นั่นเอง นั่นก็คือ ซอฟต์แวร์ที่เราสร้างขึ้นมาจะดูแลง่าย ทนทานต่อการแก้ไข และสามารถใช้ไปเป็นระยะเวลานาน หรือไม่ Episode นี้ชวนคุยเนื้อหาจากบทแรกของหนังสือ Software Engineering at Google ที่พูดถึง ความหมายของวิศวกรรมซอฟต์แวร์ ที่เกี่ยวกับเวลาและการแก้ไข (Time and Change)
2021-08-08
11 min
SE CORNER
EP1 - COVID-19 กับนักพัฒนาซอฟต์แวร์
Episode แรกนี้ อยากจะพาทุกท่านไปดูผลกระทบของ COVID-19 กับนักพัฒนาซอฟต์แวร์กันครับ เป็นงานศึกษาที่ไปสอบถามนักพัฒนากว่าสองพันคน จาก 53 ประเทศเลยทีเดียว มาดูกันว่าพวกเขาพบเจอปัญหาอะไรบ้าง อะไรที่บริษัทจะช่วยพวกเขาได้ในช่วงเวลาแห่งความยากลำบากนี้ และอะไรที่เป็นปัจจัยสำคัญที่ส่งผลต่อความเป็นอยู่และประสิทธิภาพในการทำงานของนักพัฒนาซอฟต์แวร์เมื่อต้องมา Work from Home
2021-08-02
17 min