
การทำงานในตำแหน่ง Software Engineer เป็นอย่างไรน้าา? 🙉👋
วันนี้เรามีคำตอบ! 😊
เราเชิญพี่เอ็กซ์ Head of API มาคุยเกี่ยวกับตำแหน่ง Software Engineer ในแง่ของสโคปงาน กระบวนการทำงาน และการปฏิสัมพันธ์ภายในทีม IT ในแต่ละโปรเจค และอื่นๆ หวังว่าทุกคนจะเข้าใจการทำงานในแผนกนี้มากยิ่งขึ้นนน 💥❤️
Q : ช่วยแนะนำตัวเองหน่อยได้ไหมคะ?
สวัสดีครับ ผมเอ็กซ์ สำอางค์ หมวกผัน ตอนนี้ทำตำแหน่งเป็น Head of API – Firster ครับ
Q : ตำแหน่ง Software Engineer คืออะไร?
ตำแหน่ง Software Engineer ที่ King Power Click เราเป็นหนึ่งในทีมที่ “ผลิตและพัฒนา Software” ซึ่ง Software อันนี้ก็คือ หน้าเว็บ E – Commerce อย่าง www.kingpower.com และ www.firster.com ส่วนใหญ่เราพัฒนาทางด้าน API เป็นหลัก ถ้าเป็นที่อื่นอาจจะเรียกตำแหน่งนี้เป็นชื่ออื่น เช่น Backend Developer
โดยที่ King Power Click เราจะมี Software Engineer 2 ทีมหลัก ๆ คือทีม King Power และทีม Firster ซึ่งแบ่งตามธุรกิจที่ทาง KPC กำลังดูแลตอนนี้
API = Application Program Interface เป็นการเชื่อมต่อจากระบบหนึ่งไปสู่อีกระบบหนึ่ง ซึ่งจะเป็นกลไกที่ช่วยให้ส่วนประกอบ Software สองส่วนสามารถสื่อสารกันได้
Q : รูปแบบของการทำงานในทีมนี้เป็นอย่างไร ?
เราทำงานเป็นรูปแบบ Agile ครับ ทำงานกันเป็น Sprint โดยปกติจะใช้เวลาประมาณ 2 อาทิตย์ต่อ Sprint เราจะนำงานที่จะทำมาร่วมกันคิด ออกแบบ วิเคราะห์กันทุกทีมว่าเราจะทำงานชิ้นนี้มาในลักษณะไหนให้ตอบโจทย์รอบด้านไม่ว่าจะเป็น ทางด้าน Business , Technical เราจะคุยกันให้เข้าใจกันมากที่สุดก่อนลงมือทำ
และมีการแบ่ง Squad คือการแบ่งทีมกันทำ เพื่อให้งานที่ทำย่อยลงมาและชัดเจนในจุดประสงค์ที่จะทำมากที่สุด เราจะพยายามไม่ให้มีขนาดทีมที่ใหญ่เกินไปเลยเป็นสาเหตุที่ต้องแบ่ง Squad (ทีม) ครับ
Agile = เป็นแนวคิดการทำงานรูปแบบหนึ่งที่เน้นผลลัพธ์มากกว่าขั้นตอน เน้นที่การสื่อสารระหว่างกัน มีการนำเอาบุคคลจากสายงานต่างๆมานั่งทำงานร่วมกันเป็นทีม (Cross-functional team)
Sprint = การกำหนดเป้าหมายระยะสั้นๆ แบ่งงานเป็นชิ้นๆ เล็กๆ
Q :ตำแหน่งนี้มีความสำคัญอย่างไร?
ตำแหน่ง Software Engineer เราเป็นผู้สร้างและพัฒนา Software ซึ่ง Software อันนี้ก็คือ E – Commerce Platform ที่ถือเป็น Core Business ของเราเลย ถ้าหากไม่มีคนสร้าง ไม่มีคนพัฒนา พวกกลไกสำคัญต่าง ๆ เราก็จะไม่มีให้ใช้งานเลยครับ ส่งผลต่อ Business แน่นอน แต่จริง ๆ แล้วต้องบอกว่าทุกตำแหน่งสำคัญเท่ากันหมด เพราะเรายังมีตำแหน่งอื่นอย่าง Software Quality Assurance (QA) หรือ Product Owner (PO) และทีมที่เกี่ยวข้องอีกมากมายที่ทำงานร่วมกันทำให้งานออกมาประสบความสำเร็จ สิ่งสำคัญ คือ เราต้องร่วมงานกับทีมที่เกี่ยวข้องทั้งหมดให้สอดคล้องกันมากที่สุดต่างหาก
Q : ใน 1 วันของชาว Software Engineer ที่ KPC เขาทำอะไรบ้าง?
หลักๆ คือเขียน Code ให้ตรงตาม Requirement ที่ได้รับมา โดยทั่วไป 10 โมงครึ่งเราจะมีประชุม Sync กันในทีม คุยกันว่าใครทำอะไรกันไปบ้าง เมื่อวานทำอะไร เจอปัญหาอะไรหรือเปล่า พอประชุมเสร็จก็แยกย้ายกันไปทำงานของตัวเอง ถ้าช่วงใกล้จบรอบ Sprint พอเขียน Code เสร็จก็มีเรื่องการ Review Code ภายในทีม ถามโต้ตอบกันไปมาก่อนส่งไป Pair Test กับทีม QA ครับ
Sprint คือ การกำหนดเป้าหมายระยะสั้นๆ แบ่งงานเป็นชิ้นๆ เล็กๆ
Pair Test คือ วิธีตรวจสอบวิธีหนึ่งที่คนสองคนทำการทดสอบร่วมกันในฟีเจอร์เดียวกัน ในเวลาเดียวกัน แต่ไม่จำเป็นต้องสถานที่เดียวกัน
Q : ปกติทีมเจอปัญหาอะไรในการทำงานบ่อยสุดคะ? มีวิธีการรับมือกับปัญหานั้นอย่างไรบ้าง?
ปัญหาเราเจอหลากหลายมากครับ แต่เจอบ่อย ๆ คือเรื่อง Bug นี่แหละ ส่วนวิธีการแก้ไข คือเราก็ต้องวิเคราะห์ว่าสาเหตุมาจากอะไร เกิดจาก API หรือส่วนประกอบอื่น ก็ค่อย ๆ คิดวิเคราะห์ถึงปัญหาที่เกิดขึ้น ก็อาจจะตอบได้ว่า ไม่ว่าจะเจอปัญหาอะไร วิธีแก้ปัญหาก็คือ ตั้งสติ วิเคราะห์ ค่อยๆลงมือแก้ไขมันอย่างมีเหตุผล
Bug คือ ปัญหาที่เกิดขึ้นกับโปรแกรมอันเนื่องมาจากคำสั่งในโปรแกรมนั้น ๆ เอง ทำให้การทำงานของโปรแกรมไม่ถูกต้อง เกิดข้อผิดพลาด ไม่ได้ผลลัพธ์ตามที่ต้องการ
Q : การเป็น Software Engineer ที่ดีควรเป็นอย่างไร?
รอบคอบ คิด วิเคราะห์ ให้ตรงตามความต้องการของระบบมากที่สุด รวมถึงเข้าใจผู้ที่ร่วมงานกับเราไปด้วยกัน
Q : สุดท้ายนี้ชอบอะไรในการทำงานที่ King Power Click คะ?
ชอบบรรยากาศในการทำงานที่ให้อิสระในการทำงานกันเอง เราสามารถออกแบบการทำงานของเราได้เองโดยสามารถไปพร้อมๆกับทีมได้ และที่นี่เปิดโอกาสให้เราสามารถพูดคุย แสดงความคิดเห็นต่าง ๆ ได้อย่างอิสระ