My process goal

ขอจดไว้ก่อนกันตัวเองลืม และก็เพื่อให้ @hybridknight ที่จะรับช่วงต่อด้วย ช่วงสามสี่เดือนที่ผ่านมาได้ทดลอง process การทำงานใหม่บางอย่างที่ก็ขัดกับคนอื่นบ้างแต่ตอนนี้ก็เริ่มลงตัว ตอนเริ่มทำเป้าหมายก็ยังไม่ชัดเท่านี้ด้วย คิดแค่ว่าต้องการให้สิ่งที่ทำสามารถการันตีได้ว่ามันจะไม่พังเมื่อเวลาผ่านไปและมีปัญหาเหมือนระบบเดิมที่เคยทำมา แต่เมื่อสองวันก่อนคุยกับ @visibletrap จนได้ข้อสรุปสามข้อที่มันชัดจนคิดว่านี่แหละคือเป้าหมายที่ตัวเองดันมา ทั้งสามข้อก็ไม่มีอะไรมากแค่ process นี้ต้องทำให้ตรวจสอบความผิดพลาดต่างๆ ได้ง่ายๆ ข้อแรกนี้แก้ด้วยการหาทางให้เขียน test ได้ง่ายๆ รันง่ายๆ process นี้ต้องลด Interrupt ที่แต่ละคนจะเจอขณะทำงานให้มากที่สุด แน่นอนบางอย่างมันต้อง Interrupt เข้ามาได้ (เช่น production server down หรือสอบถามอะไรบางอย่าง) แต่บางอย่างก็ไม่ควรจะเข้ามา Interrupt เช่น QA ไม่ผ่าน หรือการเพิ่ม Feature อะไรบางอย่าง พวกนี้ควรจะจัดเวลาหรือที่ซักที่ให้ไปแปะไว้ แล้วนัดเวลามาดูร่วมกัน อันนี้พยายามดันโดยการให้ทุกคนใช้ task board และกำหนดเวลาตายตัวว่าจะคุยกันช่วงไหน  process นี้ต้องทำให้ทุกคนรู้ว่าใครทำอะไรอยู่บ้าง ว่างไม่ว่าง และติดอะไรอยู่ ข้อนี้มีเหตุผลคือ คนจัดงาน รู้ว่าไม่มีใครว่างงาน และไม่จัดงานหนักๆ เพิ่มเข้าไป [...]

Read full story Comments { 0 }

AIS Startup Weekends 2011

สุดสัปดาห์ที่ผ่านเข้าไปทำงานกับเพื่อนเพื่อ pitch platform ที่เพื่อนทำมาได้ซักพักแล้วให้มันหาเงินได้เสียทีในงาน AIS Startup Weekends วันที่ 16 – 18 ธันวาคม ที่ผ่านมา งานนี้จัดอยู่ใกล้ Office มากเพราะอยู่ตรงโรงแรมที่อยู่ในตึกโดมสีทอง ที่สามารถเห็นจาก Office และถ่ายรูปเล่นจนเบื่อ (ไม่คิดว่ามันจะเป็นโรงแรมด้วย) เลยเดินไปกลับงานแทบทุกวันอย่างสบายๆ (อากาศเย็นช่วงนี้พอดี บรรยากาศดีโคตร) เริ่มจากเตรียมงานกันต้นสัปดาห์ รีบปั่น prototype เตรียมของต่างๆ ภายในหนึ่งสัปดาห์ตั้งแต่หาข้อมูลว่างานเป็นอย่างไรจากงานที่เคยผ่านมาในประเทศอื่น ต้องเตรียมแผนอะไรบ้าง ทำตัวอย่างยังไง เรียกว่าเอาให้พร้อมที่สุดเท่าที่ทำได้ วันศุกร์ก็เข้าไปเจอกัน โหวตแล้วก็ปั่น (เกือบจะเข้าไปช่วยอีกทีมและ เพราะเห็นเตรียมมาเยอะแล้ว) ก็คิดว่าจะชิวที่ไหนได้ เริ่มจากวันเสาร์ปั่นกันตั้งแต่เช้าถึงค่ำ แถมมาต่อวันอาทิตย์ prototype เล่นได้แบบยังไม่ค่อยเนียนเท่าไหร่เสร็จเกือบไม่ทัน (ใช้ไม่ถึงสองนาที!!!) แต่ก็ได้ทดลองอะไรบางอย่าง พร้อมประสบการณ์ที่น่าจดจำพอสมควร (สำคัญที่สุด AIS เลี้ยงอย่างหรูทุกมื้อ น้ำหนักเพิ่มมาพอสมควร) สิ่งที่ได้จากงานครั้งนี้ก็มีตั้งแต่ Idea แปลกๆ ที่ตัวเองไม่เคยคิดมาก่อน หรือเคยคิดแต่ไม่กล้าที่จะเสนอและทำ มันถูกเอามาพูดแล้ว pitch จนมีคนทำ [...]

Read full story Comments { 2 }

Crypto-JS & Node.js Crypto

