เรื่องราวในแต่ละสัปดาห์ - oddsteam/oddsBooking-Admin-Backend Wiki

9-13 พ.ค. 65 [Sprint #1]

เริ่มการเรียน CCO เป็นสัปดาห์แรก พบว่าเราตัดสินใจเปลี่ยนเป็น 1 เดือน Airmee Chanita Airmee ก็เลยดีใจไหมนะ เพราะเราดูละว่า มันไม่มีความจำเป็นอะไรที่เราจะต้องเร่งเหมือนที่เราสอนลูกค้า ก็เลยทดลองสอนหนึ่งเดือนเลยจะได้พอดีกับน้องๆที่เข้ามาหลาย wave ด้วย อย่างไรก็ตามจบ sprint เป็นไปตามคาดส่งอะไรไม่ได้เลย ก็เลยได้เรียนรู้เรื่อง continuous integration เรามาร่วมลุ้นกันว่า sprint ถัดไปจะได้อะไรออกมาไหมนะ :)

กำลังคิดอยู่ว่า จะตัดเข้ารอบ 50% ดีไหมหลังจากจบ 4 เดือนขอผมคิดแปป

สิ่งที่ได้เรียนรู้คือ

เราได้สังเกตน้องละเอียดขึ้น น้องๆได้เข้า session code review ที่ละเอียดมากไม่ต้องรีบมีเวลาให้เรียนรู้


23-27 พ.ค. 65 [Sprint #3]

มีน้องมาจาก ขอนแก่นและเชียงรายหรือพะเยานะ มาร่วมกระบวนการจนตอนนี้เรามีน้องๆทั้งหมดราวๆ 20 คนละ ถือว่าเป็นกลุ่มแรกในรอบสองปีที่ได้มา ฟูม ฟัก กันที่ กกบ แบบเจอตัว แต่เนื่องจากการมาของน้องๆมีรอบเวลาไม่ตรงกัน ก็ยังคงเป็นปัญหา classic ที่เราต้องหาทางออกร่วมกัน ผมว่าจะให้น้องลาออกเลยไม่ต้องเรียนละ !!!!!! แล้วมาทำงานกับเรา :)

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

ผมก็เลยเสนอให้เล่นเกม buddy คือให้โทรตามกันว่า กูว่าแล้ามึงมายังถ้ายังไม่มาติดอะไรกูจะได้ไป update ได้ถูก

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

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

How to start movement

เรื่องที่อยากบอกน้องๆมากเลยคือ การทำงานเป็นทีมมันไม่ใช่แค่เอาคนมานั่งรวมกันที่โต๊ะเดียวกัน !!!!

หลังจากนี้จะขอให้พี่ๆอีกหลายๆคนเข้ามาฃ่วย review code, mentor พาน้องไปเดินเล่น ด้วยนะครับจะได้รู้จักกันและน้องๆเองก็จะได้เรียนรู้จากพี่ๆที่มี exp ระดับทะลุหลอดกันว่าอยู่อย่างมืออาชีพต้องอะไรงานอย่างไร กราบส์ครับ


