Agile Sixty-Six Rotating Header Image

Agile Experience

Real life Agile experience

Day 2: My short note from Scrum Master course

เกือบไม่กล้าเรียก short note แล้ว โดน Bas แซว 555+

วันที่ 2 ที่จดมา เยอะและยาวมากค่ะ T_T แบบตั้งใจจดมาเล่าคนที่บ้านด้วย :D ดังนั้นเลยเลือกมาเฉพาะที่สำคัญนะคะ

ตอนที่ 1 อยู่ที่ลิงค์นี้นะคะ My short note from Scrum Master course: day 1

ส่วนหนึ่งของ Good Engineering Practice คือ

  • การทำ TDD ที่ต้องเขียน test ก่อน แล้วค่อยเขียน code จน test ผ่าน แล้วสลับๆ กันไปเรื่อยๆ
  • ยากที่จะ confortable ต้องใช้เวลาเป็นปีๆ
  • ตลอดเวลาที่ทำงาน ต้องมีการทำ Regression test เพื่อดูว่า ทั้งระบบยังคงทำงานตอนมี code เราเข้าไปอยู่ใหม่ ทำโดยใช้ automated test

หน้าที่และความไว้วางใจ (more…)

My short note from Scrum Master course: day 1

พอดีจดมาเป็น Item เท่าที่สนใจ ก็จะโน้ตไว้ละกันนะคะ คงไม่ Walk Tru each slide

จริงๆ สิ่งที่สนุกของ course นี้ คือการมี exercise ที่ทำให้เราจำและเข้าใจแต่ละอย่างได้แม่นยำมากกว่าการอ่าน ดังนั้นสิ่งที่อยุ่ในนี้ส่วนใหญ่สรุปมาแล้ว ไม่มันส์และไม่ซึ้งเท่ามาเรียนเอง บางคนจะรู้สึกว่า บางอย่างก็รู้อยู่แล้ว แต่รู้ กับ ซึ้ง ก็ต่างกันนิดหน่อยนะคะ :)

ใน Scrum มี 3 อย่างที่เป็นองค์ประกอบ คือ Time Cost และ Scope หากจะให้โปรเจคทำเสร็จทันเวลา ต้องปรับอะไรใน iteration?

  • โดยตัวแปรที่เปลี่ยนไม่ได้แน่นอน คือ time โดยใน context นี้ หมายถึง Time-box iteration เรากำหนดไว้แล้วว่าเราจะไม่ extend มัน มันจะต้องเป็น time box ไม่ว่าจะ การ development หรือ meeting ก็ต้องยึด Time-Box ไม่งั้นเราก็จะเวิ่นเว้อ หากเราไม่สามารถจบทุกอย่างใน time-box ที่กำหนด ก็เริ่ม time-box ใหม่ไป ซึ่ง Concept ของ Time-box เป็นการ remove time variable from software development
  • Cost: หมายรวมถึงเงินและทรัพยากรบุคคลด้วย เค้ายกตัวอย่างว่า หากโปรเจคไม่เสร็จ การเอาคนมาเพิ่ม ณ เวลานั้น ไม่ได้ทำให้โปรเจคเสร็จเร็วขึ้น เผลอๆ เป็นการเพิ่มปัญหาใหม่ให้เสร็จช้าลงไปอีก การ extend cost จะได้ผลเฉพาะกับ Long term ไม่ใช่กับ Short term เหตุที่การเพิ่มคนได้ผลตอน Long term เพราะ คนๆ นั้นได้มีเวลารับ knowledge แล้ว ก็จะเข้าใจและทำงานได้เร็วขึ้นในระยะยาว แต่การเอาคนมาแก้ปัญหาระยะสั้น เป็นการเพิ่มปัญหาใหม่ เช่น communication problem
  • Scope: เป็นสิ่งเดียวที่ปรับได้ใน iteration หากใน iteration นั้นรู้แล้วว่าไม่เสร็จ ก็ลด scope

