Agile Sixty-Six Rotating Header Image

Agile Practices

Agile practices such as TDD, pair programming, stand-up meeting, story board, etc

นิยาย Agile-66 : เร็วไปก็เท่านั้น (ตอน 1)

คำเตือน : บทความต่อไปนี้ เป็นเหตุการ์ณสมมุติเพื่อใช้ยกตัวอย่างประกอบการอธิบายเรื่อง Optimize The Whole ของ Lean อย่าพยายามเอาไปคิดว่ามันหมายถึงใครหรืออะไรในชีวิตจริง

ในบริษัทสมมุติแห่งหนึ่ง ทีมได้รับมอบหมายมาให้ทำโปรโจคสุดยอดสำคัญให้เสร็จภายใน 3 เดือน ทุกคนพากันสงสัยว่าจะทำได้ทันจริงหรือ แต่ estimate ก็ออกมาบอกว่าทำได้ ถึงแม้ velocity จะเป็นสองเท่าของโปรเจคที่เพิ่งทำมาเมื่อเดือนที่แล้วก็ตาม ผ่านไปครึ่งทาง burn-down chart ของทีม DEV และ ทีม TEST ซึ่งต่างก็มี velocity และ estimate เป็นของตัวเองออกมาประมาณนี้

(more…)

สุดยอดการจัดการบวนการทำแอจไจล์ด้วยการใช้ Kanban และ Lean

เอามาจาก InfoQ ครับผม
Jesper Boeg และ Guilherme Silveira เสวนาเรื่องสิ่งที่ไม่ควรทำ(Anti-Pattern)ในการทำแอจไจล์เพื่อเพิ่มสิ่งเตือนใจสำหรับทุกคน โดยสองหนุ่มแสดงถึง Lean principles ที่ถูก implement โดย Kanban โดยสิ่งที่ได้มาสามารถนำมาช่วยเพิ่มประสิทธิภาพและลดข้อขัดแย้งที่เกิดขึ้นกับการทำแอจไจล์แบบเก่าๆ

Raising the Bar: Super Optimizing Your Agile Implementation Using Kanban and Lean

Scrum vs. Kanban

ช่วงนี้เก๋ค่อนข้างสนใจเกี่ยวกับ agile แขนงอื่นๆ เช่น kanban เนื่องจากได้คำถามจากน้อง developer ที่ tarad.com มาด้วย น้องเค้าถามว่าที่เก๋พูดมาทั้งหมดนี้ต่างกับ kanban อย่างไร เก๋เลยเอาสิ่งที่เคยฟัง podcast ของ agile university และมีเรื่อง scrum vs. kanban ไปตอบน้องเค้าคร่าวๆ เท่าที่ทราบ จึงเริ่มอยากศึกษามากขึ้นละ

อันนี้สรุปมาจาก podcast นะคะ

(more…)

Code Coverage แค่ไหนถึงจะพอ


แผนที่การคลอบคลุมสัญญาณโทรศํพท์มือถือปัจจุบันของบริษัท AT&T ยังมีพื้นที่อีกมากที่ยังไม่มี coverage

การใช้ TDD ขับเคลื่อนการเขียนโค้ดโดยเริ่มจากการเขียนเทสต์ก่อน (บางสำนักจะเรียกเจาะจงว่าเป็น TFD – Test First Design) นอกจากจะช่วยทำให้เราสามารถออกแบบโค้ดให้สอดคล้องกับสเปกที่เขียนจากเทสต์แล้ว ยังทำให้โค้ดที่เขียนมี test coverage ในตัวไปด้วย เป็นวิธีที่ดีกว่าเขียนโค้ดให้เสร็จแล้วมาเขียนเทสต์ cover ภายหลัง ซึ่งค่อนข้างจะน่าเบื่อและอาจหลุดการเทสต์หลายๆกรณีได้

คราวนี้คำถามอยู่ที่ว่าเราควรจะเขียน code coverage ขนาดไหนถึงจะพอ อย่าลืมว่าเทสต์ก็เป็นส่วนหนึ่งของโค้ดเบสที่ต้อง maintain การมีโค้ดหรือเทสต์ที่ไม่จำเป็นก็กลายเป็นขยะโดยไม่รู้ตัว

สังเกตดูหลายๆบทความมีการพูดถึงการเขียนเทสต์ที่มุ่งเป้าที่จะ cover code ให้ครบ 100% ทำให้สงสัยว่าจำเป็นหรือไม่ ลองดูตัวอย่างข้างล่างนี้แล้วนึกตามว่าหัวข้อไหนจำเป็น/ไม่จำเป็นที่จะต้องเขียนเทสต์

  • เขียนเทสต์ทดสอบทุก method หรือเฉพาะ public หรือ public/protected ในยูนิตนั้นๆ
  • เขียนเทสต์ทดสอบผลของการใช้เฟรมเวิร์คในโค้ด อย่างเทสต์ว่าออบเจกที่เซฟผ่าน persistence framework เก็บลงฐานข้อมูลถูกต้องหรือไม่
  • เขียนเทสต์ทดสอบ getter/setter ว่าอ่านเขียนทุกๆฟิวด์ของออบเจกในคลาสถูกต้องหรือไม่
  • เขียนเทสต์คลุม execution path ภายใน method ครบหรือไม่

(more…)

รอยแยกของโลกของ Architects กับ Agilists

เก็บมาฝากครับ เมื่อวันศุกร์ที่ผ่านมา (23 เมษายน) ตอนเที่ยงคืนถึงตีหนึ่งผมได้เข้าฟัง Webinar ของ Software Engineering Institute (SEI) เรื่อง Agile Development & Software Architecture – Crossing the Great Divide

ถ้าท่านติดตามทุกๆ blog ใน Agile66 จะเห็นประเด็นโต้แย้งระหว่าง architect กับ agilist ว่า software architecture เราควรจะ design มัน หรือเราควรจะปล่อยให้มัน evolve ของมันเอง (ผ่านการ refactor ซ้ำแล้วซ้ำเล่า)? ถ้าจะ design ก่อน เมื่อไหร่ถึงจะเรียกว่า over design? ถ้าไม่ design ก่อน ผลที่ตามมาจะเป็นอย่างไร? (more…)

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