Agile Sixty-Six Rotating Header Image

February, 2010:

03 | การ Rework ครั้งใหญ่

Step ต่อไปหลังจากที่นำเสนอ Agile ให้กับทีมและ “คิดเอาเอง” ว่าทีมน่าจะพร้อมสำหรับการเดินก้าวต่อไปละ ผมจึงได้ปรึกษากับพี่ที่อยู่ในทีม SQA (Software Quality Assurance) และ SPI (Software Process Improvement) เพื่อขอคำแนะนำ เพราะว่าทั้งสองทีมนี้เป็นทีมที่คอยควบคุมดูแล Software Development Process ของทุกๆทีมในบริษัท โดยเอาเจ้า XP ทึ่ผมทำสรุปมาเอาไว้แบบใน Post ที่แล้วไปนำเสนอโดยเริ่มต้นกับพี่ทีม SQA ก่อนเลย

สิ่งที่พี่เค้าแนะนำมาอันดับแรกสองเรื่อง เรื่องที่หนึ่ง ตอนนี้ทีม SPI ได้ทำ Questionare เอาไว้ชุดนึง สำหรับทำ Assessment กับทีมทึ่อยากจะ Adopt Agile Process เพื่อเป็นการเช็คเบื้องต้นว่า โปรเจคนั้นๆเหมาะสมที่จะทำ Agile รึเปล่าโดยดูจากปัจจัยหลายๆอย่าง ไม่ว่าจะเป็นลักษณะของโปรเจค สถานการณ์ของทีม รวมถึงความพร้อมของทีมด้วย หัวข้อในแบบสอบถามก็จะมีประมาณนี้ครับ ผมคงเขียนคร่าวๆนะ พอเป็นแนวทาง
(more…)

02 | เริ่มต้นกันด้วย XP

สวัสดีตอนค่ำครับ พอดีมีโพสต์อยู่สองสามอันที่ stock ไว้เลยขอสองตอนรวดเลยนะครับวันนี้ โพสต์นี้ก็เขียนไว้ไม่กี่วันหลังจากโพสต์ที่แล้ว

————————————————-

ตั้งแต่ตอนที่ยังไม่ได้มา Lead ทีมอย่างเต็มตัว หัวหน้าเก่าผมเค้าโยนหนังสือมาให้อ่านเล่มนึง ชื่อว่า Extreme Programming Explained ของผู้แต่งที่ชื่อ Kent Beck ที่ผมได้ข่าวมาว่า แกเป็นคนแรกที่เอาคอนเซ็ปท์ของ XP (eXtreme Programming) มาเผยแพร่ ตัว XP อธิบายสั้นก็เป็นหนึ่งใน Methodology ที่เอาหลักการของ Agile มายำรวมกันและเพิ่มเติมจนได้ออกมาเป็น Summary ของ Best Practice ต่างๆที่เน้นการพัฒนาในส่วนของ development process

