Review การทำงาน 6 เดือน ที่ KPC
จาก Developer หน้าโง่ๆ สู่ Front-end Developer
หลังจากที่ย้ายงานมาทำที่บ้านหลังใหญ่ที่อบอุ่น King Power Click มาได้ 6 เดือน และก็รู้สึกว่าปีที่แล้ว (2017) เป็นปีที่หนักหน่วงมากสำหรับ developers หญิงที่ตัวเล็กๆ บอบบางๆ น่ารักๆ อิอิ
สัมภาษณ์
วันสัมภาษณ์จริงๆ ก็เป็นอะไรที่ค่อนข้างจะน่าจดจำมากนะ เพราะว่าสัมภาษณ์ไปประมาณเกือบ 2 ชั่วโมง บ้าไปแล้ว!! จริงๆ คือสัมภาษณ์เรื่องงานประมาณ 20 นาที รอสัมภาษณ์อีก ครึ่งชั่วโมง(ล้อเล่น) ฟังพี่ๆ ที่เข้ามาสัมภาษณ์ ยิงมุข ตบมุข เฮฮากันไปอีกหนึ่งชั่วโมงได้
ชอบตรงบรรยากาศตอนสัมภาษณ์ไม่เครียด สุดท้ายก็เครียดอยู่ดี คือพี่เค้าให้โจทย์มาทำ 1 ข้อ พี่เค้าก็ถามว่าทำได้ไหม แล้วนี่ก็ตอบกลับไปอย่างปากดีว่า “ทำได้ทุกอย่างแหละค่ะ ไม่มีอะไรที่คนทุกคนทำไม่ได้หรอก มีแต่ทำได้ดี กับทำได้ไม่ดี ไม่มีคำว่าทำไม่ได้” โอ้โห หล่อเบยยยยยยย (นี่อาจจะเป็นสิ่งที่ทำให้พี่เค้ารับเราเข้าทำงานก็ได้ ฮ่าๆ)
หลังจากนั้นไม่นาน ก็มีโทรศัพท์ติดต่อกลับมาว่าเริ่มงานได้เมื่อไหร่ เข้ามาเซ็นสัญญาได้เลยไหม สรุปคือรับเข้าทำงานจ้า เย่.
npm install คือไรว่ะ ?
เนื่องจากว่าเป็น Devloper หน้าโง่ ที่มาทางสาย java , PHP แล้วก็เป็น dev ที่ code อย่างเดียว Setup อะไรก็มีคนทำให้ ไม่รู้จักจ้า Docker, mangoDB, อะไรอีกมากมาย หมดเวลากับการเซ็ทอัพเครื่องประมาณ 2 วัน ในใจนี่แบบ ถ้าเปลี่ยนเครื่องที ชิบหายแน่นอน แต่แล้วก็ถึงวันที่ต้องเปลี่ยนคอมจ้า ก็ย้ายทุกอย่าง เซ็ทอัพประมาณ 1 วัน (คือคนเซ็ทอัพให้ประมาณครึ่งวัน อีกครึ่งวันมัวแต่หารูป wallpaper อิอิ)
Agile and Scrum.
ตอนแรกๆ ก็งงๆ กับการทำงานแบบ Agile แต่พอได้เริ่ม Train พร้อมกับทุกๆ คนในทีม ก็รู้สึกว่า เข้าใจคำว่า ทำงานเป็นทีม มากขึ้น มีการทำงานที่เป็นระบบมากขึ้น
- เริ่มจาก Sprint Planning เป็นช่วงที่ชอบที่สุด เพราะได้ดูว่างานที่จะต้องทำในสองอาทิตย์นี้มีอะไรบ้าง แล้วก็เป็นช่วงเวลาที่ได้วางแผนกับทุกคนในทีม (สนุกตรงได้เขียนโพสอิทเยอะๆ เนี้ยแหละ ฮ่าๆ) Sprint Planning คือการวางแผนงาน ของใน Sprint นี้ ว่าแต่ละ story ของงานจะมี task งานอะไรบ้าง ประเมินเวลาล่วงหน้าว่าใช้เวลาเท่าไหร่ในแต่ละ task แล้วก็ต้องลงเวลาที่ทำจริงๆไว้ด้วย เพื่อใช้ในการประเมินงาน sprint ถัดไป ใน sprint แรกก็ มีการวางแผนงานแตก task แบบ หยาบๆ (บาปมาก) ตอนช่วงที่ทำงาน ก็จะรู้สึกได้ว่ามีงานงอกเยอะมาก แต่พอ sprint หลังๆ ก็มีปรับตัว ถาม reqiuement ที่ครอบคลุมมากขึ้น ทำให้งานงอกน้อยลงมาก
- ต่อด้วย การทำ Daily Stand-up Meeting ทุกๆวัน ทำให้เข้าใจปัญหาของแต่ละคนในทีม ว่าใครติดปัญหาที่ตรงไหน ใครถืองานอะไรอยู่ งานที่ทำเสร็จไปแล้วกี่ % รวามทั้งงานไหนที่ ฝั่ง api แก้ไขแล้วมี defect กับทีม font ก็คุยกันตอนนี้ ทีมเราตกลงว่าจะ daily meeting กันทุกวันตอนเช้าก่อนทำงานเหมือนเป็นการเพิ่มไฟ (ไฟในการทำงานหรอ ? เปล่าไฟลามก้นเนี้ยแหละ ทำไม่ทันโว้ย อิอิ)
- ทุกๆสัปดาห์จะมีการ Code Review ทุกคนในทีมจะช่วยกันดู Code ของแต่ละคนว่าเขียนไปในทางเดียวกัน กำหนดรูปแบบของ code และนำเสนอเทคนิคหรือแนวแก้ปัญหา หรือแม้กระทั้งสอนใช้ Tool ด้วย ซึ่งช่วงแรก เราจะมี Code Review ทุกวันแต่หลังจากหาสมดุลของทีมแล้วจะตกกันที่ สัปดาห์ละ 1 ครั้งก็พอ
- หลังจากทำงานมาทั้ง Sprint เราก็ต้องโชว์ผลงาน ให้กับ PO (Product Owner) เราเรียกว่า Sprint Review ก็เหมือนเป็นการขายของว่าเราทำแต่ละ story เสร็จแล้วนะ (ส่วนใหญ่จะยังไม่เสร็จ ฮ่าๆ)
- ปิดท้ายของการทำงานแต่ละ Sprint ด้วย Sprint Retrospective ทีมจะเรียกสั้นๆว่า Retro ก็จะเป็นการปิดงาน ว่าทั้ง Sprint ที่ทำมา มีปัญหาอะไรไหมที่ทำให้งานมันช้า หรือหลาย story ก็ไม่เสร็จ เป็นการคุยกันทั้งทีมใหญ่ ( APi, QA, Dev ) รวมทั้งช่วยกันคิดหาวิธีการแก้ปัญหา ที่ทำให้ Sprint ถัดไป ทำงานได้ราบรื่นขึ้น รวมทั้งเป็น section เปิดใจกลายๆ ใครมีปัญหาอะไรกับใคร ก็คุยกัน อยากให้ปรับเรื่องอะไรก็คุยกันตรงๆ ช่วยกันปรับ ทำให้ทีมน่าอยู่
React จ๋า…น้องลาก่อย
อย่างที่บอกไปว่าเป็น โปรแกรมเมอร์หน้าโง่ๆ คนนึง (ไม่ได้โง่แค่หน้านะเอ่อ) รวมทั้งเป็นคนที่ขี้เกียจ การจะต้องศึกษาอะใหม่ ถ้าไม่ได้ต้องทำ ก็ไม่เรียนรู้เองหรอก (เป็นข้อที่ต้องปรับปรุงมากๆ เด้อ) แต่ก็อย่างที่เคยปากดีบอกว่า “ไม่มีอะไรที่ทำไม่ได้หรอก” ก็เลยเหมือนต้องมานั่งชดใช้กรรมที่ก่อจากปากตัวเอง ต้องเรียนรู้เยอะมาก
- เริ่มต้นที่ Component โอ้วโหว์ ตอนแรกก็ชิลมาก ก็คิดว่าคล้ายๆ เขียนแยกไฟล์ใน php แล้วก็ include มาใช้ อ่ะโด่ว ไก่กามากเลอ มีอะไรยากกว่านี้ไหม (ยังคงปากดีอยู่) หลังจากที่เริ่มทำไป แล้วลูกพี่ก็ ดู PR(Pull Requests) พร้อมทั้งถามว่า component นี้ถูกเรียกใช้ที่ไหนบ้าง นี่ก็ตอบไปอย่างมั่นหน้า ก็หน้านี้หน้าเดียวค่ะ ลูกพี่ตอบกลับมาทันทีว่าไม่ให้ทำเป็น component พร้อมทั้งอธิบายว่า เราควรจะเขียน Component ให้สามารถ reuse ใช้ได้ (เหมือนผู้คุมวิญญาณอ่ะ อยู่ในหลายๆ ที่พร้อมๆ กัน)
- ถัดมาอีกนึงก็ ES6 (ซึ่งตอนนี้ไปถึง 8 แล้วนาจา) จากเมื่อก่อนเวลาเราสร้าง function จะต้องประกาศว่า function myFunction(param){ do someting return something } แต่พอมาเป็น ES6 น้าน myFunction = (param) => { something } ขุ่นพระ ลูกศรคือร่ะ !? return หายไปไหน ? เห็นครั้งแรกอยากจะบ้า แต่พอได้เริ่มสนิทกับคุณ ES6 แล้วเราว่าก็โอเคนะยูว์ ไม่ได้เข้าถึงยากขนาดนั้น
- ต่อมาด้วย Styled Component ตอนแรกคือเกลียดมาก โลกเรามี SASS นะเฟ้ย ยังจะมาเขียนแบบในรูปแบบที่คล้ายๆ จะ in-line Style ทำไมกันนะ แต่ด้วยเรื่อง Performance รวมทั้ง Boilerplate หลายๆตัวก็ รองรับ Styled Component มากขึ้น หลังจากที่เขียน Styled Component แล้วก็รู้สึกใช้งานง่ายดี จะดู Style อะไรก็ดูใน ไฟล์นี้ได้เลย ไม่ต้องเปิดหลายไฟล์ให้เยอะ
- ตามมาติดๆ ด้วย Redux ตัวนี้บรรเทิงมาก คือมันงง มันซับซ้อน มันเยอะ มัน action reducer selector ตายแปบ แต่ช้าก่อน ปัญหาของท่านจะหมดไปถ้าท่านไล่โค้ด! คือนี่เป็นคนที่ถ้าทำอะไรไม่ถูกโอเค ไล่โค้ดก็เริ่มจาก action ที่ถูกเรียกใช้ ก็เข้าไปดูว่า ต่อกับ reducer ชื่ออะไร ไปทำอะไรต่อ ตอนนี้พูดได้เลยว่าเริ่มคล่องแต่ก็ยังไม่สนิทอยู่ดี
- ตบท้ายเบาๆ ด้วย immutable ว้อท! คือปกติเวลาเราอยากได้ค่าใน form เราก็เอามาเป็น json ใช่ม่ะ แต่นี่ไม่จ้าในเมื่อเราใช้ redux form แล้วก็บ่ยั่นไปให้สุดแล้วหยุดที่ google ต่อๆ คือค่าที่ได้จาก redux form มันออกมาเป็น object แต่ object ปกติเวลาเราจะแก้ไขค่ามันก็จะง่ายๆ แค่ set ค่าไปตรงๆ แต่นี้ไม่ใช่เรื่องที่จะขอแล้วให้กันได้~ ต้องไป getIn setIn อีกเยอะแยะ แต่หลังจากที่ทำมา 6 เดือน ตอนนี้เราเริ่มซี้ย้ำปึ๊กแล้วจ๊ะ
We’re KPC Team
ทีมงานในบ้าน KPC ก็ไม่น้อยเท่าไหร่ สิริรวมเกือบๆ 130 ชีวิต ตอนที่เริ่มทำงานใหม่ๆ คิดว่า “ยิ่งมากคนยิ่งมากความ” แต่ที่นี่ทำให้ลบคำเหล่านั้นได้ มากคนก็ไม่ได้มากความเสมอไป (จริงๆก็มากความมากนะตอนกินเหล้าหน่ะ คนนี้จะเอาสิงห์ คนนี้จะกินช้าง คนนี้กินไวน์ จ๊ะ -___- )
คนที่นี่เป็นกันเองมากตั้งแต่เข้ามาทำงานวันแรกไม่รู้สึกเกร็งแม้แต่น้อย รู้สึกสนิทกับทุกคนได้ไวมาก แล้วพี่ๆก็ช่วยตบๆ เราให้เข้าที่เข้าทาง ช่วยพัฒนาให้เป็น Programmer ที่ดีได้ (แม้ว่าจะขึ้เกียจไปหน่อยก็ตามเถอะ) สัญญาว่าจะพัฒนาตัวเองเป็น Programmer ที่ดีแบบพี่ๆให้ได้ฮ่ะ :)
หกเดือนที่ผ่านมาได้เรียนรู้จากหลายๆคนเยอะมาก ทั้งการทำงาน ทั้งการใช้ชีวิต mindset เปลี่ยนไปเยอะมาก จากที่เคยคิดว่า เพื่อนร่วมงานก็แค่เพื่อนร่วมงาน แต่ที่นี่ทำให้รู้สึกเหมือนครอบครัว พี่ๆ ทุกคนเอาใจใส่มาก รักครอบครัวนี้มากเด้อ ❤❤❤