Developer จิ๊กซอว์เล็กๆ บนผืนผ้าใหญ่ๆ ของ KBTG

24.7
KBTG Life
Published in
3 min readJan 25, 2022

“แค่อยากให้เธอได้รู้ อยากให้เธอลอง

เธออาจจะยังไม่พร้อม จะยอมรักใครจริงสักคน

โอกาสดีๆ อย่างนี้จะมีอีกกี่หน

จะเป็นไปได้ไหม ให้เราสองคนได้มาคุยกัน”

เนื้อเพลงท่อนฮุกเพลงหนึ่งของวง Musketeers เกี่ยวกับ KBTG ยังไง ก็เกี่ยวกันตรงที่เป็นข้อความที่พวกเราอยากจะบอกทุกคนว่า KBTG มีการทำงานแบบไหนกันนะ อยากให้ลองฟังเหมือนมานั่งฟังเพลงกัน

Developer ภายในรั้ว KBTG อยู่กันแบบครอบครัวในบ้านหลังเดียวกัน KBTG เป็นบ้านหลังโตๆ หลังหนึ่ง บ้านหลังนี้มีหลายๆ ชั้น แต่ละชั้นมีหลายห้อง ไม่สิ! ต้องเรียกว่าหลายร้อยห้องเลยก็ว่าได้ เราเองก็จะอยู่ข้างในห้องนั่นแหละ หรือเรียกอีกอย่างนึงว่าเราอยู่ใน TEAM

Photo by Hannah Busing on Unsplash

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

Developer คือหนึ่งในผู้เล่นของทีม ผู้เล่นตำแหน่งนี้มีหลายร้อยคน ได้ลงสนามกันทุกคน ทุกคนจะเล่นด้วยกัน จะได้รับการฝึกฝนตั้งแต่ Soft Skill เช่น Communication, Thinking, Work Ethic และ Teamwork ไปจนถึง Technical Skill เช่น Programming Language และ Software Development Process ช่องทางการฝึกมีให้เลือกหลากหลายตามความสะดวกของผู้เล่น เช่น Classroom (ทั้ง Onsite และออนไลน์), Udemy, SkillLane หรือสะดวกแบบ Guild เช่น Java Guild, Mobile Guild โดย Guild ก็จะเป็นกลุ่มคนคอเดียวกันมาเล่าสู่กันฟัง ข่าวล่ามาเร็ว อัพเดตก่อนใคร เสมือนได้ไปนั่งอยู่ในการเปิดตัว Product ใหม่ของบริษัท Tech ระดับโลกอย่าง Apple, Google และ Facebook

Developer เมื่อได้รับงานที่ได้รับมอบหมายมา ความสนุกได้เริ่มต้นขึ้นแล้ว Programming มีภาษาให้เขียนหลายภาษา มีเฟรมเวิร์คให้ใช้หลายตัว หลายยี่ห้อ หรือหนึ่งภาษาก็มีหลายเฟรมเวิร์คแค่ได้คิดว่าจะใช้อะไรทำก็สนุกแล้ว ตัวอย่างเช่น ถ้าเลือกใช้ภาษา Java ก็จะต้องเลือกต่ออีกว่าจะใช้หรือไม่ใช้เฟรมเวิร์ค แบบไหนดีกว่ากัน ถ้าเลือกใช้เฟรมเวิร์คจะใช้ของยี่ห้อไหน Spring Boot ดีไหมหรือ Spring Batch ดีกว่า ถ้าไป Spring Boot น่าจะเหมาะกับงานประเภทไหน เป็นมิตรกับ Database แบบไหน แบบ SQL หรือแบบ NoSQL สมมุติว่าเลือก SQL จะเหมาะกับยี่ห้อไหนมากกว่า จะเป็น Oracle หรือ Maria ดีกว่ากัน แล้วมีหลักการดูอย่างไรกันบ้าง เพื่อให้งานที่ได้รับมอบหมายของเราออกมาดีที่สุด แบบไหนกันที่เรียกว่า “The Right Tool for the Right Job”

