Agile Sixty-Six Rotating Header Image

2011:

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 ไปเลยก็มี

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

Continuous integration คืออะไร

ผมลอง search ดูแล้ว ยังไม่มีใครเขียนถึง CI แบบจริงจัง เลยเอาจากที่ blog ส่วนตัวมาลงตรงนี้ด้วยนะครับ

 

เรื่องนี้ไม่ใช่เรื่องใหม่ครับ แต่ผมลอง search google ด้วย ประโยคเหมือนชื่อโพสแล้วไม่มีผลลัพธ์ดีๆ ภาษาไทยใน 2 หน้าแรกเลย ก็เลยมาเขียนให้อ่านกัน

เนื้อหาในโพสนี้ เขียนจากประสบการณ์ส่วนตัว ประกอบกับ แปลและสรุปจาก Continuous Integration ครับ

ใครอ่านตรงไหนไม่รู้เรื่องแล้วอยากให้อธิบายเพิ่มเติมก็ถามมาได้นะครับ

ปัญหา

  1. การ merge code ระหว่าง dev ยาก ใช้เวลานาน
  2. Dev พัฒนาอยู่บน code ส่วนที่ถูกคนอื่นลบหรือเลิกใช้ไปแล้ว
  3. Dev ไม่กล้าแก้ code มากนัก เพราะกลัวจะกระทบคนอื่นและกลัว bug ส่งผลให้ code เน่าง่าย
  4. เมื่อมีคนมาถามถึงความเสถียรของโปรแกรม ตอบได้แค่ว่า “น่าจะใช้งานได้”
  5. ผลจากความผิดพลาดของการ merge ถูกพบเมื่อ code ขึ้นไปอยู่บน production แล้ว
  6. Code บน dev environment ไม่สามารถ deploy บน production environment ได้ หรือได้แต่ใช้เวลานาน
  7. Regression test ใช้เวลานาน และนานขึ้นเรื่อยๆ ตามความแก่ของโปรเจ็ค
  8. Management รู้ความก้าวหน้าของโปรเจ็คได้แค่จากปากคำของ Dev
  9. เมื่อเจอ bug ในระบบเวอร์ชั่นเก่ากว่าที่พัฒนาอยู่ ใช้เวลา setup เครื่องเพื่อทดสอบ bug นาน

Making CHANGE Possible

พอดีผมเขียน blog แล้ว อยากเผยแพร่หนะครับ เห็นเรื่องมันไปทาง agile ได้เลยขอมาลง มือใหม่ขอความกรุณาด้วยนะครับ

 

เริ่มต้นด้วยวันนี้จะมาพูดถึงเรื่องนึง ซึ่ง test มีส่วนเกี่ยวข้องด้วย คือ ทำให้เรากล้าและพร้อมรับการเปลี่ยนแปลง

mindset เรื่องการยอมรับความเปลี่ยนแปลง เป็นเรื่องที่ผมรู้สึกว่า ขาด อยู่ในโลกการพัฒนา software ในปัจจุบัน เป็นสาเหตุสำคัญที่ทำให้ชีวิตนักพัฒนา software มัน เศร้า กันอย่างที่เป็นอยู่

ผมจะบอกคุณว่า ถ้าคุณมี mindset เรื่องยอมรับการเปลี่ยนแปลง ชีวิตการพัฒนา software ของคุณจะไม่เหมือนเดิมอีกต่อไป

ผมจะยกตัวอย่างวงจรอุบาตนึงให้ฟัง (more…)

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…)

ลูกค้าคือพระเจ้า?

หลายๆครั้ง เราจะได้ยินเสียงบ่นจากทีมพัฒนาซอฟต์แวร์ “ลูกค้าเปลี่ยนอยู่ได้” “วันก่อนไม่เห็นบอกให้ทำงี้เลย” “เปลี่ยนไปเปลี่ยนมา มา 3 รอบแล้วนะ” แล้วถ้า project manager หรือ project lead ยังยืนยันที่จะให้เราทำการเปลี่ยนแปลงนั้น เราก็จะรู้สึกว่า “ลูกค้าคือพระเจ้าสินะ” จริงๆแล้วมันเป็นอย่างนั้นรึเปล่า?

มีคนแถวๆนี้เคยบอกไว้ว่า ถ้าเค้าทำได้ดีกว่าโดยไม่ต้องใช้คอมพิวเตอร์ เค้าคงไม่อยากใช้คอมพิวเตอร์ (อย่างนี้รึเปล่านะ อะไรประมาณนี้แหละ :P ) ตอนฟังตอนนั้นก็รู้สึก “เหรอคะ?” แล้วไม่ได้คิดต่อ เพราะตัวเองมีคอมพิวเตอร์เป็นอวัยวะที่ 33 ก็จะไม่ค่อยเข้าใจอาการ “ไม่อยากใช้คอมพิวเตอร์” เท่าไร แต่ถ้าคิดถึงคนทั่วๆไป ก็อาจจะจริง

ทีนี้เค้าก็มาจ้างเราทำ software แล้วล่ะ แสดงว่า มันจะต้องมีอะไรเหนือซักอย่าง แล้วทำไมลูกค้าถึงทำให้ชีวิตเรายุ่งยากอย่างนี้ล่ะ อยากจะให้ลองคิดตามสิ่งต่อไปนี้ดู:

(more…)

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