Scroll ลง เพื่อดูบทความ
ไขปริศนา ความท้าทายต่าง ๆ ในการก้าวไปสู่ตำแหน่ง CTO
โดย PanJ
ในสายอาชีพ programmer/developer ตำแหน่งที่คนส่วนใหญ่คิดว่าสูงที่สุดแล้วน่าจะหนีไม่พ้น Chief Technology Officer หรือ CTO ซึ่งมีชื่อเรียกภาษาไทยเก๋ ๆ ว่าประธานเจ้าหน้าที่บริหารฝ่ายเทคโนโลยี เอาจริง ๆ แล ...
Solving BigData with BigQuery (3/3) — ใช้จริง
โดย SARIN
บทความนี้จะมีเนื้อหาเกี่ยวกับ Google BigQuery: Serverless Data Warehouse จาก Google ครับ บทความนี้เป็นเนื้อหาพาร์ทสุดท้ายจาก ซีรีส์แนะนำ Google BigQuery ของ Cleverse โดยบทความนี้จะเน้นไปที่แนวทางต่างๆ ...
Solving BigData with BigQuery (2/3) — ลองเล่น
โดย SARIN
คุณมีปัญหากับการวิเคราะห์ข้อมูลขนาดใหญ่ใช่ไหม? — ลองมาใช้ BigQuery ดูสิ 0) เกริ่นนำ หากคุณเป็นคนที่ทำงานในสายงาน Data Science หรือใกล้เคียง คุณอาจจะเคยได้ยินคนพูดถึง BigQuery มาบ้าง สรุปแบบสั้นๆเลยคือ ...
Solving BigData with BigQuery (1/3) — บทนำ
โดย SARIN
หลายๆคนอาจจะมองว่าการจัดการ Big Data เป็นเรื่องลำบาก — ตั้งแต่การวางแผนติดตั้งระบบ การนำข้อมูลเข้า จนถึงการ Query ข้อมูลแต่ละครั้งซึ่งทำได้ยากและใช้เวลานาน แถมพอใช้งานจริงก็ต้องคอยดูแลอีก วันนี้บล็อกน ...
ของโคตรดี! เมื่อแทนที่ GraphQL Backend ด้วย Graphcool!
โดย ชิน
สำหรับท่านที่ไม่เคยใช้ GraphQL มาก่อน น่าจะเคยใช้ชีวิตร่วมกับ REST มาก่อน ซึ่งตัว REST จะมีความต่างที่ชัดเจนจาก GraphQL คือ REST เราต้องกำหนด endpoint เต็มไปหมด ถ้า model เปลี่ยนไปเรื่อยๆต้องมาแก้ทีละ ...
ENGINEERING
DESIGN
CULTURE
Cleverse, a venture builder, with people who have fun building the future. If you also consider building the future a fun and meaningful purpose — let’s find a way we can work together.
121/75 RS TOWER 24th Floor
Ratchadaphisek Road
Dindaeng Bangkok 10400
Thailand
11.Jul.2018
โดย PanJ

ไขปริศนา ความท้าทายต่าง ๆ ในการก้าวไปสู่ตำแหน่ง CTO

Scroll down

ในสายอาชีพ programmer/developer ตำแหน่งที่คนส่วนใหญ่คิดว่าสูงที่สุดแล้วน่าจะหนีไม่พ้น Chief Technology Officer หรือ CTO ซึ่งมีชื่อเรียกภาษาไทยเก๋ ๆ ว่าประธานเจ้าหน้าที่บริหารฝ่ายเทคโนโลยี

เอาจริง ๆ แล้วการเป็น CTO นั้นง่ายกว่าที่คิด เปิดบริษัท startup กันสองคน คนนึงดูเรื่อง non-tech อีกคนดูเรื่อง tech ก็เรียกว่าเป็น CTO ได้แล้ว ซึ่งในบางกรณีนั้น CTO อาจจะย่อมาจาก Cheap Technology Officer คือทำทุกอย่าง แต่ไม่มีเงินเดือนให้นะ (ไม่ได้แปลว่าไม่ดีนะ ถ้าคุณเชื่อมั่นใน vision หุ้นย่อมสำคัญกว่าเงินเดือนแน่นอน)