Developer เมื่อตัดสินใจได้แล้วว่าจะใช้ภาษาอะไรในการเขียน สถานีต่อไป Architecture ของโปรแกรมที่เหมาะกับงานของเราควรเป็นอย่างไร แบ่งเป็นกี่ Tier ดีต้องมี Controller หรือเปล่า โครงสร้างควรทำเป็น Hierarchy หรือจะทำเป็น Flat แบบไหนที่ Maintenance ได้สะดวก การเขียนโค้ดแบบไหนจะอ่านง่าย Coding Convention เพื่อให้เพื่อนข้างๆ ที่ร่วมเขียนกับเราเข้าใจและสามารถแก้ปัญหาได้เร็ว แบบว่าเห็น Error ก็รู้ทันทีว่าต้องเปิดไฟล์ไหนขึ้นมาดู ควรหรือไม่ที่จะต้องมี Test Case คลุมในทุก Method ที่เขียน อยากให้โปรแกรมสามารถรองรับการเติบโตในอนาคตได้หรือไม่ ถ้าอยากให้รองรับได้ต้องทำอย่างไร ซึ่งการที่จะเลือกสิ่งต่างๆที่กล่าวมานั้น ไม่มีคำว่าผิดหรือคำว่าถูกแบบตายตัว Developer นั่นแหละที่จะเข้าใจ

แนวทางการทำทีม

ที่ KBTG จะเป็นแบบ Agile Methodology ทำให้ทุกตำแหน่งผู้เล่นได้สื่อสารกันตลอด เข้าใจกันรวดเร็ว ล้มเร็วเพื่อที่จะลุกขึ้นเร็ว ปรับแก้ได้ทันท่วงทีแบบที่ไม่มีคำว่า “สายเกินไป” หรือคำว่า “แกมาบอกอะไรเอาตอนนี้”

Photo by Patrick Perkins on Unsplash

เป็นที่ทราบกันอยู่แล้วว่าแนวคิดการทำงานแบบ Agile เป็นการทำงานแบบวงรอบสั้นๆ หรือที่เรียกกันว่า Sprint โดย 1 วงรอบใช้เวลาประมาณ 2 สัปดาห์ (สามารถยืดหยุ่นได้ ตามความเหมาะสม) ในแต่ละรอบผู้เล่นทุกตำแหน่ง เน้นว่าทุกตำแหน่งเลย ไม่ว่าจะเป็น Sponsor, Manager, ทีม BA, ทีม Dev, ทีม Test, ทีม NFT ไปจนถึงท่านผู้ชมบนอัฒจันทร์อย่าง Business User จะเข้ามาร่วมด้วยช่วยกันทำหน้าที่ของตนเอง ขอยกตัวอย่าง 1 วงรอบแบบง่ายๆ เพื่อให้เห็นภาพมากขึ้นแบบนี้

  1. Business User บอกความต้องการของระบบหรือที่เรียกติดปากกันว่า Requirement
  2. ทีม BA วิเคราะห์ Requirement ความเชื่อมโยงและความเป็นไปได้
  3. ทีม Dev สร้าง Prototype เพื่อนำไปสู่การ Implementation
  4. ทีม Test ออกแบบและทดสอบตาม Scenario
  5. Business User ทำการรีวิวชิ้นงานของรอบ Sprint
  6. วกกลับไปทำข้อ 1 ใหม่

