มาทำความรู้จักกับ “Agile and Scrum” แนวคิดการทำงานของบริษัทยุคใหม่

agile

ผมคิดว่าผู้อ่านชาว Brand Inside น่าจะพอคุ้นหูหรือเคยผ่านตากับคำว่า “Agile” หรือ “Scrum” มาอยู่บ้างแล้ว ด้วยที่เป็นวัฒนธรรมองค์กรที่ค่อนข้างแพร่หลายในเหล่าบรรดาบริษัท Tech Company โดยเฉพาะอย่างยิ่งในเหล่า Startup แต่สำหรับคนที่ไม่รู้จัก วันนี้ผมจะเล่าให้ฟังถึง ‘Agile amd Scrum’ ในภาพรวมว่าเป็นอย่างไรครับ

ก่อนอื่นต้องบอกว่า ‘Agile’  ไม่ใช่รูปแบบการทำงานแต่เป็นแนวคิดในการทำงานที่เป็นทางเลือกอีกทางหนึ่ง เพราะก่อนหน้านี้องค์กรส่วนใหญ่จะทำงานด้วยระบบ Project Management คือมี Project Manager และทีมมานั่งวางแผนกันก่อนเริ่มโปรเจ็คต์ ทั้งเรื่องเงิน เวลา คน และอื่นๆ ตั้งแต่เริ่มต้นจนจบโปรเจ็คต์ ซึ่งเป็นงานทำงานแบบ ‘Waterfall Process’ แต่แนวคิด Agile จะส่งผลให้มีรูปแบบการทำงานที่ต่างออกไป

waterfall2
การทำงานแบบ ‘Waterfall Process’ // ที่มา : http://beyondmanaging.com/2015/03/project-management-toolkit/

ซึ่งแท้จริงแล้ว Agile นั้นเกิดขึ้นมาจากบริษัทที่ทำในเชิง Software Development เป็นหลัก เพราะปัญหาของระบบเดิมที่บรรดาบริษัท Software เจอก็คือ

  • ความยากในการวางแผน การนั่งคิดทุกอย่างตั้งแต่เริ่มจนถึงจบโปรเจ็คต์นั้น เป็นเรื่องยากที่จะวางแผนทุกอย่างได้ลงตัวและแม่นยำ ทั้งในเรื่องของงบประมาณที่อาจจะบานปลายหรือเวลาที่ไม่ลงตัว
  • กว่าจะรู้ว่าผิดพลาดก็อาจจะสายไปเสียแล้ว ในระบบแบบ Waterfall กว่าที่จะมีการทดสอบโปรดักส์หรือ Software นั้นก็ต้องเป็นในขั้น Test ซึ่งการ Design + Develop นั้นแทบจะเสร็จอยู่แล้ว ถ้าไปเจอความผิดพลาดตอนนี้ไม่ว่าจะด้วยเข้าใจ Requiement ผิดพลาดหรือมีการเปลี่ยนแปลงก็ตามแต่ การแก้ไขก็จะทำได้ยาก (บางครั้งอาจถึงขั้นต้องรื้อทำใหม่)

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

dev-methods
เปรียบเทียบระหว่าง ‘Waterfall’ กับ ‘Agile’ // ที่มา : http://www.albalenys.com/posts/16