6-10 มิ.ย. 65 [Sprint #5]

สวัสดีครับพวกผมคือนักศึกษาสหกิจ ชื่อทีม Mola Mola ครับ ในตอนนี้พวกผมทำโปรเจคที่ชื่อว่า ODDS Booking ซึ่งเป็นเว็บไซต์ที่ใช้ในการจองห้องใน Geeky Base ครับ โดยมี RooF Twin RooF เป็น PO ครับ ก็ขอเท้าความก่อนนะครับว่า ตอนนี้พวกเรามีกันอยู่ 22 คนครับ แต่ว่าแบ่งออกมาเป็น 2 ทีมย่อย ได้แก่ Dory และ Nemo ครับ พวกผมทำงานกัน 1 Sprint/สัปดาห์ ส่วนใหญ่ทำงานกันอยู่ที่ Geeky base ห้อง Neon ครับ ซึ่งอาทิตย์นี้ก็เป็น Sprint ที่ 5 แล้วครับ

โดย ก่อนหน้านี้ พวกผมได้ทำส่วนของ เว็บไซต์ ODDS Booking (Angular) และ ส่วนของหลังบ้าน(Spring Boot)ครับ ซึ่งก็พบปัญหามากมายเลยครับ ก็ต้องขอขอบคุณ tumit tumit ที่ช่วย Code Review ในส่วนของหน้าบ้านและหลังบ้าน รวมถึงการให้คำแนะนำต่างๆ ครับ และก็ J Jatdilok J Aphirat Nimanussonkul Aphirat ที่ช่วยส่วน Docker, Jenkins และ Deploy ส่วนของหน้าบ้านและหลังบ้านครับ

ใน Sprint นี้ มีเพื่อนมาใหม่อีก 3 คน (ก่อนหน้านี้มี 19 คนครับ) และพวกเราได้ทำ ODDS Booking เป็นแอปบน Android(Kotlin) ครับ พวกเราได้มีการวางโครงบน Figma และทำหน้าต่างๆในแอปได้แก่ Splash Screen, Booking Screen, Preview Screen และ Success Screen รวมถึงการติดต่อกับหลังบ้านครับ ทั้งนี้ก็ต้องขอขอบคุณ werockstar werockstar พี่เหย่า ที่ช่วยสอนเขียน Kotlin ครับ และ Bas Suphakrit Bas ที่ช่วย Code Review ส่วนของ Android และการทำ Jenkins เพื่อ Deploy ลง Firebase Distribution (ถึงแม้ตอนนี้จะยังไม่สำเร็จก็ตาม ตอนนี้พวกผมจะ manual ไปก่อนครับ) นอกจากนี้ยังมีการสอนเพื่อน ๆ ในทีมด้วยครับ เช่น Java, Angular, CSS เป็นต้น

จริงๆ ใน Sprint นี้ พวกเราเองก็กลัวว่าจะไม่ทัน จึงได้บอก PO ไว้ก่อนครับ

เมื่อถึงช่วง Sprint Review ก็ได้พี่รูฟ ลองทดสอบ ผลปรากฏว่าแอปนั้นสามารถใช้งานได้ครับ แต่ว่าตอนส่งอีเมลไปยังคนที่ทำเรื่องจอง คนจองไม่สามารถกดยืนยันได้ เนื่องจาก gmail มองว่าเป็น spam (ตอนนั้นใช้ gmail ในการทดสอบ) และก็ช่องเลือกเวลามันไม่ focus จึงทำให้มองยากว่า ตอนนี้กรอกช่องไหนอยู่

หลังจาก Sprint Review แล้วพี่รูฟ ก็ได้ให้ Requirement ใหม่ โดยมีดังนี้

  • เวลาการจอง จะต้องจองอย่างน้อย 1 ชั่วโมง และมี Time slot ถัดไป slot ละ 30 นาที
  • เวลาการจองในวันธรรมดา เปลี่ยนจาก จองได้ตั้งแต่ 18:00 ถึง 06:00 ของวันถัดไป เป็นจองได้ตั้งเเต่ 18:00 ถึง 23:00 ของวันเดียวกัน
  • เปลี่ยนรูปแบบการเลือกเวลาในแอป เนื่องจาก แบบเก่าที่เป็นคล้ายๆ นาฬิกาแล้วให้หมุน บางทีมันเลื่อนไปเอง ทำให้ใช้ยาก
  • log ออกมาด้วยว่าใครส่งเมลสำเร็จ หรือ ไม่สำเร็จ

และก็ใน Sprint หน้า จะมีการทำส่วนของหน้า admin และ เรียนเรื่อง mail service ด้วยครับ

สุดท้ายเมื่อช่วง Retrospective ก็ได้พี่ต้า มาเป็น facilitator ครับ โดยทำการจัดการเรื่องกระดานของทีม เนื่องจาก แม้เราจะแบ่งเป็น 2 ทีมย่อย แต่ก็ยังใช้กระดานอันเดียวกันอยู่ จึงทำการจัดการกระดานแยกกันสำหรับทั้งสองทีมครับ

ก็สุดท้ายนี้ก็ต้องขอขอบคุณ RooF Twin RooF Airmee Chanita Airmee Jua Chokchai Jua Jane Phongsak Jane และ พี่ๆทุกคนที่มาช่วยดูแลพวกผม และทุกๆคนที่ทำให้โปรเจคนี้สามารถคืบหน้ามาถึงตรงนี้ครับ


13-17 มิ.ย. 65 [Sprint #6]

สวัสดีครับ พวกผมน้องสหกิจ ทีม Mola Mola ครับ เริ่มต้นสัปดาห์ใหม่ ก็เป็นสัปดาห์ที่ค่อนข้างลำบากมากสำหรับทีมเลย เพราะมีสมาชิกในทีมติดโควิด ทำให้สมาชิกบางส่วนตัดสินใจทำงานออนไลน์ และบางส่วนก็เข้ามาทำงานที่ฐานครับ จึงทำให้การทำงานก็เป็นเรื่องที่ยากลำบากมาก ไม่ว่าจะเป็นการสื่อสาร การมีปฏิสัมพันธ์ระหว่างคนในทีม อีกทั้งคนที่มาทำงานที่ฐานก็รู้ข่าวสารเฉพาะคนที่มาฐาน แต่คนที่ออนไลน์ก็ไม่ได้รับข่าวสารเพราะบางครั้งไม่ได้แจ้งไว้ เลยทำให้ทุกคนได้รับข่าวสารไม่เท่ากัน โดยในสัปดาห์นี้มีสมาชิกในทีมติดเชื้อเพิ่ม ทีมจึงได้หารือว่าจะหยุดมาทำงานที่ฐานเพื่อ WFH เป็นเวลา 1 สัปดาห์ตั้งแต่วันพฤหัสที่ผ่านมาถึงวันศุกร์ของสัปดาห์ถัดไปเพื่อป้องกันไม่ให้มีผู้ติดเชื้อเพิ่มขึ้น

สำหรับ Sprint ในครั้งนี้ พวกผมได้เริ่มแบ่งทีมที่ทำ ODDS Booking ของ Admin และมีทีมที่ดูแลเรื่อง Requirement ที่ได้รับจาก Sprint Review ครั้งที่แล้วที่ได้มาจากพี่รูฟ แล้วนำมาปรับก็คือ

  • เวลาการจอง จะต้องจองอย่างน้อย 1 ชั่วโมง และมี Time Slot ถัดไป Slot ละ 30 นาที
  • เวลาการจองในวันธรรมดา เปลี่ยนจาก จองได้ตั้งแต่ 18:00 น. ถึง 06:00 น. ของวันถัดไป เป็นจองได้ตั้งเเต่ 18:00 น. ถึง 23:00 น. ของวันเดียวกัน
  • เปลี่ยนรูปแบบการเลือกเวลาใหม่ เพราะรูปแบบเก่าเป็นการหมุนแล้วเลือกเวลา การใช้งานจึงค่อนข้างยาก
  • Log ออกมาว่าส่งเมลสำเร็จหรือไม่สำเร็จ

ในส่วนของ Admin ที่พี่รูฟให้ทำ มี Requirement คือ สามารถดูรายการจองทั้งหมด, สามารถ filter เพื่อดูข้อมูล และสามารถดูรายละเอียดของคนที่มาจองได้ โดยพวกผมได้ทำการออกแบบบน Figma และเริ่มทำตัวโปรเจกต์ตาม Requirement ที่ได้รับมาแล้วครับ

การ Sprint Review ครั้งนี้พวกผมมีข้อผิดพลาดที่ค่อนข้างร้ายแรง ด้วยการทำงานแบบออนไลน์เลยทำให้เกิดปัญหาหลายอย่าง อีกทั้งไม่ได้เตรียมตัวหรือพูดคุยสำหรับการ Sprint Review ให้กับ PO ทำให้เกิดปัญหาที่ไม่สามารถย้อนกลับไปแก้ไขได้เมื่อยู่ในสถานการณ์จริง โดยปัญหาที่พวกผมเจอก็คือ Application Android ไม่สามารถใช้งานเพื่อให้ PO ดูได้ ซึ่งที่พวกผมไม่ได้เตรียมตัวเพราะระหว่างทำงานมี Bug เกิดขึ้น พวกผมเลยช่วยกันหาทางแก้ปัญหาตรงจุดนั้น ทำให้ละเลยในส่วนของการเตรียมตัวนำเสนอให้กับ PO ไปครับ และความผิดพลาดในครั้งนี้จะเป็นบทเรียนและทำให้พวกผมทำงานให้รอบคอบขึ้นมากกว่าเดิม

ซึ่งใน Sprint Review ครั้งนี้ พี่รูฟก็ได้เลือก Design ของเว็บเล็กน้อย และมี Requirement ใหม่ก็คือ

  • ปรับแก้เรื่องเวลาให้เห็นตัวเลือกเวลาอื่นๆ ด้วย
  • มี Error ตอนกดเลือกเวลา
  • ปรับการทำงานในส่วนของ Backend จะปรับการทำงานจากเดิมที่ต้องรอให้ระบบส่งเมล์เสร็จจึงจะส่งresponse กลับไปที่หน้าบ้าน ปรับใหม่เป็นส่ง response กลับไปถ้าบันทึกลงใน queue เสร็จ

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

  • การเปิดกล้องหลังจากที่ Scrum daily เสร็จ
  • การมี Scrum เพิ่มขึ้นมาในตอนบ่าย อีก 1 ช่วง
  • การเขียน Trello ว่าวันนี้จะทำอะไรและทำอะไรไปบ้าง
  • แจ้งว่าจะมี Code Review ก่อนประมาณ 1 ชั่วโมง เพื่อสมาชิกจะได้เตรียมตัวไว้ล่วงหน้า
  • หลังการ Code Review เสร็จจะเปิดกล้องเพื่อมาคุยและปรึกษากัน

ถึงแม้ว่าสถานการณ์จะไม่ค่อยดีนัก แต่พวกผมก็ขอขอบคุณพี่รูฟ ที่ได้เข้ามาดูแล และสอนเกี่ยวกับ RabbitMQ ให้กับพวกผมที่อยู่ในฐานและคนที่เรียนแบบออนไลน์ มีทั้งคนที่เข้าใจและไม่เข้าใจ แต่ก็ผ่านไปด้วยดีครับ ขอขอบคุณพี่ตั้มที่มาช่วย Code Review ในส่วนของ Angular และ Spring Boot ขอขอบคุณพี่เจและพี่บาสที่มาช่วย Code Review ในส่วนของ Pipeline Android และเรื่องของ Firebase Distribute

สุดท้ายนี้ก็ขอขอบคุณพี่ๆ ทุกคน ใน ODDS ที่สละเวลาอันมีค่ามาให้คำปรึกษาและมาช่วยสอนพวกผม ทีม Mola Mola มากๆ เลยครับ