ตอนอ่านหนังสือเล่มนั้นครั้งแรก ก็อ่านไปด้วยความยังไม่ค่อย get เท่าไหร่ เพราะตา Kent แกอธิบายลากยาวตั้งแต่ปัญหาต่างๆที่เป็นสาเหตุของการเกิดปัญหา จริงๆผมเคยได้ยินเรื่อง XP มานานมากแล้วตั้งแต่ทำงานที่แรกเมื่อเกือบสิบปีก่อน และก็เคยพยายามจะศึกษา แต่ตอนนั้นก็ยังรู้สึกว่ามันไม่โดน.. หมายถึงว่าเรายังไม่ได้ทำงานอะไรที่มันเกี่ยวข้องจริงๆจังๆกับเรื่อง Software Process Improvement ซักเท่าไหร่ เคยแต่เขียนโค๊ดแบบลูกทุ่งๆ (เข้าใจกันนะครับ สำหรับคำว่าเขียนโค้ดแบบลูกทุ่ง ;-) ) กับทีมขนาดเล็กๆ พอได้เข้ามาอ่านหนังสือเรื่องนี้จริงๆจังๆ ก็ยังไม่ Get อยู่ดีในตอนแรก จนมาถึงวันนี้ วันที่มีเวลามาเริ่มคิดว่า ทำยังไง ถึงจะแก้ปัญหากับ Development Team ของเรา ให้หลุดพ้นจากปัญหาซ้ำซากต่างๆของ Software Development อย่างที่เขียนไว้ใน Post ที่แล้ว หลังจากนึกๆอยู่ซักพัก ก็นึงถึงหนังสือเรื่อง XP เล่มนั้นขึ้นมาแต่ว่าหนังสือเล่มนั้นคืน Manager เก่าไปแล้วและเค้าก็ย้ายไปอยู่สิงคโปร์แล้วด้วยสิ สุดท้ายก็เลยเข้าไปหา google เพื่อนคู่ทุกข์คู่ยาก ลองค้นเรื่อง XP ดูและก็ได้เจอกับเว็บเว็บนึงในหน้าแรกของ result เลย (http://www.extremeprogramming.org) เว็บนี้เค้าเขียนสรุปเรื่องราวและกฎของ XP เอาไว้อย่างสั้นๆ (ใครยังไม่เคยเข้าไปลองดูครับ ของเค้าดีจริงๆ) หลังจากอ่านจบแล้วเลยลองสรุปด้วยตัวเองสั้นๆ เพื่อให้เราเข้าใจมากขึ้น และทำให้เริ่มรู้สึกว่า XP นี่แหละ ที่จะมาช่วย Project เราให้รอดพ้นจากวิกฤติได้ ตอนนั้นผมมองแค่ว่าจะแก้ปัญหาของทีม dev ยังไงยังไม่ได้นึกถึงทีมที่ทำงานใกล้ชิดกับเราอย่าง QA และ Product Manager เลยแม้แต่น้อย
(more…)

01 | หลังจากไม่ได้เขียน Blog มาพักใหญ่ๆ

สวัสดีครับ นี่เป็นโพสต์แรกของผม ก็ขอแนะนำตัวก่อนสักเล็กน้อย หลังจากที่ได้อ่านโพสต์ต่างๆใน agile66 อย่างชื่นชมมาอาทิตย์นึง ผมไม่ได้เป็น pro agile ครับ นับว่าเป็น Beginner เลยด้วยซ้ำ แต่พอดีว่าตอนนี้ทีมผมกำลังเริ่มนำ Agile เข้ามาใช้ในทีม และได้ผ่านเรื่องราวต่างๆมาพักนึงแล้ว จึงคิดว่า อยากจะลองแชร์ประสบการณ์การเริ่มต้นของทีมผม ซึ่งก็อาจจะมีประโยชน์อยู่บ้างสำหรับผู้ที่สนใจจะเริ่มนำ Agile ไปใช้ในทีมของคุณ หรือสำหรับท่านมีประสบการณ์ถ้าหากมองเห็นข้อติหรือข้อควรปรับปรุงในทีมผม ก็ยินดีเป็นอย่างยิ่งเลยครับ

สไตล์การโพสต์ของผมคงจะไม่ได้เป็นแนววิชาการมาก แต่จะเป็นเล่าสถานการณ์ปัจจุบันของโปรเจค บวกกับปัญหาที่เจอและแนวทางที่ผมนำมาใช้เพื่อแก้ปัญหา สำนนวนที่ใช้คงจะไม่เป็นทางการมาก และถ้าหากมีข้อผิดพลาดประการใดก็ขออภัยมา ณ ที่นี้ครับ

โพสต์แรกนี้ผม Copy มาจาก Blog ส่วนตัวของผมที่เขียนไว้เมื่อ 26 ก.ย.2009 ณ ช่วงที่ผมเริ่มเอา Agile มาเสนอให้กับทีมครับ

———————————————————————————————–

หลังจากที่ไม่ได้เขียนบล๊อกมานาน ปล่อยให้ที่นี่ทิ้งร้าง (พูดยังกะเมื่อก่อนเขียนเยอะงั้นอะ) ตอนนี้หลังจากที่ขลุกขลักอยู่กับการรันบริษัทส่วนตัว แต่สุดท้ายไม่ไหวไปไม่รอด ท้ายที่สุดก็เลยย้ายกลับมาทำงานเป็นมนุษย์เงินเดือนอยู่ที่บริษัทซอฟท์แวร์แห่งหนึ่ง และได้มีโอกาสได้รับ Assign ให้มาดูแลทีมทีมนึง ซึ่งทีมผมนี่ผมว่าก็ถือว่าเป็นทีมที่ดีมาก ตัวโปรเจคของทีมก็น่าสนใจ ลูกทีมทุกคนก็มีความสามารถ แต่ปัญหาซ้ำซากของการพัฒนาซอฟท์แวร์ มันก็ยังตามมาหลอกหลอนกันอยู่อย่างกับเงา เช่น

(more…)

กับดัก Agile ที่ level 1

คน adopt agile ใหม่ๆ ผ่านกับดัก level 0 มา เริ่มที่จะเขียน test แล้ว ผลปรากฏว่า ใช้เวลาทำงานมากกว่าเดิม (เวลาเขียน test + เวลาเขียน code// ปล. แอบเอา test ขึ้นก่อน code ด้วย ;P) แล้วก็ทำงานได้ช้าลง… สาเหตุเพราะติดกับดัก agile level ถัดมาครับ มาดูกันว่ากับดัก agile level 1 ในความคิดผมคืออะไร?

*อ่านถึงตรงนี้ ใครที่เคยได้ยิน, ได้อ่าน, ได้เห็นว่า “ไม่เขียน test: บาป” แต่ยังไม่เคยสัมผัสประสบการณ์จริง กลับไปอ่าน level 0 ซ้ำ 3 รอบ ลองเขียน test แล้วค่อยกลับมาอ่านใหม่ครับ พูดจริงๆนะครับ ข้อความข้างล่างนี้ใครๆก็อ่านได้ แต่ผู้ไร้มลทินเท่านั้นถึงจะเห็นครับ

คุณ Benjamin Scherrey เล่าให้ฟังใน annual conference ครั้งหนึ่งของ Software Park ว่า

การแก้บั๊กสิ่งๆหนึ่งนั้น ยากกว่าการ design มันขึ้นมาเป็นเท่าตัว ฉะนั้นถ้าเรา design อะไรก็ตามที่ยากเกินครึ่งหนึ่งของความสามารถเรา นั่นแปลว่า เราไม่มีปัญญาจะ maintain สิ่งนั้น ;)

NoTE แน่นอนว่าคุณ Benjamin พูดเป็นภาษาอังกฤษที่สละสลวยสวยงามกว่านี้ครับ แต่ด้วยความ “66″ ทำให้มันโผล่มาภาษาไทย (ตามสไตล์ผม) แทน ( >.< )
(more…)

เทคนิคเขียนโปรแกรมทีละสองคนด้วยปิงปองโปรแกรมมิ่ง

เห็นคนพูดถึงแพร์โปรแกรมมิ่ง (Pair programming) มาหลายตอน หลายๆคนอาจจะยังนึกไม่ออกว่าจะปฏิบัติกันยังไง คนนึงเป็น driver ขับทั้งวันอีกคนเป็น navigator พูดแนะนำอย่างเดียวไม่เบื่อเหรอ ทำให้นึกถึงบทความที่เขียนเมื่อสองปีที่แล้วในรูปแบบของแพทเทิร์นเลยขอเอามาลงที่นี่อีกรอบ

มีใครใช้ทำงานใช้วิธีนี้บ้างไหมครับ

ปิงปองโปรแกรมมิ่ง


ภาพจาก jupiterimages.com

“แบ่งกันคิดแบ่งกันเขียนโปรแกรมสลับไปมาเหมือนตีปิงปอง”

Agile สนับสนุนความคิดที่ว่าสองหัวดีกว่าหัวเดียว การเขียนโปรแกรมสองคนโดยใช้คอมเครื่องเดียวหรือที่เรียกว่า Pair Programming ไม่ได้ระบุว่าจะแบ่งกันเขียนโปรแกรมอย่างไร การแบ่งให้คนนึงเขียนเทสต์ อีกคนเขียนโค้ด แล้วคนเขียนโค้ดเสร็จกลับไปเขียนเทสต์ ให้อีกคนเขียนโค้ดสลับไปมาเหมือนตีปิงปอง จะทำให้งานท้าทาย ไม่น่าเบื่อ และมีประสิทธิผลมากขึ้น
(more…)

Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins