
Sign up to save your podcasts
Or


หากท่านเขียนเทสต์แล้วพบว่ามีเทสต์บางส่วนที่บางทีก็รันผ่าน บางทีก็ไม่ผ่าน สร้างความปวดหัวและหมดความมั่นใจในเทสต์ของตัวเอง ปัญหานี้เรียกว่า flaky test หรือ non-deterministic test ครับ EP นี้จะพาไปฟังคำแนะนำจาก Martin Fowler เจ้าพ่อสายวิศวกรรมซอฟต์แวร์ ว่า flaky test เกิดจากอะไร และแก้ปัญหาได้อย่างไรบ้าง
รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
EP นี้ชวนมาคุยเรื่องหลักการ testability ของซอฟต์แวร์ที่ผมคิดว่าเป็นหลักการพื้นฐานที่สามารถนำไปใช้ได้ทุกๆ แพลตฟอร์มและทุกๆ ภาษาครับ ซอฟต์แวร์ใดๆ จะทดสอบยากหรือง่าย เราเรียกว่า "testability" ถ้าค่านี้สูงก็คือทดสอบง่าย แต่ถ้าต่ำก็คือทดสอบยาก ซึ่งเจ้า testability นี้ไม่ต้องหาอะไรมาวัดก็ได้นะครับ ให้คิดถึงสองปัจจัยหลักๆ คือ
1. controllability - สามารถกำหนดหรือควบคุม behavior ของซอฟต์แวร์ที่จะทดสอบได้ง่ายแค่ไหน ผ่าน input ที่เราจะให้เข้าไป
2. observability - สามารถดูหรือวัดค่าผลลัพธ์จากการทดสอบซอฟต์แวร์ได้ง่ายแค่ไหน ผ่าน output ที่ออกมา
ถ้าเข้าใจหลักการนี้แล้ว สามารถนำไปประยุกต์ใช้ให้การเขียนโค้ดของเราสามารถทดสอบได้ง่ายขึ้น ได้ทุกๆ ภาษา ทุกๆ เทคโนโลยีเลยครับ
รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ
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 นี้ครับ
ต้อนรับ Season 2 ด้วย EP53 จาก Chapter 11 ของหนังสือ Software Engineering at Google กันครับ
.
EP นี้เป็นเรื่องการทดสอบซอฟต์แวร์ (Software Testing) ซึ่งถือว่าเป็นรากฐานสำคัญของการพัฒนาซอฟต์แวร์ที่ Google และเป็นส่ิงที่ Google ทำได้ดีและมีชื่อเสียงมาก ใน EP นี้เลยชวนมาคุยเรื่องความสำคัญของการ test, ทำไมต้องทำ test automation, test size และ test scope
.
รายละเอียดจะเป็นยังไง ไปฟังกันใน EP นี้ครับ
EP นี้ไม่ได้มาเล่าเรื่อง software engineering ครับ แต่จะขอทำรีวิวตัวเองในการทำ SE Corner Podcast นี้มาครบ 1 ปีเต็มๆ เนื่องจากเป็นพอดแคสต์เกี่ยวกับวิศวกรรมซอฟต์แวร์ ก็เลยขอใช้วิธีการ retrospective สักหน่อย จะได้เข้าธีม :-)
ใน EP นี้ผมเลยมาเล่าให้ฟังว่ามีเรื่องไหนบ้างที่ผมคิดว่า (1) ผมทำได้ดี (what we did well), (2) ผมยังสามารถปรับปรุงได้ (what we can do better), และ (3) อะไรที่จะเริ่มทำหลังจากนี้ไป (actions)
รายละเอียด ไปฟังกันใน EP นี้เล้ย!
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 นี้ครับ
EP นี้เอารายงานผลของ Stack Overflow Developer Survey 2022 มาเล่าให้ฟังกันครับ เนื้อหามีเยอะมากๆ เลยสรุปสั้นๆ ในแต่ละด้านมาให้ฟังกัน น่าสนใจทั้งนั้นเลย
รายละเอียดจะเป็นยังไง ไปฟังกันใน EP นี้ครับ
ที่มา Stack Overflow Developer Survey 2022: https://survey.stackoverflow.co/2022/
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 นี้ครับ :)
EP นี้พากลับไปอ่าน Chapter 10 ในหนังสือ Software Engineering at Google เรื่อง Documentation กันครับ เราจะพาไปดูว่า Google แปลความหมายของ document อย่างไร และประโยชน์ของการเขียน document (ซึ่ง write once, read many times) นั้นมีอะไรบ้าง
นอกจากนี้ผมจะเล่าให้ฟังว่าแนวทางการแก้ปัญหาว่า dev ไม่อยากเขียน document นั้นจะต้องทำอย่างไร จากประสบการณ์ของ Google เอง
รายละเอียดไปฟังกันใน EP นี้ครับ
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 นี้ครับ
From the publisher's feed