วันนี้ได้ไอเดียว่าจะเขียนหน่อยว่าผมใช้วิธีทำงานยังไงบ้าง ก็เลยมาเป็น entry นี้ บล็อคนี้จะมีสองส่วนนะครับ คือโค้ด และการบ้าน ซึ่งทั้งสองแบบมันใช้วิธีการทำต่างกัน
# Coding
สมัยก่อนผมโค้ดเพราะผมอยากทำ เวลาผมก็มีเยอะไม่มีเกมไม่มีอนิเมะดู ฉะนั้นผมก็เลยขึ้น project ที่จะทำและทำให้มันจบๆ ไปในวันนึงเลย แต่ถ้าเครียดมากก็เล่นเกมบ้างแล้วก็ค่อยทำต่อพรุ่งนี้
## Generation 1: Redmine
ผมจำไม่ค่อยได้ว่าใช้ตัวไหนก่อนหลัง แต่เท่าที่นึกออก โครงการแรกของผมที่จะใช้ bug tracker คือ Club Distro Package Builder (ส่ง NSC11) ที่ผมจะได้ assign งานไปให้คนอื่นได้ แต่พบว่าผู้ร่วมโครงการไม่ค่อยเข้าใจการใช้ bug tracker เท่าไร ต่อมาผมก็ใช้กับโครงการ DarkWorld ซึ่งอันนี้ทำคนเดียว
ตอนผมทำ DarkWorld มันเป็นโครงการที่ใหญ่มาก ฉะนั้นผมจะต้องจดไว้ก่อนว่าโครงการนี้มีอะไรบ้าง สมัยม. ต้นผมเขียนโครงการจำนวนมากใส่สมุด และมันก็อยู่ในสมุด ไม่เคยจะออกมาในคอมสักไบต์เดียว วิธีการจดคือผมสร้างแต่ละฟีเจอร์เป็น task ใน Redmine พอจะทำงานผมก็มองไปว่างานไหนทำได้ งานไหนติดบล็อค แล้วก็เลือกมาทำ พอครบชุดๆ นึงก็ออกเป็นรุ่นนึงได้
ตอนหลัง DarkWorld เปิดซอร์สและใช้ Trac แต่ผมไม่ได้ใช้หรอก Trac มันสับสนกว่า Redmine มาก
## OvzCP
OvzCP เป็นโปรเจกท์ถัดมาที่ผมทำ ปัญหาคือ ผมติดเกม ฉะนั้นผมก็ใช้ bug tracker ตอนแรกๆ จำไม่ได้ว่าใช้ตัวไหน แต่ว่าจำได้ว่าต่อมาเปลี่ยนเป็น Bugzilla โดยผมจะสร้างแต่ละส่วนในโปรแกรมเป็น bug ไว้ และพอเสร็จแล้วผมก็กำหนดเป็น done ผมบอกตัวเองว่าทำวันละ 1 task แต่จริงๆ ผมมีสองกะ คือ กะเช้า ทำงานตั้งแต่ตื่นยันประมาณห้าหกโมงที่จะต้องออกไปกินข้าวแล้วก็พ่อแม่กลับมา คือไม่หยุดไม่ได้เพราะมันจะมีการรบกวนทำงานไม่ได้อยู่ดี ส่วนกะดึกคือทำอีกงานต่อถ้ามีอารมณ์ทำ (อยู่ดีๆ มันมีไฟของมันเอง) ก็จะประมาณห้าทุ่มกว่าเป็นต้นไปจนง่วงนอน
ปัญหาของการใช้ issue อย่างนึงคือ ผมจะถือว่าทุกงานมีเครดิตให้ผมเล่นเกม ผมเล่นเกมไม่ได้ถ้างานไม่เสร็จ ฉะนั้นผมจะเผางานให้มันเสร็จ บางทีกดเทสรันได้ก็ถือว่าเสร็จแม้ไม่ได้เช็คทุกกรณี หรือมีแค่ create read จบ update delete “คิดว่าไม่ได้ใช้” ก็ไม่ต้องทำ และอีกปัญหานึงคือบางทีผมโกงตัวเองด้วยการแตก issue นึงเป็นอันย่อยเยอะๆ แล้วทำวันละอันสองอันพอ ปัญหาสุดท้ายคือเพราะ issue มีเครดิต ฉะนั้นอะไรที่ไม่อยู่ใน bug tracker จะครีใหม่ก็เสียเวลา ผมก็จะงี่เง่าไม่ทำมันเพราะทำไปก็เสียเวลาเล่นเกม
จริงๆ วิธีนี้เหมือนที่บางบริษัทบอกน่ะครับ “คุณจะลากี่วันก็ได้ แต่งานต้องเสร็จตามกำหนด”
project ถัดมาของผมคือ project Sora ปัญหาคือ project นี้ผมไม่ค่อยจะอยากทำเท่าไร ก็เลยกลายเป็นว่าผมไม่ได้สนใจจะเปิด issue tracker และแน่นอน มันไม่เสร็จ (ตอนนั้นผมใช้ bug genie ซึ่งตอนหลังผมเลิกใช้ bug genie เลย ถึงมันจะเจ๋ง แต่ผมมีตัวเจ๋งกว่า…)
## menome & Kyou
ต่อมาผมเห็น @llun ทำโปรแกรมชื่อ [Taskboard](https://github.com/llun/taskboard) ก็เลยมาลงดู และย้าย issue menome ทั้งหมดไปลงใน Taskboard โดยระบบนี้เรียกว่า Kanban (ไม่เกี่ยวกับการบ้านแต่อย่างใด) โดยกระดานมันจะมี 4 อัน คือ Todo, In progress, Verify, Done (จริงๆ มี Pending แต่ไม่ใช้หรอกเพราะมันลับตา) งานก็เหมือนแผ่นที่แปะ ลากข้ามอันไปมาได้เลย
ผมทำ menome เพราะผมรักมันมาก ผมพบว่าแค่จดงานที่ต้องทำไว้ก็พอ ไม่ต้องบอกว่าวันนี้ต้องเสร็จกี่งานก็สามารถเสร็จได้ อาจจะเป็นเพราะผมสัญญาไปในทวิตเตอร์แล้วว่าฟีเจอร์ถัดไปคือฟีเจอร์นี้ ฉะนั้นมันเลยกลายเป็นอะไรที่มัดมือตัวเองไว้
แต่พอ project Kyou ซึ่งกำลังอยู่ในช่วงเริ่มต้น ผมไม่ถูกกับ project ที่เริ่มใหม่ ตอนเขียนมันจะรู้สึกเมาๆ มาก ปกติเวลาเขียนผมจะเริ่มด้วยการ engineer project “แค่ที่คิดไว้ในหัว” แล้วพอ project ขยายมันจะเห็นทันทีว่าโน่นนี่ออกแบบห่วยมาก ฉะนั้นผมเลยต้องบังคับตัวเองเหมือนเดิม แต่ครั้งนี้เปลี่ยนไปหน่อย
ผมเอางานทั้งหมดแปะใน taskboard ว่ามีฟีเจอร์อะไรบ้าง แล้วผมจะเลือกมาว่าวันพรุ่งนี้จะทำอะไร ทีนี้งานไหนที่มันใหญ่มาก ผมจะแตกเป็นงานย่อยๆ ให้หมด เช่นที่บอกเรื่องปัญหาทำ create read update delete ไม่หมด ผมก็แก้โดยแตกเป็นสี่อันไปเลย เสร็จแล้วพรุ่งนี้ก็แค่เปิดดูแล้วทำให้หมดถึงเล่นเกมได้ วิธีนี้รู้สึกว่างานทำได้เร็ว แต่มันกลายเป็นว่าผมอู้จนงานเสร็จตีหนึ่งครึ่งบ้าง เสียเวลานอนไปอีก
# การบ้าน
ผมไม่ชอบสมุดจดการบ้าน มีอดีตที่ไม่ค่อยดี และผมไม่ชอบจด มันเลยกลายเป็นว่าทำการบ้านเสียเวลาเล่นคอม ผมไม่ทำดีกว่า แต่พอม. ปลายมี Nexus One ใช้ เลยลองใช้ [Astrid](http://astrid.com) ดู พบว่าทำงานได้ดีขึ้น
คืออย่างนี้ครับ ผมไม่ชอบจด แต่จิ้มๆ เนี่ยชอบ ผมเลยจดงานใส่ Astrid เคยมีครูถามว่าเธอไม่จดงานหรอครูบอกงานทั้งเทอมไปแล้วนะ ผมก็ชูเนี่ยผมจดแล้วในมือถือ ครูก็ถามต่อว่าไม่กลัวมันหายหรอ ผมบอกว่ามัน sync ครับไม่หายหรอก (ผมว่าจดใส่กระดาษ หายแน่นอน..) แล้วพอมันอยู่ในมือถือ มันจะขึ้นใน home screen บางทีเผลอปัดไปก็จะเห็น อ้าว มีงาน ก็จัดเวลาทำเอาเองตามกำหนดส่ง ฉะนั้นตอนไหนที่ astrid โล่งมันจะแบบว่า HELL YES!!!
Astrid มีการแจ้งเตือนด้วยครับ มันจะสั่นยังกะสายเข้า แล้วก็ข้อความกวนตีน ตอนแรกๆ ก็ชอบ แต่พอตอนหลังผมเริ่มงี่เง่า มันเตือนผิดเวลาก็กดว่าทำเสร็จแล้วไปเลย ก็เลยไม่ใช้การเตือนแล้ว จดไว้เฉยๆ ก็พอ แต่ที่สำคัญคือต้องจัดเวลาทำการบ้านตัวเองไว้ ซึ่งผมจัดไว้หลังเล่นคอมคือสามทุ่มเป็นต้นไป ฉะนั้นผมสามารถยิงยาวการบ้านได้โดยไม่ต้องเผา เพราะถ้าไม่เสร็จห้ามเปิดคอมผมจะหลอกตัวเองแน่นอน
เทอมนี้ว่าจะลองใช้ Any.Do ครับ ก็รอดูว่าจะดีกว่า Astrid ไหม
ปล. บล็อคโค้ดแจมขอดองนะครับ อิอิกำ