แนวคิดสำคัญของ Agile

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

  • ไม่เน้นกระบวนการและเอกสาร ให้เน้นไปที่การพัฒนาโปรดักส์ให้ดีที่สุดมากกว่าจะยึดติดกับเอกสารต่างๆ (ไม่ใช่ว่าไม่จำเป็นแต่ให้ความสำคัญน้อยกว่า) คือต่อให้มีเอกสารยืนยันแล้วว่าจะทำอะไร แต่มีอีกทางที่ส่งมอบ Value ให้กับลุกค้าได้ดีกว่า Agile จะเลือกทางนั้น ไม่ใช่ทางเอกสาร
  • ยอมรับความเปลี่ยนแปลง เพราะ requirement อาจเปลี่ยนแปลงได้ตลอด แนวคิดแบบ Agile จะไม่ฟูมฟายกับการเปลี่ยนแปลง ไม่มีการทำงานหรือยึดติดกับ Gantt Chart แต่จะทำงานแบบ ค่อนข้าง Flexible ตามสิ่งที่เกิดขึ้นจริงเป็นหลัก สามารถเปลี่ยนแปลงได้ตลอดเวลา
  • ทำทีละนิดแต่ทำบ่อยๆ คือมีการส่งมอบงานอะไรบางอย่างให้ทีมหรือลูกค้าอย่าต่อเนื่องทีละเล็กทีละน้อย เช่นส่งมอบอะไรใหม่ทุกๆ 2 อาทิตย์หรือทุกๆ เดือน จะไม่ให้ลูกค้ามีการรอ 3-6 เดือนเพื่อรอโปรเจ็คต์ใหญ่เสร็จแล้วค่อยส่งมอบทีเดียว
  • ผิดพลาดให้เร็ว คือไม่กลัวที่จะลงมือทำเพื่อที่จะเจอกับความผิดพลาดและแก้ไขไปทีละนิด จะไม่ใช่การวางแผนโดยละเอียดเพื่อป้องกันความผิดพลาด แต่พอเจอสิ่งที่ผิดไปจากแผนจริงๆ (เพราะอย่างที่รู้ว่าน้อยครั้งนักที่เราจะทำตามแผนได้ทั้งหมด) ก็อยู่ในภาวะที่เป็น Point of No Return ไปแล้ว
  • ทำงานเป็นทีมมากกว่าที่จะสนใจกระบวนการ คือเน้นที่การมีปฏิสัมพันธ์ระหว่างบุคคลมากกว่าที่บอกว่าต้องเป็นไปตามกระบวนการ มีปัญหาอะไรให้พูดคุยกับทีมเลยทันที บางครั้งอาจถึงขั้นเอา Programmer ไปเจอลูกค้าเพื่อให้เข้าใจ requirement ที่แท้จริงด้วย ให้ลูกค้าเข้ามามีส่วนร่วมตั้งแต่เริ่มกระบวนการ ซึ่งทีมมักจะประกอบด้วยหลายๆ ตำแหน่ง และมีอำนาจมากพอที่จะตัดสินใจทำหรือไม่ทำอะไรเพื่อ Drive ให้งานที่ทีมรับผิดชอบสำเร็จตามเป้าหมาย

ข้อดีของการทำงานในแนวคิด Agile หลักๆ คือการไม่มีกำแพงระหว่างฝ่าย เพราะเอาทุกฝ่ายมาอยู่ในทีมเดียวกัน เน้นที่การสื่อสารระหว่างบุคคล ทำให้ลดความไม่เข้าใจลงไป และสามารถแก้ปัญหาได้รวดเร็วๆ (สมมติว่า Test แล้วมีปัญหา ก็สามารถบอกกับ Designer หรือ Programmer ให้แก้ไขได้ทันที โดยไม่ต้องส่งเรื่องข้ามฝ่าย)  รวมถึงการที่ค่อยๆ ส่งมอบงานทีละนิดทำให้มีความยืดหยุ่นในการทำงานสูง

ซึ่งแนวคิดแบบ ‘Agile’ มักจะมาคู่กับกรอบการทำงาน (Framework) แบบ ‘Scrum’

จริงๆ ต้องบอกว่า Framework ภายใต้แนวคิด Agile นั้นมีหลากหลายวิธี แต่ ‘Scrum’ เป็นวิธีการทำงานที่ได้รับความนิยมมากที่สุดสำหรับการทำงานภายใต้แนวคิดนี้ มันคือวิธีการทำงานที่ให้ ‘ทีมช่วยกันรุมงาน’ (ถึงได้เรียกว่า Scrum ไงหละ!) ซึ่งในวิธีการทำงานแบบ Scrum จะไม่มี Project Manager, Design, Analyst, Tester (และอื่นๆ) แต่จะมีเพียงแค่ 3 ตำแหน่งสำคัญคือ

  1. Product Owner : มีหน้าที่ประเมิน Values และจัด Priorities ของ Tasks ต่างๆ ให้กับทีม
  2. Scrum Master : เป็นผู้ทำให้การทำงานเป็นไปอย่างลื่นไหล ซึ่งไม่ได้หมายถึงการเป็นผู้นำทีม แต่จะคอยกำจัดอุปสรรคที่ขัดขวางไม่ให้ทีมบรรลุเป้าหมาย
  3. Team : จะทำงานแบบ Self-Management ซึ่งในหนึ่งทีมจะประกอบด้วยคนประมาณ 3-9 คน และรวมทุกตำแหน่งทั้ง Designer, Programmer, UI/UX, Testing เข้าด้วยกัน เพื่อให้ทีมหนึ่งทีมสามารถทำงานตั้งแต่ต้นจนจบได้ด้วยตัวเอง โดยไม่ต้องข้ามแผนก