และการที่ developer คนหนึ่งที่เข้ามาอยู่ในตำแหน่ง CTO ไม่ว่าจะโดยตั้งใจ หรือจับพลัดจับผลูได้มาเป็น นั้นจะต้องเจอกับบททดสอบหลายอย่าง ที่เป็นปัจจัยสำคัญในการตัดสินว่าอนาคตของบริษัทว่าจะไปถึงดวงดาวหรือไม่ ซึ่งสิ่งเหล่านั้นมีอะไรบ้าง เรามาดูกันเลย

ในบริษัทที่เติบโต CTO ต้องโตตามให้ทันบริษัท

Photo by Sushobhan Badhai on Unsplash

บริษัทตั้งใหม่ย่อมมีการขยายตัว ตัว CTO เองก็ต้องพัฒนาตามขนาดและช่วงระยะของบริษัท เอาจริง ๆ เรียกว่าวิวัฒนาการเลยดีกว่า เพราะว่าแต่ละช่วงระยะนั้นมีความต้องการใน skill set ไม่เหมือนกันเลย

ในช่วงแรก เราอาจจะเป็นคนเดียวในบริษัทที่ทำงานด้าน tech งานส่วนใหญ่อาจจะเป็นการเขียน code เพื่อ develop product (MVP) งานในช่วงนี้จะคล้าย ๆ กับ full-stack developer ทั่วไป ทักษะที่ต้องการนอกเหนือจากการ code ก็คือสามารถคุยกับคนที่ non-technical เพื่อสื่อสารและจบงานได้

ช่วงถัดมา เป็นช่วงที่เริ่มมี developer เข้ามาอยู่ในทีม ตัวงาน coding ก็จะยังมีอยู่ แต่อาจลดลงไปบ้าง เนื่องจากจะต้องทำงานด้านอื่นเพิ่มขึ้น เช่นการจัด priority งาน การคุยงานกับฝ่ายอื่น ๆ เพื่อหาข้อสรุปในตัว requirement เนื้องานจะมีความเป็น PO (product owner) ขึ้นมานิด ๆ ทักษะที่ต้องการเพิ่มเติมคือการสื่อสาร ทั้งภายในทีม และภายในบริษัท ณ จุดนี้จะเริ่มต้องประเมิน architecture แล้วว่าในระยะยาว การตัดสินใจเชิงเทคนิคในปัจจุบันนั้นมี technical debt แค่ไหน

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

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

เนื้องานหลาย ๆ งานที่พูดถึงข้างต้น จริง ๆ แล้วเป็นชื่อตำแหน่งเลย เช่น PO หรือ Architect แต่ด้วย resource ที่มีจำกัด และเราไม่สามารถจ้าง PO ครึ่งคนได้ คนที่ทำหน้าที่บริหารก็ต้องแบกรับเนื้องานตรงนี้ไปก่อน ซึ่งเวลาถ่ายงานไปให้คนอื่นทำ เราจะได้เข้าใจกระบวนการทั้งหมดของเนื้องานด้วย ทำให้เราให้คำแนะนำได้ดีกว่า

จะเห็นว่างาน technical นั้นมีน้อยลงเรื่อย ๆ แต่ไม่ได้แปลว่าคนจะเป็น CTO ไม่จำเป็นต้องเก่ง technical เพราะว่าการตัดสินใจหลาย ๆ อย่างจะทำได้ดีกว่ามาก ถ้ามี background ทางด้าน technical ที่แน่นเพียงพอ ดังนั้นคนที่อยากจะไปสาย management เพราะว่าไม่ชอบการเขียน code ก็จะต้องเหนื่อยหน่อย เพราะจะมีหลายอย่างที่ทำได้ไม่ดีเท่าคนที่มี technical background แข็งแรง

Find the Balance

Photo by Martin Sanchez on Unsplash

ในช่วงต้นได้กล่าวเรื่องของการ balance หรือการหาจุดสมดุลระหว่างงานท้าทายกับงานน่าเบื่อ นั่นเป็นเพียงแค่ตัวอย่างหนึ่งเท่านั้น ในความเป็นจริงแล้วยังมีอีกหลายสิ่งที่รอการตัดสินใจของ CTO ซึ่งการตัดสินใจแต่ละ option มักจะมีข้อดีข้อเสียแตกต่างกัน หน้าที่ของ CTO คือการ explore ตัวเลือกทั้งหมดที่มี และ compromise เพื่อหา balance ที่พอดี ตัวอย่างเช่นการตัดสินใจว่า เราจะเน้นทำงานเสร็จเร็ว แต่ทิ้ง technical debt ไว้มากมาย หรือจะเขียน code ให้ clean แต่งานออกช้า แน่นอนว่าเราคงจะไม่เลือกทางใดทางหนึ่งสุดโต่ง แต่จุดตรงกลางเหล่านั้นก็มีรายละเอียดมากมายเหลือเกินให้เราตัดสินใจ

