สวัสดีครับ Section CTO Blog เป็น Section สำหรับให้ CTO ของบริษัท Startup มาร่วมแบ่งปันว่าในบริษัทที่ CTO เหล่านี้ทำงานอยู่มีจุดไหนบ้างในบริษัทตนเองที่อยากจะแนะนำให้ Programmer รู้จักทั้งในแง่ของเทคโนโลยีภายในหรือวัฒนธรรมองค์กรของบริษัทนั้นๆ
บทความนี้เรามารู้จักกับคุณ ศรัณญู กู้ธนพัฒน์ ซึ่งเป็น CTO ของบริษัท SkillLane กันเลยครับ
เกี่ยวกับ SkillLane
ก่อนอื่นขอเกริ่นถึงที่มาของ SkillLane หน่อยละกันครับ
รู้หรือไม่ว่า คนไทยวัยทำงานกว่า 90% อยากเรียนรู้ ทักษะใหม่ๆ บางคนอยากทำ excel ให้เก่งขึ้น บางคนอย่างแต่งรูปสวยๆ บางคนอยากเล่นหุ้น แต่ไม่มีเวลาพอที่จะไปเรียนตามที่เค้าเปิดสอน
ทีมของเราเลยสร้าง SkillLane.com ซึ่งเป็น platform คอร์สเรียนออนไลน์ ที่ทำให้ user สามารถเรียนทักษะใหม่ๆ ได้ทุกที่ ทุกเวลา ไม่ต้องเสียเวลาทั้งวันไปเรียนที่สถาบัน ว่างเมื่อไหร่ก็เปิดคอมพิวเตอร์หรือหยิบ tablet ขึ้นมาดูได้
ทำไม Start-up Tech team ถึงต้องมองให้กว้างกว่าการพัฒนา product
การทำ SkillLane.com ขึ้นมา แน่นอนว่าจะต้องใช้บุคลากรด้าน IT หรือ Tech team ทำขึ้นมา ในทีมนี้สมาชิกส่วนใหญ่จะเป็นพวก developer ซึ่งความมีสามารถด้านการทำระบบ IT อยู่แล้ว แต่หลายๆคนอาจจะไม่รู้ ว่าจริงๆแล้วมีอีกหลายมุมมองของ Tech team ซ่อนอยู่
องค์กรที่เป็น start-up ซึ่งมีทรัพยากรบุคคลไม่มาก ไม่ได้มีฝ่ายงานมากมายมารับผิดชอบงานต่างๆ เช่น งานบัญชี งานติดต่อลูกค้า ฯลฯ อาจทำงานทั้งหมดนี้ด้วยคนแค่ 5-10 คน การเพิ่มความสามารถในการทำงานต่างๆในบริษัทด้วยทรัพยากรบุคคลที่จำกัดจึงเป็นความท้าทายอย่างมากในบริษัทประเภทนี้ ณ จุดนี้เองที่ Tech team กลายเป็นฟันเฟืองสำคัญในการขับเคลื่อนธุรกิจในทุกๆด้าน ไม่เพียงแต่ดูแลเฉพาะงานด้าน IT เท่านั้น
จุดมุ่งหมายของ Tech team นั้นคือการนำเอา IT มาใช้ให้เกิดประโยชน์กับทุกๆการทำงานในบริษัท เฉพาะฉะนั้นงานของ Tech team จะมีส่วนคาบเกี่ยวกับทุกสายงานของบริษัทเลย Tech team จึงจำเป็นต้องมองได้หลายมุม ยกตัวอย่างง่ายๆ เช่น
- เราจะลงบัญชีให้ถูกต้องได้อย่างไร ถ้าไม่มีระบบข้อมูลที่แม่นยำ?
เมื่อองค์กรเติบโตขึ้น ระบบบัญชีก็จะซับซ้อนมากขึ้น เพราะมีโปรโมชั่นและประเภทของลูกค้าที่หลากหลายยิ่งขึ้น แน่นอน Tech team มีหน้าที่จัดการงานในส่วนนี้ให้ดี หากจะทำระบบบัญชีที่ดีได้ การมีความสามารถด้าน IT อย่างเดียวอาจจะไม่พอ เราจำเป็นต้องมีความรู้ความเข้าใจเกี่ยวกับหลักการบัญชีเราถึงจะทำได้
- เราจะขับเครื่ององค์กรไปข้างหน้าได้อย่างไร ถ้าเราไม่มีระบบวัดผลที่ดี?
การทำบริษัทให้ประสบความสำเร็จ เราจำเป็นต้องวัดผลว่าสิ่งที่เราทำไปเป็นอย่างไร เช่น ถ้าเราทำโฆษณาออนไลน์ (Online Ads) เพื่อให้ได้ลูกค้าเพิ่มขึ้น เราจำเป็นต้องรู้จัก Online Ads ว่าประเภทไหนดีไม่ดี มีข้อดีข้อเสียแตกต่างกันอย่างไรบ้าง และเราจะวัดผลการใช้งาน Ads ประเภทนี้ได้อย่างไร Tech team จะต้องเข้าใจถึงหลักการของ Online Ads ชนิดต่างๆและพัฒนาระบบให้รองรับการใช้งานและการวัดผลของ Online Ads ชนิดนั้นๆ
การเลือกใช้ tools ให้ถูกสำคัญอย่างไร
เมื่อมีความหลากหลายเกิดขึ้นในเนื้องาน เราจำเป็นต้องมีผู้ช่วย ผู้ช่วยที่หาได้ง่ายที่สุดคือ tool ซึ่งมีให้เลือกใช้มากมายตามท้องตลาด การเลือกใช้ tool สำคัญมาก
- หากเลือกผิดอาจจะทำให้เกิด waste ใน process การทำงานได้ เช่น การดึงข้อมูลอาจต้องใช้เวลานาน เนื่องจากเลือกเครื่องมือที่ไม่เหมาะสมกับข้อมูลประเภทนั้นๆ
- หากเลือกถูก แน่นอนครับ งานหนักๆหลายๆด้านที่ทีมต้องรับผิดชอบ จะสามารถทำสำเร็จได้อย่างง่ายดาย บริษัทเติบโต ทุกอย่างจะดีตามกันไปทอดๆ
การใช้ tools จัดการงานในแต่ละมุมมอง
ขอยกตัวอย่างอธิบายเป็นมุมมองใหญ่ๆหลายๆด้านดังนี้ละกัน
มุมมองด้านการวัดผล User Activity
เพื่อดูว่าระบบหรือ product ของเรามีสถานะเป็นอย่างไรบ้าง เราทำอะไรขึ้นมาใหม่แล้วผลลัพธ์การของการทำสิ่งนั้นขึ้นมาเป็นอย่างไรบ้าง ไม่ใช่ว่าเราทำ feature ใหม่ขึ้นมาแต่กลับไม่รู้เลยว่ามี user มาใช้ feature นี้หรือเปล่า เช่น
- Google Analytics ที่น่าจะเป็น tracking tool ที่น่าจะใช้ง่ายที่สุดและได้ผลอย่างคุ้มค่า สามารถวัด Active user, ทำ cohort graph ได้โดยไม่ต้องลงแรงกับมันเยอะ ถือเป็น tool เบื้องต้นที่ควรมีไว้
- Hotjar เป็นอีกหนึ่ง tracking tool ที่มีความสามารถในการ track พื้นที่การลาก mouse ของ user ได้ เราจะรู้ได้ว่า user ให้ความสนใจส่วนใหญ่กับ website ของเราในพื้นที่ตรงไหนบ้าง บนซ้าย หรือ บนขวา เป็นต้น เพื่อปรับปรุง User Experience (UX) ให้เหมาะกับ user มากที่สุด
มุมมองด้าน System Performance
เพื่อดูว่าระบบเราทำงานได้เร็วแค่ไหน มีประสิทธิภาพแค่ไหน เกิดปัญหาอะไรบ้างกับระบบ
- New relic กับ Sentry น่าจะเป็น 2 tool ที่ใช้ monitor system ได้ในขั้นแรก มันสามารถตรวจดู performance และ error ของระบบได้
- Framework ก็ถือเป็นอีก tool หนึ่ง ถ้าเราใช้ได้ถูกต้อง จะช่วยเราได้มาก เช่น การ generate report, client-side framework เช่น React หรือ pdfkit ก็จะช่วยให้ Performance ของ server ดีขึ้นโดยย้าย load บางส่วนไปอยู่ที่ฝั่ง Client ได้
- CDN ซึ่งจะช่วยเรื่อง Scalability การใช้ CDN เพื่อช่วยส่งข้อมูลไปยัง end-user ทำให้ช่วยเพิ่มประสิทธิภาพได้ดี หากไม่ใช้ จะต้องพบปัญหาเมื่อมี user เยอะๆแน่นอน
มุมมองด้าน Software Development
เพื่อดูว่าการพัฒนาระบบของเราได้มาตรฐานหรือไม่ เป็นการป้องกันการเกิดปัญหาในอนาคต
- Security – ความมั่นคงปลอดภัยเป็นอีกสิ่งหนึ่งที่สำคัญ เครื่องมือที่ช่วยทุ่นแรงจะเป็นพวก Vulnerability Assessment (VA) tool หรือที่เรียกว่าเครื่องมือตรวจสอบช่องโหว่ของระบบ เช่น Acunetix, Nikto, w3af, Vega หลายๆตัวเป็นเครื่องมือฟรี(limited capability) คือให้เราใช้ฟรีได้บางฟังก์ชั่น เครื่องมือพวกนี้จะทำให้เรารู้ช่วงโหว่ของระบบเราเองก่อน เพื่อให้เราป้องกันตัวเองได้ก่อน ที่เราจะโดนโจมตีจริงจากคนอื่น
- Testing – มี tool อยู่หนึ่งตัวที่อยากแนะนำ เป็นตัว generate test case เข้าใจว่าการเขียนเทส หลายคนมองว่าเป็นการเสียเวลา หรือบางทีเยอะมาก ทำให้ขี้เกียจเขียน Selenium มี plug-in ที่สามารถต่อกับ firefox เพื่อให้ auto-generate test case ออกมาเป็น spec ได้เลย ทำให้ช่วยประหยัดเวลาในการทดสอบระบบ
มุมมองด้าน Communication
การสื่อสารกันภายในองค์กรก็เป็นสิ่งสำคัญมากเช่นกัน ถ้าเราทำระบบขึ้นมาแล้ว คนที่ใช้มันใช้ได้ไม่เต็มศักยภาพของมัน ระบบนั้นจะกลายเป็นระบบที่ไม่ดีในสายตาผู้ใช้งานไปเลย เราต้องสื่อสารกันทั้งภายในองค์กรและภายนอกให้ดีด้วย ซึ่งเราก็มีเครื่องมือช่วยอีกเช่นเคย
- Slack – พูดง่ายๆคือการสื่อสารกันภายในองค์กร จุดเด่นของ tool ตัวนี้คือสามารถ set intregration เข้าหาได้ เช่น เมื่อมีเหตุการณ์บางอย่าง เราสามารถสั่งให้ส่ง message มายัง Slack ได้เพื่อเตือนให้ผู้เกี่ยวข้องแก้ไขปัญหาได้ทันท่วงที
- Atlasssian tools set – ประกอบไปด้วย tool ย่อยหลายๆตัว เช่น
- JIRA – เป็น issue tracker ที่สามารถปรับ mode เป็น Classic software development หรือ Agile practice ก็ได้ มีบอร์ดให้เลือกได้หลายอย่าง ตามกระบวนการทำงานขององค์กร(Process)
- BitBucket – เป็นที่เก็บ Source code ของโปรแกรม และมีตัวช่วยในการทำงานของทีมพัฒนา เช่น ฟังก์ชั่นในการ review code (pull request)
- Confluence – เป็น Knowledge base management ไว้เก็บข้อมูลต่างๆที่จำเป็นให้เป็นระเบียบเรียบร้อย
เราจะเรียนรู้สิ่งเหล่านี้ได้อย่างไร
ทั้งหมดนี้เป็นเพียงตัวอย่างเท่านั้น tool อีกหลายตัวที่ไม่สามารถเขียนบอกทั้งหมดได้ในบล๊อกนี้ ข้อสำคัญอยู่ที่การเลือกใช้ แต่ละ tool มีข้อดีข้อเสียแตกต่างกันออกไป มุมมองทั้งหมดก็เช่นกัน ยังมีอีกหลายมุมมองซ่อนอยู่
เราจะได้เจอมันก็ต่อเมื่อลองลงมือทำ จึงเป็นโอกาสสำหรับโปรแกรมเมอร์หรือน้องที่จบด้าน IT ใหม่ๆที่อยากลองหาประสบการณ์ในการทำธุรกิจ โดยเริ่มทำ start-up ที่จะได้รับประสบการณ์ทางธุรกิจที่หลากหลายพร้อมไปกับงาน IT ที่ชื่นชอบ
โดย SkillLane เองก็กำลังเปิดรับ สมาชิกทีมใหม่ที่ไฟแรง ต้องการเรียนรู้ ไปพร้อมกับการสร้าง Product ที่เรารัก ถ้าสนใจก็ติดต่อได้ หลายช่องทางเลย
Email: [email protected]
Twitter: @SaranyuKoo
ผู้เขียน: ศรัณญู กู้ธนพัฒน์ CTO SkillLane