ซึ่งการวนไปทำข้อ 1 ใหม่นั้น มีทั้งไปปรับแก้งานใน Sprint ที่ผ่านมาซึ่งอาจจะยังมีบางส่วนที่เข้าใจไม่ตรงกัน หากไม่มีการปรับแก้ก็ดำเนินการทำชิ้นงานต่อไป โดยจะเห็นได้ว่าแนวคิดนี้ User จะสามารถเห็นผลงานบางส่วนได้ก่อน ถ้า User รีวิวแล้วพบว่ามาผิดทางจะได้แจ้งทางทีมพัฒนาได้ทันที โดยจะเสียเวลามากที่สุดคือ 2 สัปดาห์เท่านั้น ส่วนเรื่องบรรยากาศการทำงานในแต่ละข้อด้านบน เรียกได้ว่าถ้าใครยังไม่รู้จักกัน จะได้สนิทกันก็คราวนี้แหละ เพราะทุกคนจะรู้จักกันโดยอัตโนมัติ หันไปทางซ้ายเจอ BA หันไปทางขวาเจอ BU มองไปข้างหน้าเจอ Tester มองไปข้างหลัง Developer ผู้เล่นทุกตำแหน่งอยู่ล้อมรอบตัวเรา ไม่มีคำว่าเหงาแน่นอน หากทำงานอยู่แล้วมีข้อสงสัยขึ้นมา ก็สามารถถามคนรอบตัวที่พร้อมช่วยเราแบบรอบด้าน

เมื่อทีมมีแนวทางการทำทีมที่ชัดเจนแล้ว ยังมีพิมพ์เขียวเพื่อให้แต่ละผู้เล่นมองเห็นไปในทางเดียวกัน แม้กระทั่งผู้เล่นที่เพิ่งเข้ามาวันแรกก็จะเห็นภาพเดียวกันได้ เช่น DevOps, Automation Test, Excellence Engineer ไม่ต้องตกใจหากอ่านแล้วงงๆ เพราะแต่ละพิมพ์เขียวเรามีทีมที่พร้อมซัพพอร์ต Developer อย่างเราๆ แบบที่ต้องเรียกว่า “บริการทุกระดับประทับใจ”

สิ่งอำนวยความสะดวกให้กับผู้เล่นตำแหน่งนี้

หากพบว่าตาข่ายประตูฝั่งเราขาด แต่ไม่รู้ว่าขาดตรงไหน ก็คงทำได้โดยการไปเดินหาจุดที่ขาด แน่นอนว่าคงจะตาลายใช้เวลาไม่น้อย ถ้ามีเครื่องสแกนรอยขาดให้เราสามารถพุ่งตรงไปปิดได้เลยก็จะสะดวกอย่างมาก โดยเครื่องอำนวยความสะดวกนี้มีให้ใช้เป็นของส่วนกลาง หยิบไปใช้ได้ทันที อาทิเช่น Dashboard Monitoring, Intelligent Batch Flow Control, Source Code Control เป็นต้น หากสงสัยวิธีการใช้ สามารถคุยกับคนข้างๆ ได้

เมื่อเวลาผ่านไป ยุคสมัยเปลี่ยนไป

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

สิ่งที่ลืมไม่ได้เลยที่จะเล่าให้ฟัง

ต้องขอยกจังหวะการทำประตูในช่วงท้ายเกมให้เป็นไฮไลท์เลย นั่นคือการ Go Live เมื่อระบบที่สร้างมาด้วยน้ำพักน้ำแรงของทีมเสร็จสมบูรณ์โตเต็มวัย พร้อมที่จะออกสู่สายตาประชาคมโลก ระบบที่ได้ทำการทดสอบผ่านมาแล้วในทุก Area ทั้ง Functional และ Non-Functional มีซ้อม Deploy กันมาไม่ต่ำกว่า 4 รอบ แน่นอนทีมเรามีความมั่นใจมากเราเพราะเราซ้อมกันมาเยอะ เมื่อวัน Deploy จริงมาถึง ใจเจ้ากรรมก็ยังแอบคิดอะไรไปเรื่อย กังวลอะไรก็ไม่รู้เต็มไปหมด ความตื่นเต้นเข้าครอบงำ แต่เมื่อเงยหน้าขึ้นมาเห็นคนในครอบครัวทุกคนมาพร้อมหน้ากัน มีตั้งแต่ผู้บริการ, Business User, Sponsor, Manager, Business Analyst, Lead, Developer, Tester, Implementer ความกังวลหายไปเป็นปลิดทั้ง บอกตัวเองว่าเราซ้อมกันมาขนาดนี้เราจะกลัวอะไรอีก

