Knowledge Intern #1

ความรู้เมื่อผมได้ฝึกงาน (จริงจัง) ครั้งแรก

Pattarapon Lertratananont
2 min readApr 26, 2019

การได้เรียนที่สถาบันการจัดการปัญญาภิวัฒน์ จะได้ฝึกงานทุก ๆปีที่เรียน ระยะเวลาก็ตามแต่คณะ และสาขา แต่ช่วงที่เป็นเฟรชชี่ (ปี 1) จะได้ฝึกงานที่ seven-eleven

ตอนนี้ผมเรียนอยู่คณะวิศวกรรมศาสตร์ สาขาเทคโนโลยีสารสนเทศ ชั้นปีที่ 2 ได้มาฝึกงานที่ตรงกับสายงานของตัวเอง สาขาเทคโนโลยีสารสนเทศจะเรียนั้งด้านการเขียนโปรแกรมคอมพิวเตอร์และกราฟิก จึงมีการฝึกงานที่หลากหลาย

ฝึกงานที่ KTB

ในการฝึกงานครั้งนี้ ผมได้ฝึกงานที่ธนาคารกรุงไทย ในแผนก Innovation เป็นแผนกที่พัฒนางานด้าน innovation ทุกอย่าง ภายในแผนกประกอบด้วยหลายทีม แต่ละทีมมีหน้าที่พัฒนา product ของตัวแทนให้เต็มที่

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

Agile is our Mindset
DevSecOps is our Culture

Scrum

ผมใช้ Scrum ในการทำงานตามที่พี่ ๆในทีมแนะนำ ในช่วงเดือนแรกของการทำงาน
มีปัญหาและอุปสรรคเยอะมากในการเริ่มเข้ามาในชีวิตของการทำงาน เป็นเพราะว่า knowledge ที่ยังน้อยมาก ๆและประสบการณ์ที่ไม่มีเลย เลยทำให้สิ่งที่ได้ยินได้เห็นในทุก ๆ นาที ทุก ๆ วันนั้นเป็นเรื่องใหม่ตลอด คำศัพท์ที่แปลกใหม่ ๆ tool ที่ไม่เคยใช้ ภาษาที่ไม่เคยได้ยินมาก่อนในสถาบัน ทำให้ต้องศึกษาอย่างมากในช่วงแรก google จึงเป็นที่เรียนรู้ที่ดีมาก พอเริ่มมีความเข้าใจในงานมาระดับหนึ่ง ก็ได้ทำโปรเจคแรก เป็นโปรเจคเล็ก ๆ ที่ทำโดยมี Requirement จากพี่ ๆ ในทีม โดยสิ่งที่ทำคือ Todo List โดยใช้ Angular 7 และให้ทำแบบใช้ Scrum ในการทำงาน…

นั่นเป็นครั้งแรกที่ผมและเพื่อนในทีมได้สัมผัสกับการทำ Scrum

ในความเข้าใจที่ได้เรียนจากพี่โจ๊ก ในเวลา 5 นาที… ในเวลา 5 นาทีที่ได้เรียนรู้นั้น สิ่งที่เข้าใจก็คือ

Scrum มี 3 role

  1. PO (Product Owner) ≡ มีหน้าที่คุยกับ User เพื่อเก็บ Requirment และเจรจากับคนที่จะจ่ายเงิน เพื่อหาความสมดุลของงานที่จะออกมา
  2. Team ≡ คือทุกคนที่ทำ Product นั้นออกมา ไม่มีการแบ่งว่าเป็น Business Programmer หรือ Tester
  3. SM (Scrum Master) ≡ คือคนที่จะทำให้งานนั้นไหลลื่น คอยสนับสนุนความต้องการของทีม

Scrum มีขั้นตอนที่ต้องทำ

Scrum จะมีระยะเวลาการทำงาน เรียกว่า Sprint โดยในแต่ละ Sprint จะกำหนดระยะเวลาร่วมกันโดย Team โดยมีทั้งระยะเวลา 1–4 weeks โดยนับเวลาแค่วันที่ทำงานเท่านั้น

  1. Sprint Planning Path 1 (SP I) มันคือการที่ PO นำงานมาให้ทีม โดยข้อตกลงร่วมกันว่า DOD (Definition of done) คืออะไร อะไรที่แปลว่าเสร็จ สามารถตรวจได้จากอะไร และกำหนด Priority ว่า PO อยากเห็นสิ่งไหนก่อนหลัง โดยแต่ละงาน จะลงมาในรูปแบบของ การ์ด 1 ใบ อาจแทนด้วยโพสอิท โดย 1 งาน จะแทนด้วยการ์ด
    1 ใบ ลงใน Backlog
  2. Sprint Planning Path 2 (SP II)ต่อจาก Path 1 คือลงลึกเรื่อง Technical ว่าสามารถทำงาน 1 ใบ ได้ด้วยระยะเวลาเท่าไหร่ (เป็นชั่วโมง) โดยจะสอดคล้องกับระยะเวลาของทีมที่มีในแต่ละ Sprint เพื่อบอกกับ PO ว่าเราสามารถทำการ์ดได้กี่ใบในระยะเวลา 1 Sprint
  3. Scrum Daily เราต้อง Update สิ่งที่เราทำมาเมื่อวานให้ทุกคนใน Team ได้รู้ เพื่อให้ทุกคนในทีมมี gap ของ knowledge ที่น้อย เพราะจะทำให้ เวลาใครคนไหนที่ไม่มา คนอื่น ๆ สามารถทำงานในส่วนของคนนั้นได้ เพื่อให้งานไม่สะดุด และบอกสิ่งที่จะทำในวันนี้ เพื่อเป็นการตั้ง Goal ระยะสั้นไว้ รวมถึงถ้าต้องการความช่วยเหลือจากใคร ก็สามารถพูดได้ในการ Daily
    โดย Scrum Daily จะทำกันในทุก ๆ วันวันละไม่เกิน 15 นาที
  4. Sprint Review เป็นการส่งงานที่มีใน backlog ที่เราทำเสร็จเพื่อให้ PO ตรวจตาม DOD ที่ตั้งไว้
  5. Retrospective เป็นการที่ทีมได้คุยกันในเรื่องต่าง ๆ เป็นการปลดทุกข์ว่า อะไรทำให้งานไม่เสร็จ หรือเป็นการชื่นชมเพื่อนร่วมทีม

เรื่องวันในการทำ Activity ต่าง ๆ ทีมจะเป็นคนตกลงร่วมกัน เช่น SP I และ SP II ทำทุกวันแรกของ Sprint, Review และ Retrospective วันสุดท้ายของ Sprint, Sprint Daily กันทุกวัน เวลา 09.00 น. เป็นต้น

ยังมีเรื่อง Refinement ที่จะมีการนำงานเข้ามาเพิ่มระหว่าง Sprint หากงานที่ทำนั้นเสร็จหมดก่อน โดย Refinement อาจจะมีหรือไม่มีก็ได้ใน Sprint

บทความแรกขอจบเพียงเท่านี้ ในครั้งต่อไปจะมาเล่าเรื่องที่ประสบพบเจอมาในการทำงานที่เข้มข้นมากขึ้นเรื่อยๆ ขอบคุณที่อ่านมาถึงตรงนี้นะครับ

Programming ไม่ยากอย่างที่คิดหรอกน่า

--

--