วิธีการทำงานของ Scrum ก็จะประกอบไปด้วยสิ่งที่น่าสนใจดังนี้

  • Backlog : เป็น Task งานที่ต้องทำ ทั้ง requirement ของลูกค้าและทีม ซึ่ง Product Owner จะเป็นคนตัดสินใจนำ Task ต่างๆ เหล่านี้เข้าไปใน Sprint ตามลำดับความสำคัญ (ส่วนใหญ่แล้วก็จะพิจารณาด้วย Value ของ Task นั้นๆ เมื่อแลกกับ effort ที่ต้องใช้)
  • Sprint Phase : อย่างที่บอกว่า Agile นั้น เน้นการส่งงานให้เร็วและบ่อย ซึ่ง Period นั้นจะเรียกว่า Sprint โดยมีกำหนดประมาณ 2-4 สัปดาห์ โดยเป้าหมายของ Sprint คือการ Deliver บางสิ่งบางอย่างให้สำเร็จ (Task ที่ Product Owner ได้ประเมินว่าควรทำตั้งแต่ก่อนเริ่ม Sprint) ซึ่งเมื่อจบ Sprint ก็จะมีการ Review ผลงาน (Sprint Review) ให้กับคนอื่นๆ ที่เกี่ยวข้องอาจจะเป็นทีมเซลล์ Users หรือลูกค้า เพื่อให้รับทราบถึงความคืบหน้าของโปรเจ็คต์อยู่เรื่อยๆ
  • Daily Scrum Meeting : ในทุกๆ เช้าทีมจะมีการประชุมสั้นๆ 10-15 นาที เพื่อบอกว่าเมื่อวานทำอะไร วันนี้จะทำอะไร และมีปัญหาอะไรบ้าง เพื่อให้การทำงานในทุกๆ วันเป็นไปอย่างราบรื่น ,รู้ว่ากำลังเดินเข้าสู่เป้าหมายหรือยัง และมีการแก้ไขปัญหาอย่างต่อเนื่อง
scrumexplained-4-620
Scrum Framwork // ที่มา : https://www.scrumalliance.org/why-scrum

ข้อจำกัดของการประยุกต์ใช้ Agile

  • การประยุกต์ใช้ในองค์กรใหญ่ค่อนข้างทำได้ยาก เพราะมีทีมและแผนกที่ค่อนข้างใหญ่ การให้ทุกคนยอมรับวัฒนธรรมนี้ค่อนข้างเป็นไปได้ยาก รวมถึงการแตกฝ่ายต่างๆ เพื่อมารวมเป็นทีมย่อยขนาดเล็กก็ทำได้ยาก
  • Agile เป็นแนวคิดที่ค่อนข้างซัพพอร์ตกับระบบแบบ Flat Organization เพราะฉะนั้นสำหรับบางบริษัทหรือบริษัทที่ผู้บริหารมีแนวคิดแบบ Pyramid Structure ก็จะประยุกต์ใช้ Agile ได้ยาก
  • Agile เป็นแนวคิดที่พัฒนามาจากบริษัท Software Development เลยเหมาะในการใช้พัฒนา Tech Product มากกว่า แต่ไม่ได้หมายความว่าจะประยุกต์ใช้กับงานแบบอื่นไม่ได้ (ที่บริษัทก็มีการประยุกต์ใช้กับทีมที่ทำงานด้าน Marketing เหมือนกัน) เพียงแต่ต้องใช้เวลาและต้องประยุกต์จากหลักการเดิมไปค่อนข้างเยอะ

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

ข้อมูลอ้างอิง
http://agilemanifesto.org/
http://www.allaboutagile.com/
http://www.agilenutshell.com/
http://agilemethodology.org/
http://scrummethodology.com/

ติดตามข่าวสารจาก Brand Inside ได้จาก Facebook ของเรา

เรียกสั้นๆ ว่าต่อได้ครับ ตอนนี้ทำงานด้านการวิเคราะห์ข้อมูลในบริษัทให้บริการข้อมูลบน Social Media แห่งหนึ่ง แต่สนใจความเคลื่อนไหวของธุรกิจต่างๆ โดยเฉพาะด้านเทคโนโลยีและสังคม ชอบใช้ภาษาแบบไม่เป็นทางการมากนักจะได้เหมือนเพื่อนมาเล่าให้ฟัง หวังว่าคนอ่านชอบนะครับ, Enjoy Reading!