การ Deploy ได้ดำเนินไปตามที่ซ้อมกันมา

เนื่องจากตอนที่ซ้อมเราทำเหมือนของจริง ดังนั้นเราก็ทำของจริงให้เหมือนที่ซ้อมกันมา แต่ละคนรับผิดชอบในส่วนของตัวเองแบบตอนที่ซ้อม เมื่อถึงจุด Checkpoint ของแต่ละสเต็ป จะมีการรายงาน War Room มีบางคนต้องรอสัญญาณจาก War Room เพื่อดำเนินการในสเต็ปที่แต่ละคนต้องรับผิดชอบกัน ความรู้สึกตอนนั้นมันเข้าถึงคำว่า “Teamwork” มากๆ ทุกคนเป็นส่วนหนึ่งของทีมจริงๆ ขาดใครไม่ได้เลยแม้แต่คนเดียว แต่ถึงจะซ้อมมาแค่ไหน ปัญหาก็ยังมีโอกาสเกิดได้เสมอ แน่นอนเราเจอปัญหาแล้ว สิ่งแรกที่ทำคือรายงาน War Room มันเป็นการส่งสัญญาณขอความช่วยเหลือบอกคนในครอบครัว เมื่อครอบครัวทราบก็จะรีบปรึกษาหารือกันเพื่อช่วยเหลือและหาแนวทางแก้ไข โดยไม่มีคำถามที่เป็น Negative กลับมาให้ท้อใจ ปัญหาที่พบบางเรื่องใช้เวลาไม่นาน บางเรื่องใช้เวลาไม่น้อย บางเรื่องต้องขอความช่วยเหลือจากทีมอื่นที่ไม่อยู่ในแผนตอนซ้อมก็มี แต่ก็ได้รับการซัพพอร์ตอย่างเต็มที่เต็มใจ จนสามารถแก้ปัญหาทุกอย่างได้ นี้แหละคงเป็นที่มาของคำว่า “ทุกปัญหา มีทางออก” จนทำให้ระบบดังกล่าวสามารถ Go Live ได้สำเร็จตามแผนที่วางไว้

Image by ChaosSoccerGear from Pixabay

เมื่อเรายิงประตูได้สำเร็จ GO GO GOAL

อีกทั้งยังเป็นการยิงประตูท้ายเกมซะด้วย เมื่อกรรมการเป่านกหวีดหมดเวลา หลังจากนี้สิ่งที่ทีมเราทุกคนต้องทำก็เดาไม่ยาก ขาดไม่ได้สำหรับบ้าน KBTG นั่นคือการ “Celebrate” การเฉลิมฉลองความสำเร็จเป็นสิ่งที่ยิ่งใหญ่ แม้ว่าความสำเร็จจะเล็กหรือใหญ่ก็ตาม มันเป็นการสร้างขวัญกำลังใจ สร้างความรู้สึกดีๆ ให้กัน เป็นการเติมหัวใจให้กัน เติมไฟให้กัน ชาร์จพลังให้กลับมาเต็มหลอดอีกครั้ง เพื่อจะนำไปใช้สู้กับชีวิตในวันพรุ่งนี้กันต่อไป

มาถึงตรงนี้ อยากให้ทุกคนกลับไปฟังเพลงด้านบนอีกสักรอบ “แล้วเจอกันนะ”

สำหรับชาวเทคคนไหนที่สนใจเรื่องราวดีๆแบบนี้ หรืออยากเรียนรู้เกี่ยวกับ Product ใหม่ๆ ของ KBTG สามารถติดตามรายละเอียดกันได้ที่เว็บไซต์ www.kbtg.tech

--

--