Focus!

Photo by Vince Fleming on Unsplash

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

ทิ้งท้าย

อยากฝากทุกคนที่หลงเข้ามาอ่านไว้ 2 อย่าง อย่างแรกก็คือ ตำแหน่งนี้ไม่ใช่ตำแหน่งสูงสุดที่สาย tech ทุกคนจะต้องตั้งเป้าไปถึง แต่มันเป็นเพียงแค่ตำแหน่งนึง ที่มีหน้าที่ความรับผิดชอบมากมาย แถมเวลา code ก็โดนเบียดเบียนอีก อย่างผมเป็น CTO ประเภทจับพลัดจับผลูมาเป็น ก็ต้องเรียนรู้และทำหน้าที่ให้ดีที่สุด แต่เมื่อทำไปเรื่อย ๆ แล้วพบว่าความเท่ของการทำงานตรงนี้อย่างนึง เปรียบเหมือนเราจะต้องสร้างเครื่องจักรอันนึง เป็นเครื่องจักรผลิตเงิน (aka. ธุรกิจ) โดยที่เรามีตัวแปรมากมาย (คน เวลา เงิน ฯลฯ) เราจะ optimize ตัวแปรพวกนี้ยังไงให้เครื่องจักรมันเดินเครื่องได้ เน้นว่าเดินเครื่องได้ อาจจะไม่ใหญ่ ไม่สวย ไม่สมบูรณ์ เพราะตัวแปรและข้อจำกัดมากมายเหล่านั้น แต่มันเดินเครื่องได้ ทำให้เรามีเงินมาสร้างเครื่องจักรอันใหม่ที่ใหญ่กว่า สวยกว่า สมบูรณ์กว่าต่อไป

อีกอย่างที่อยากฝากไว้ก็คือ ถึงแม้คุณจะไม่ชอบทำงาน management แต่ไม่ว่าจะทำตำแหน่งอะไร คุณจะหลีกเลี่ยงการ manage ไม่ได้เลย Tech Lead ก็ต้อง manage technical decision, Senior Dev ก็ต้อง manage น้องฝึกงาน, แม้แต่ Junior Dev เอง อย่างน้อย ๆ ก็ต้อง manage การ dev feature ที่เรารับหน้าที่มา ให้ทำเสร็จได้ตามเวลาที่ตกลงกันไว้ จะเห็นได้ว่าคุณไม่สามารถหลีกเลี่ยงงาน management ได้เลย ขึ้นอยู่กับว่ามันมาให้รูปแบบไหนเท่านั้นเอง

โดยสรุป

จะเห็นได้ว่าเนื้องาน CTO ในบริษัทระยะต่าง ๆ นั้นแตกต่างกันออกไป หากจะ list ออกมาก็ได้ประมาณนี้

  • Technical พื้นฐานด้าน technical ต้องแน่น
  • Architecture โครงสร้างระบบ software เพื่อการต่อยอดในระยะยาว
  • Recruitment สัมภาษณ์ และตัดสินใจรับคนเข้าทีม
  • Culture สร้างวัฒนธรรมที่เอื้อต่อการเติบโตของธุรกิจ
  • Prioritize จัดลำดับความสำคัญ
  • Balance หาจุดสมดุลในการตัดสินใจต่าง ๆ
  • Focus อย่ามัวลงลึกไปนานจนลืมขึ้นมาดูภาพใหญ่
  • Delegate อย่าถืองานทั้งหมดไว้คนเดียว ต้องมอบหมายความรับผิดชอบบางส่วนให้คนในทีมด้วย

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

คนธรรมดาคนหนึ่งที่หลงใหลในการพัฒนาซอฟท์แวร์ และการพัฒนา community ของ developer ในเมืองไทย
Next Article
LEAN แนวคิดที่ช่วยให้ STARTUP ปรับตัวไว
สมัครงาน