เวลาผ่านมา 1 เดือนเต็ม ดำเนินมาถึงครึ่งทางของการฝึกงาน 

เมื่อวาน ( 1 / 7/ 16) เป็นวันที่นัดรวมเพื่อนๆที่มหาลัย ในวันศุกร์แบบนี้ต่างคนก็ต่างเลิกฝึกงาน นัดเวลากันไว้ 6 โมง แต่กว่าจะรวมตัวกันครบก็เวลาเกือบ 2 ทุ่ม 

เมื่อเจอหน้ากันเราต่างยิงคำถามใส่กันราวกับว่า 1 เดือนที่ผ่านมา ต่างคนต่างหายไปจากกันและกัน (หรืออาจจะเป็นเราคนเดียว ที่หลุดโคจรไปแล้ว) ทุกคนต่างมีประสบการณ์จากแต่ละที่ที่นำเอามาแชร์กัน

แต่ดูเหมือนว่าเราดูเป็นส่วนน้อยที่รู้สึกว่า ทำไมเราทำอะไรไม่เหมือนเพื่อนเลยนะ

และเราก็คิดว่ามันถึงเวลาที่เราต้องเล่าว่าเราทำอะไรมา 

(ที่ไม่ใช่กินแซลมอนและเช็คอินร้านบุฟเฟ่ต์)

13578479_10206227228591649_356931642_n

1. เราไปทำ Agile

Agile คืออะไร?

Agile คือวัฒนธรรมของการทำงานในการพัฒนา Software ให้มีประสิทธิภาพ มีรูปแบบที่เป็น Iterative and incremental development และเน้นคุณสมบัติตามนี้

  • ยอมรับ การเปลี่ยนแปลง
  • Interaction ระหว่างคนในทีม (Work in Team)
  • Collaboration กับ customer
  • Rapid delivery of high-quality software

และนั่นยังไม่พอ

  2. สิ่งที่เราทำ คือ Scrum

Scrum คือ subset ของ Agile หรือ method ของ Agile

” It is a lightweight process framework for agile development, and the most widely-used one.”

คือการแบ่งงานให้ย่อยๆ เล็กที่สุดแต่ทำให้งานมีประสิทธิภาพที่สุด

ยังไง?

Screen Shot 2559-07-03 at 1.46.26 PM

เอาง่ายๆ เราเริ่มจาก Product Backlog ที่จะมี Product owner เป็นตัวแทนของลูกค้า เป็นคนที่มาบอกว่า งานนี้เราต้องการอะไรในมุมมองของ Users (User stories)

scrum-process-01 (1)

จากนั้นเราก็จะซอยงานให้เป็น Backlog ใน Sprint 

ก็อย่างที่บอก มองว่า Sprint คืองานที่แบ่งย่อยลงไป ที่จะต้องทำในเวลาเท่าไรๆ 

และช่วงเวลานั้นก็จะถูกกำหนดโดย Scrum master 

Scrum master คือ คนที่ดูแลทีม คนที่ดูแลงานในภาพรวมในไปในทิศทางเดียวกัน และคุมเรื่องการตัดสินใจต่างๆ

แต่ทุกการตัดสินใจของ Scrum Master ก็จะขึ้นกับความเห็นของคนในทีมเป็นหลัก

และที่ Pronto tools ของเราก็กำหนดช่วงเวลาของ Sprint เป็น 2 weeks

3. Task Board

และอีก 1 เรื่องที่จะไม่เล่าไม่ได้เลย คือ  Task Board

หน้าตาจะเป็นแบบนี้

13566186_10206230716078834_957438259_n

มี Column : Backlog, Doing, Ready to Test, Testing และ Done

โดยงานที่แบ่งมาก็จะอยู่ในรูปของ  Post-it  Cards เป็นงานที่เราเลือกมาอยู่ใน Sprint แล้ว 

แต่ละใบก็จะมีการให้คะแนนระดับความยาก+เยอะ จากคนในทีม

ยิ่งใบที่มีคะแนนมากๆ งานก็จะใหญ่ เราก็จะพยายามแตกออกให้เป็นหลายๆการ์ดแทน

อธิบายง่ายๆ สมมติว่าเราจะหยิบการ์ดมาทำ  1 ใบ ก็จะดึงจาก Column Backlog มาไว้ ใน Doing คนในทีมก็จะรู้ว่ามีคนกำลังทำการ์ดใบนี้อยู่

และเมื่อทำการ์ดเสร็จแล้ว จะย้ายไปแปะใน Ready to Test เพื่อให้คนที่จะเป็น Tester เป็นคนตรวจงานอีกที คราวนี้ Tester ก็จะเป็นคนย้ายการ์ดไปอยู่ Testing และ Done  ต่อไป

นอกจากนี้ยังมี Burn Down Chart ด้วย

แปลงออกมาในรูปแบบกราฟ คะแนนทั้งหมดของการ์ดรวมกัน เมื่อทำเสร็จแล้วจะค่อยๆลดลงเหลือเท่าไร เราก็จะสามารถมองได้ว่า เห้ย งานเหลืออีกเยอะไหม หรือ พอใกล้จบSprint เราควรจะรีบปั่นแล้วล่ะ

