พอดีว่ามีโอกาสได้ไปเรียน Scrum กับ Roofimon มา (อย่างไม่ได้ตั้งใจ) ก็เลยอยากจะเอาข้อมูลเกี่ยวกับ Scrum มาเล่าให้ฟังครับ

Scrum ออกเสียงตรงไปตรงมาว่า สกรัม แปลเป็นไทยง่ายๆ ก็คือการรุมสกรัม ซึ่งความหมายจริงๆ ก็คือแบบนั้น มันเป็นรูปแบบกระบวนการทำงานอย่างหนึ่งที่เริ่มมาจากการเป็นกระบวนการทำงานด้านงานพัฒนาซอฟต์แวร์ (Software development metedology) แต่จริงๆ ก็นำไปปรับใช้กับอย่างอื่นได้ครับ ไม่มีปัญหา

แนวคิดของ Scrum หลักๆ เลยคือ ทำงานเป็นทีม อะไรเสร็จเร็ว เอาขึ้นมาทำก่อน อะไรที่ลูกค้าต้องการ หยิบขึ้นมาทำก่อน เท่านี้เลยครับ โดยวิธีทำงานแบบ Scrum อธิบายง่ายได้ตามนี้ครับ

แบ่งคน

การทำงานแบบ Scrum จะแบ่งคนเป็น 3 กลุ่ม คือ

  1. Product Owner ซึ่งก็คือนายจ้าง หรือคนที่ได้รับมอบหมายมาจากนายจ้าง เป็นคนที่สามารถบอกได้ หรือฟันธงได้ ว่างานที่จ้างนี้ สุดท้ายแล้วจะเป็นอย่างไร ถ้าต้องแก้ไข จะอนุญาตไหม คือต้องมีสิทธิ์ขาดครับ
  2. Scrum Master คอยดูแลให้งานเป็นไปตามกรอบของระยะเวลา
  3. Scrum team ทีมงานที่คอยทำงานในโปรเจคนี้นั่นเองครับ โดยในทีมทุกคนจะมีศักดิ์และสิทธิ์เท่ากันหมด

วิเคราะห์งาน

ขั้นแรก เจ้าของงานจะเขียน User story มาให้เราก่อน ซึ่งมันจะคล้าย Requirment ครับ แต่จริงๆ แล้วต่างกันมากเลยล่ะ ตัวอย่างของ User story ง่ายๆ เช่น

  1. กรณีที่เป็นผู้ดูแลระบบ เมื่อ Login แล้ว ต้องเห็นรายงานประจำวันของเมื่อวานนี้
  2. กรณีที่เป็นเซลล์ เมื่อล๊อกอินแล้ว ต้องเห็นรายชื่อลูกค้าที่ค้างจ่ายค่าสินค้า

เป็นตัวอย่างง่ายๆ ของ User story ครับ โดยเมื่อรวม User story ทั้งหมดมันจะเป็น Requirement ครับ แต่จริงๆ แล้วมันใช้แทนกันไม่ได้นะครับ ถ้าได้ทำ Scrum แล้วจะพอเข้าใจ

เมื่อได้ User story มาแล้ว ทีมจะเอาแต่ละ Story นั้น มาช่วยกันวิเคราะห์ ว่า Story ไหนทำง่าย หรือทำยาก ซึ่งขั้นตอนนี้ทีมจะต้องคิดว่า แต่ละ Story นั้นเป็นการทำขึ้นมาตั้งแต่ต้น (ห้ามคิดว่า ถ้าได้ Story A ก็จะได้ Story B ด้วย) โดยจะให้เป็นแต้มไว้ โดยแต้มนี้จะแปรผันตามปัจจัยดังนี้ คือ ความยาก ระยะเวลา และมันจะพอบอกถึงงบประมาณได้ด้วย

เมื่อได้แต้มโดยอ้างอิง User story แล้ว Product Owner จะเป็นคนเลือก ว่าจะให้ทำ Story ไหนก่อน ตามที่ Owner อยากเห็น ซึ่งสุดท้ายแล้ว Scrum team อาจไม่ได้ทำทุก Story ครับ เป็นที่มาว่า ห้ามเขียนเป็น Requirement และ ห้ามคิดว่าได้ Story A ก็จะได้ Story B ด้วย เพราะ Owner อาจจ้างให้เราทำแค่ A ก็ได้

เมื่อ Owner เลือกแล้วว่างานในเฟสแรกอยากเห็นอะไรก่อน Scrum team ก็ต้องมาแตก Task-lisk ใน Story นั้นๆ ว่าจะต้องทำอะไรบ้าง เพื่อปิด Story ให้ลง

รุมสกรัม

มาถึงขั้นตอนของการทำงาน เมื่อได้ Story ที่แตก Task ออกมาแล้ว แต่ละคนในทีมก็จะมีหน้าที่เลือก ว่าจะเอา Story ไหนไปทำ โดยการทำงานแบบ Scrum เราจะต้องทำให้เสร็จ และทดสอบการทำงานให้เรียบร้อย คือ ถ้าบอกว่า Story นี้เสร็จแล้ว มันจะต้องเสร็จ และจะไม่ต้องกลับมายุ่งกับมันอีก โดยคนในทีมก็มารุมสกรัมกัน โดยหยิบ Story ไปทำกันเรื่อยๆ จนครบ

เมื่อถึงเวลาส่งงาน Owner จะเป็นคนบอกว่า โอเคไหม แล้วต่อไปจะทำอะไร

นี่ก็เป็นการทำงานแบบ Scrum อย่างคร่าวๆ ครับ ถ้าจะทำจริงๆ ยังมีรายละเอียดปลีกย่อยอีก ซึ่งสนุกมาก และจะทำให้ทำงานได้เร็วครับ

สนใจข้อมูลเพิ่มเติมเกี่ยวกับการทำงานแบบ Scrum ก็สามารถหาข้อมูลเพิ่มเติมได้ที่ http://www.scrumalliance.org/