Tag Archives | process

Define Test

อาทิตย์ที่ผ่านมาเริ่ม Push TDD ให้ทีม Dev ทั้งทีมก็มีเสียงตอบกลับมาทันที ซึ่งเป็นสิ่งที่อยากได้และจะได้เอาไปปรับปรุง เสียงตอบอันนึงที่กลับมาถูกบล๊อกโดย @teerapapc ผ่านหัวข้อนี้ “My experience with unit testing in software development” สรุปสั้นๆ คืออยากให้คนอื่นเป็นคนเขียน Test ในตอนท้ายของบทความ จริงๆ เรื่องเขียน UnitTest สำหรับ Dev หลายคนที่พึ่งจบออกจากมหาวิทยาลัยและเขียนโปรแกรมเล่นตามสิ่งที่สนใจ มักเป็นสิ่งที่อยู่ห่างไกลกันเหลือเกิน แม้แต่ตัวเองตอนจบใหม่ๆ และทำงานได้สองสามปีแรก ก็ไม่รู้ว่าจะเขียน Test ยังไงเพราะขั้นตอนการทำงานเริ่มจาก ได้ Requirement มาจาก Manager จากนั้นก็เริ่มเขียน Module ต่างๆ ตามที่คิดไว้ ลองรันดูว่ามันทำงานถูกต้องตามที่ Manager ให้มามั้ย ปิดเคส ด้านบนคือช่วงก่อนที่จะมี QA ช่วงที่มี QA เข้ามาก็จะมีขั้นตอนเพิ่มก่อนปิดเคสคือ ส่งให้ QA เล่น จากนั้นงานก็จะเด้งเป็นปิงปองซักพัก [...]

Read full story Comments { 6 }

QA & Support

หลังจากทดลองเปลี่ยน Process ต่างๆของทีม Dev ไปตัวละครที่แทบไม่ได้กล่าวถึงเลยคือฝ่าย Support และ QA ที่ไม่ค่อยพูดถึงเพราะยังนึกไม่ออกว่าหน้าที่จริงๆของสองฝ่ายหนี้คืออะไรบ้าง ควรจะรู้อะไรแค่ไหน แต่วันนี้ถกเถียงเรื่อง Process อีกครั้งก็เริ่มคิดจะเปลี่ยนอะไรบ้างอย่างอีกครั้งและเริ่มนึกถึงสองฝ่ายนี้มากขึ้น เริ่มจาก Process ที่เคยเขียนทิ้งๆ ไว้หลายบล๊อกช่วงก่อนมีอยู่เรื่องนึงที่ถูกเถียงตกมามากคือ Task ที่จะไม่ให้เปิดค้างไว้หลัง Milestone สิ้นสุด ที่ถูกเถียงกลับมาเพราะว่า Task เหล่านี้ไม่สามารถ Guarantee ได้ว่ามันจะทำงานถูกต้องและปิดได้จริงคราวที่แล้วบ่นและเถียงกับพี่ที่ทำงานไปรอบนึงแต่ไม่ได้จดไว้มันเลยหายไป สิ่งที่คิดว่าเปลี่ยนไปคือตอนนี้งานทั้งหมดจะถูกแบ่งเป็นสองส่วน คือ งานที่เกิดจาก Requirement และ Bug จาก QA งานส่วนนี้แหละที่มีปัญหา เพราะว่าคนที่บอกว่าเสร็จไม่ใช่ Dev แต่เป็น QA เพราะงั้นการจะบอกว่า Milestone จบโดยการยึด Bug/Feature จาก Task กลุ่มนี้จะทำให้ Milestone ที่กำหนดตามเวลา ปิดได้ตามกำหนดแทบจะเป็นไปไม่ได้เลย หาก Dev process ปัจจุบันยังไม่สามารถ Guarantee ได้ว่า [...]

Read full story Comments { 5 }

nohup

สัปดาห์ที่แล้วพี่บอกว่าโปรแกรมที่เขียนไปมีบั๊ก ให้หาให้หน่อยว่าเกิดจากอะไร การทำงานของมันก็ง่ายคือ โปรแกรมแรกรับคำสั่งจากผู้ใช้มาดูว่าจะเรียก โปรแกรมอื่นอย่างไร จากนั้นก็เลือกโปรแกรมมาทำงาน ถ้าใช้งานตามปกติสั่งคำสั่งเสร็จแล้วกดออก มันก็ไม่มีอะไรผิดปกติ แต่อาการผิดปกติจะเกิดขึ้น เมื่อสั่งเสร็จแล้วกดปิด terminal ทิ้งทันที ดูตอนแรกก็คิดไปถึงเรื่อง process ของลินุกซ์ว่าต้องเป็นเรื่อง process แม่เรียก process ลูกแน่ๆ แต่ขุดไปขุดมาดันไม่เกี่ยวซะงั้นแต่เกิดจากตัวที่ คาดไม่ถึงคือ signal แถมเป็น signal ที่ไม่คิดว่าจะเจอด้วยคือ hang up (คือไม่เคยเจอมาก่อนหนะ ) เป็น signal ที่เกิดเมื่อมีการปิด terminal ไป(เหมือนกับวางหูโทรศัพท์อะไรประมาณนั้นมั้ง ไม่งั้นจะชื่อ hang up หรอ) หรือ connection หลุดจาก server ที่เราต่ออยู่ วิธีแก้ก็ง่ายแสนง่าย แทนที่โปรแกรม แรกจะเรียกโปรแกรมสองตามปกติ ก็เติมคำสั่ง nohup ไปข้างหน้าซะ signal นี้ก็จะไม่มากวนอีกต่อไป หรือ จะเขียนโปรแกรมที่สอง ให้ดัก signal [...]

Read full story Comments { 0 }