13599463_10206230868042633_1503805277_n-/////-

4. Code Kata

 ทุก 9.00-9.30 เราจะมี Code kata

Code Kata คือการฝึกฝนโค้ด ทำโจทย์นั้นทุกๆวัน ทำให้ขึ้นใจจนชิล และค่อยเพิ่มเลเวลความยากขึ้นเรื่อยๆ

พี่ Kan ผู้ที่เป็นพี่เลี้ยงเด็กอินเทิร์นทั้ง 5 คน จะจับพวกเราเป็นคู่และ kata ไปพร้อมๆกัน

(ถ้าเป็นเศษก็จับพี่ๆในทีมนี่ล่ะมาคู่ด้วย)

13578553_10206227228551648_1377050263_n

และบางครั้ง พี่เขาก็จะแกล้งเราด้วยการส่งคีย์บอร์ดเทพมาให้

เทพตรงนางหน้าตาสะอาดมาก มีความ international  

เกลี้ยงทั้งอัน ไม่เห็นสักตัวอักษร 

ฝึก Touch typing ไปในตัว 

13595426_10206227228511647_2134034646_n

จากรูปนี้ก็จะเป็น Event พิเศษ — Coding Dojo

Coding Dojo คือการโค้ดต่อหน้าเพื่อนฝูง และสลับๆกันโค้ด 

พี่เปิดจอใหญ่โบร้ม เห็นกันหมดทั้งบริษัท

5. Stand-up Meeting ( Daily Scrum)

เริ่มที่  10.00 น. 

13595887_10206227280152938_707314202_n

โดยทุกคนในทีม ไม่ว่า Scrum Master หรือ Product Owner จะยืนล้อมวงกัน เหมือนเป็นการประชุมเล็กๆทุกๆวันโดยจะบอกว่า

  1. เราทำอะไรไปบ้างเมื่อวาน
  2. วันนี้จะทำอะไร
  3. เราเจอปัญหาอะไรบ้าง 

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

อีกอย่างเหตุผลที่ยืนคือ จะได้เมื่อย ไม่มัวแต่เม้าท์กันจนไม่ไปทำงาน

6. พูดมาตั้งนาน สรุปแล้วหล่อนไปทำอะไรมาบ้าง 

13599054_10206230997845878_882601130_n

กิน !!!

#ผิด

โอเค 2 สัปดาห์แรก เป็นช่วง super duper trainee โดยจะมีพี่กานเป็นคนสอนสิ่งที่ต้องรู้ต่างๆเป็น basic ให้

โดยจะสอนไป พร้อมทำ project ขนาดย่อมๆด้วยกันเป็นทีมเด็กฝึกงาน เป็น Sprint ที่แยกตัวออกมา เสมือนจำลองการทำงานเป็นทีมก่อนเจอของจริง

 

อันที่จริงแล้ว ใน  2 สัปดาห์นี้ มองจากภายนอกแล้วก็ดูสบายนี่ ? มีคนมาเทรนด์ให้ สิ่งที่ทำก็แค่นั่งเรียนเฉยๆ

แต่เปล่าเลย ในทุกๆวันเราพบว่าทุกสิ่งที่เราเรียนที่นี้ คือเรื่องใหม่ๆ

พบว่าสิ่งที่เราเรียนมาในมหาลัย อาจไม่ได้ช่วยอะไรเราเลย

หรือพบว่าสิ่งที่เราพยายามอ่านไปสอบตอนนั้น กลับช่วยให้เราเข้าใจอย่างน่าประหลาด

เราพบว่าเรายิ่ง รู้  ในสิ่งที่ไม่รู้  ทำให้เรารู้ว่าจริงๆแล้ว ‘เราไม่รู้อะไรเลย’

ในสิ่งที่ไม่รู้ เราย่อมมีคำถามมากมายอยู่ในใจ

ในครั้งนั้นที่เรายังใหม่กับสถานที่หรือคนในทีม เราอาจจะไม่กล้าที่จะเริ่มถาม ไม่ว่าสาเหตุเพราะเกรงใจ หรือกลัวทำให้ทีมเดินไปช้าลง

แต่สิ่งที่พี่กานสอนไว้

“ไม่มีคำถามไหนที่โง่ มีแต่โง่ที่ไม่ถาม”

เพราะสุดท้ายแล้ว ทีมก็ต้องไปด้วยกัน 

หากล้มก็ล้มด้วยกัน หากสำเร็จก็สำเร็จด้วยกัน

 

ดังนั้นสิ่งที่เราทำ คือเราต้องตามหาได้ว่า

‘สิ่งที่เราไม่รู้’ คือ ไม่รู้ ‘อะไร’

ตอบคำถามเหล่านั้น แล้วก้าวไปพร้อมๆกับทีม

จากนั้นพอจบ 2 อาทิตย์แรก ก็พาหน้ามึนๆตัวเองเข้า Sprint เดียวกับพี่ๆ ช่วยทำการ์ด+เรียนรู้ โดยใช้วิธี pair กับพี่ๆเอา

ซึ่งเรื่องราวจะเป็นยังไง อีก 1 เดือนเจอกันแจ้

credit รูปจาก Agile Samurai และ http://www.zenexmachina.com/what-we-do/applications-development/index.html