นั่งงมอยู่หลายวันเรื่อง AES encryption ใน Javascript เนื่องจากหาข้อมูลที่เขียนอธิบายตรงๆ ไม่ได้เลย ทำได้แล้วก็จดเก็บไว้หน่อยดีกว่า เริ่มจากฝั่ง Browser ที่ต้องพึ่ง Crypto-JS เป็นชุด Library สำหรับใช้ในการเข้ารหัสหรือทำ Hash ต่างๆ สิ่งที่เอามาใช้วันนี้คือ AES ที่เป็นการเข้ารหัสที่ใช้กุญแจเหมือนกันทั้งสองฝั่ง วิธีใช้ก็ง่ายๆ มีอยู่ในเว็บคนทำอยู่แล้ว แต่ถ้าทำแค่นี้แล้วใช้กับ Node.js ได้ก็คงไม่ต้องมาจดแล้ว ปัญหามันเกิดตรงที่ถ้าเราใส่ “Secret Passphase” ไปตรงๆ สิ่งที่เกิดขึ้นคือมันจะ random IV (Initialization vector) ให้อัตโนมัติแล้วเอาไปใช้คู่กับ passphase ที่ใส่เข้ามา ทำให้ passphase ไม่สามารถเอาไปใช้กับ Node.js crypto ได้ ก็เลยต้องระบุเป็น Key และ IV ไป แต่ Key ที่ว่ามันก็ไม่ได้มาง่ายๆ อีกเนื่องจากความยาวต้องเท่ากับ 16, 24, 32 [...]

Read full story Comments { 0 }

Visual or Physical task board

ตอนเริ่มเข้ามาแก้ไข Dev process ใหม่ๆ วิธีที่อยู่ในหัวและได้ยินชื่อมาพอสมควรคือ Scrum ซึ่งมีเครื่องมืออย่างนึงที่เรียกว่า Task board แม้ตอนนี้จะปลื้มและใช้ Kanban มากกว่าแต่ก็มีเครื่องมือเดียวกันคือ Task board ทั้งสองวิธีพูดอย่างนึงตรงกันคือ มันควรจะมีกระดานจริงๆ ที่ให้ทุกคนมาเขียนแปะ ส่วนตัวแล้วไม่ชอบที่จะต้องสร้างกระดานจริงขึ้นมาเท่าไหร่ในที่ทำงานปัจจุบันด้วยเหตุผลว่า คนในทีมแต่ละคน แม้จะอยู่ใน Office เดียวกัน แต่นั่งกันกระจัดกระจายมาก เหมือนอยู่คนละทีม คือไม่สามารถสร้างกระดานที่ทุกคนมองเห็นได้ หรือมาแก้ไขได้สะดวกๆ นั่นเอง เดือนที่แล้วที่น้ำท่วมหนักๆ ทุกคนแยกย้ายกลับต่างจังหวัดกันหมด ถ้าทำกระดานจริงขึ้นมามันคงไร้ประโยชน์มากหรือไม่คนที่คุมก็เหนื่อยมาเพราะต้องคอยถามและแก้ไขตลอด จากเหตุผลสองข้อด้านบนทำให้ไม่ได้สร้างกระดานจริงขึ้นมาใช้งาน แต่ไปสร้าง กระดานเสมือน ขึ้นมาแทนเพื่อให้ทุกคนเข้ามาเห็นได้ง่ายๆ แน่นอนสิ่งที่ขาดไปจากการใช้กระดานแบบนี้คือการสื่อสารที่ลำบากขึ้นเมื่อมีการเปลี่ยนแปลงสถานะของงานที่กระดานจริงจะทำได้ (ทำกระดานจริงคงเอามาไว้ใกล้ตัว แก้ไขทีแต่ละคนคงได้มาคุยตัวต่อตัวก่อนที่จะเปลี่ยนแปลง) เพราะงั้นจะใช้กระดานจริง หรือโปรแกรมที่แสดงงานต่างๆ หรือจะใช้คู่ไปเลยก็ได้ ส่วนตัวแล้วคิดว่ามันขึ้นอยู่กับสภาพแวดล้อมรวมมากกว่า ว่ามันเอื้อแบบไหน และลองแก้ไขตามสิ่งที่อยากได้ดู จะมีกระดานจริงหรือไม่มีก็ได้ ขอแค่ทุกคนต้องคุยกันถึงเหตุการณ์ต่างๆ ที่เกิดขึ้นใน Project แล้วทำให้มันเสร็จได้เร็วที่สุด (จะตามกำหนดหรือไม่นั่นก็อีกเรื่องนึง) จะว่าไปแล้วของจริงที่ทำๆ อยู่จะบอกว่าเป็น Scrum มั้ยก็ไม่เหมือนเป๊ะซักทีเดียว มี Kanban [...]

Read full story Comments { 0 }

Question in QA process

เพิ่มเติม @hybridknight blog กลับมาเลยเอามาแปะรวมที่เดียวกันเสียหน่อย RE : Question in QA process อยู่ดีๆ คิดถึงเรื่องนี้ ตอนแรกกะจะทวีตเฉยๆ คิดไปคิดมาจดไว้เลยดีกว่า บริษัทต่างๆ มี QA ที่เป็น man test (คือทดสอบด้วยการนั่งคลิกๆ หรือเล่นระบบตาม requirement) หรือป่าวและขั้นตอนการทำงานปกติเป็นอย่างไรกัน Requirement นึง QA จะทดสอบกี่ครั้ง และทดสอบช่วงไหนบ้าง หลังทำเสร็จทีละ Requirement หรือเป็นชุดของ Requirement ตามช่วงเวลาที่กำหนด (Milestone) ถ้า Requirement นั้นผ่านแล้วและพัฒนารุ่นใหม่ ต้องกลับมาทดสอบ Requirement เดิมหรือป่าว และทดสอบกี่ครั้ง? QA ทดสอบตาม Requirement หรือป่าวหรือทดสอบตาม Function ย่อยของ Requirement แล้ว Reject ตาม Function (อันนี้อ่านแล้วอาจจะงงๆ แต่ที่ถามอันนี้เพราะว่า [...]

Read full story Comments { 2 }