ทำไมห่านจึงฟอร์มทีมแล้วบินไปที่ใหม่ได้ทั้งที่ไม่รู้จักกัน?

(more…)

Agile 101

ถึงแม้ว่าผมจะไม่เคยได้ทำงานบริษัท Agile จริงๆ จังๆ เลยก็ตาม แต่วันนี้จากประสบการณ์ที่ผมได้ทำงานในบริษัทพัฒนาซอฟต์แวร์มา การที่ผมได้ศึกษาด้วยตนเอง และพบปะ community ผมว่าผมสำเร็จหลักสูตร Agile 101 แล้ว ด้วยการตัดสินโดยตนเอง :)

ผมค้นพบว่า ทุก agile practices สามารถเชื่อมโยงย้อนกลับถึง 3 สิ่งต่อไปนี้ได้เสมอ

  • Feedback เราต้องเปิดโสตประสาทของเราและทีมให้รับ feedback จัดการมันอย่างเป็นระบบ และสร้าง feedback ในด้านที่ขาดไปขึ้นมา
  • Change ระบบที่เราพัฒนาจะต้องอยู่ในจุดที่สามารถรับมือกับ change ได้
  • Bring value value จะเกิดขึ้นได้ก็ต่อเมื่อ เรา release ในสิ่งที่ผู้ใช้งานพึงพอใจ ในระยะเวลาที่เหมาะสม

แน่นอนว่าอ่านแค่นี้แล้ว คนที่ไม่รู้จัก Agile มาก่อนย่อมไม่เห็นภาพอะไรเลย จริงๆ แล้ว target ของ blog นี้ ผมตั้งใจสะกิดให้ท่านที่ใช้ agile อยู่ หรือกำลังเริ่มปรับใช้ ให้ย้อนกลับมาคิดว่าแต่ละสิ่งในกระบวนการพัฒนาซอฟแวร์ที่เราทำและไม่ได้ทำ มันมีเหตุผลอะไรแฝงอยู่ เพราะโดยส่วนตัวผมเคยพบคนที่บอกว่าตัวเองใช้ agile อย่างนี้อย่างนั้น แต่ทั้งทีมไม่เข้าใจ 3 สิ่งข้างต้นนี้เลย ผลลัพธ์ที่ออกมาก็จะค่อนข้างกระจัดกระจาย ไม่ดีเท่าที่ควร หรือ fail ไปเลยก็มี

ปล. ถ้ามีอะไรผิดพลาด รบกวนชี้แนะ และเพิ่มเติมด้วยนะครับ

Use Case VS User Story

วันนึง ณ skype land ในเมือง No Boss Allowed

ถ้าเริ่มอ่านแล้ว อ่านให้จบนะคะ เพราะสรุปอยู่ที่ตอนท้าย
(Warning: มันยาวมว้าาาาก และมีความไร้สาระปนกับสาระเป็นระยะๆ)

[8/24/2011 13:12:26] N: อ่านอะไรกัน
[8/24/2011 13:19:30] J: วิธีหา usecase แบบ Agile
[8/24/2011 13:23:35] N: เมื่อคืนไปอ่านมาแล้วว่า usecase กับ user story ต่างกันยังงัย 8-)
(more…)

ThailandSPIN Agile Seminar Videos

สัมนนา Agile ของ ThailandSPIN ที่จัดร่วมกับ Thomson Reuters เมื่อปลายปีที่แล้ว ตอนนี้ขึ้น KnowHow Video ของ Software Park แล้วครับ เชิญทัศนากันได้ เป็นภาษาอังกฤษนะครับแต่เสียงชัดดีใช้ได้

มี 8 clip ตามนี้ครับ ที่แปะมาด้านบนนี่เป็นอันที่ 6 แต่เลือกมาเพราะ thumbnail ดูดีหน่อย แหะๆ
Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins