SBG: What I learned

“การเรียนทำให้มีงานทำ กิจกรรมทำให้ทำงานเป็น”

ผมเคยถามพ่อว่าผมเขียน PHP เป็นตั้งแต่ป. 4 (ไปเที่ยวแล้วไม่อยากไป ตอนนั้นบ้านไม่มี laptop เลยตัดสินใจซื้อหนังสือ PHP มาอ่านมาทำ แต่ผมก็จำไม่ได้นักหรอกว่าเขียนเป็นคือเขียนตามหนังสือหรืออะไร แต่ว่าผมเริ่มจากตรงนั้น) เนี่ยผมจะเขียนได้มั้ยว่าวันนี้ประสบการณ์ PHP ผม 7 ปี พ่อบอกว่า ถ้าเขียนแล้วมันมีคนใช้มันมีคนให้ทำอันนั้นสิถึงจะนับ (ก็คงอาจจะต้องเริ่มนับจาก project scale ใหญ่อันแรกของผม Monster Land v1 ตอนป. 6)

ตอนทำ project scale โตๆ พวกนี้ผมทำแบบ Bodyslam ครับ Bodyslam บอกว่า “ชื่อวงเรามาจากที่เราขึ้นคอนเสิร์ทเราจะทุ่มสุดตัว” เช่นเดียวกันผมทิ้งเวลาให้เลย เช่นตอนป. 6 กลับจากโรงเรียนผมไม่สนใจเรื่องโรงเรียนแล้วทำ Monster Land อย่างเดียว เขียน Beta 2 ในสามวัน เขียน Beta 3 และรุ่นสุดท้ายเป็นสัปดาห์ สมัยนั้นผมเปิคดอมหลังเลิกเรียนไม่ได้ผมก็ต้องแอบเปิดและทำเพื่อให้งานมันเสร็จ บางทีพ่อมาปิดปลั๊กทันที

Monster Land ทุกครั้งที่ผ่านมาทำให้ผมเห็นคำว่า Trust ผมเชื่อมั่นว่าเขาโค้ดได้เขาจะมาช่วยงานผม สุดท้ายเขาโค้ดได้ไก่เขี่ย เขาไม่เคยเข้าใจเอนจิ้นเกมสักตัว แม้แต่ระบบสมัคร ระบบ invite ทำงานยังไงก็ไม่รู้ เค้ารู้แค่ว่า admin ui ทำงานยังไง เข้า ftp ยังไง และวันนึงเค้าทำระบบมันพัง ผมต้องเข้าไปแก้หลังเลิกเรียน สุดท้ายพอถึง beta 3 ออกมาเขาบอกว่าผมทำทำไมเสียเวลาทำแล้วตัดของออกแล้วคนเล่นเลิกเล่นหมด ผมวางแผนว่า beta 3 เป็น rewrite ui ใหม่และให้ 4 ออกมาสมบูรณ์แบบซึ่งเอนจิ้นรุ่น beta 2 ไม่มีทางทำได้ ปรากฎว่าได้ยินคำนี้ไปผมเสียกำลังใจและตัดสินใจปิดเกมในวันนั้น..

หลายปีต่อมาเราได้คุยกันอีกครั้งหลังจบป. 6 ไป วันนั้นที่จบป. 6 มีการแจกภาพรุ่นของห้อง ผมให้เพื่อนๆ เซ็นหลังภาพ แล้วหลังกิจกรรมของโรงเรียนผมกลับบ้านไปโดยไม่ได้บอกลาใครเลย แม้เราจะไม่ได้เจอกันอีกเลยหลังจากวันนั้น วันที่ผมเจอเขาอีกครั้งเขาชวนผมทำเกมอีก ผมก็โอเคทำก็ทำเพราะผมเบื่อๆ อยู่ เลยทำเกมขึ้นมาใหม่ คราวนี้ผมใช้ Python ซึ่งเขาทำอะไรไม่ได้แน่ แต่คือผมบอกเองเลยว่าผมเห็นจาก Monster Land แล้วว่าผมทำงาน scale ใหญ่ไม่ได้ถ้าไม่มีคนเร่ง ตอนนั้นเพื่อนผมโทรมาถามความคืบหน้าเกือบทุกวัน ก็เลยต้องยอมให้เขามาทำและสุดท้ายมันซนเอารหัสในฐานข้อมูล (ไม่มี salt) ไปใส่ md5 cracker เล่นแล้วเอามาล็อคอิน ผมตัดสินใจทันทีที่มันเอารหัสผมมาอวดกดปิดเซิร์ฟเวอร์ทันที และหลังจากนั้นเกมนี้ก็หายไปจากโลกไม่มีอีกเลย

หลังจากนั้นมี project DEngine อีก แต่ผมจำไม่ค่อยได้ว่าเราเลิกกันไปเพราะเหตุผลอะไร

ครั้งสุดท้ายที่เราร่วมงานกันคือ DBot ผมบอกว่าผมเห็นแล้วอยากบอต เลยเขียนบอตมา ตอนแรกผมลองแล้วล้มเหลวเขาก็โทรมาหลายๆ ครั้งจนผมคิดว่าเอาวะก็ได้ เลยเปลี่ยนวิธีการและก็เปิดซอร์สการพัฒนามาตลอดบน github แต่แน่นอนว่าไม่ใช่ทุกคนที่จะหัว open source เพื่อนผมต้องการ monetize โครงการ ผมตกลงว่าผมจะ ship core + example เท่านั้น ส่วนฟีเจอร์ advance ให้ไปเขียนเอาเอง ซึ่งที่ผม ship คือออกจากเมืองไปตีมอนในด่านนอกเมืองแล้วฮีลได้ ซึ่งระบบตีและระบบฮีลเป็น core engine ปรากฎว่าเขาพยายามจะแก้ไขแต่ด้วยความที่เขียนโปรแกรมไม่เป็นเลยได้แต่เปลี่ยน string อะไรนิดหน่อยและมันไม่ work เขาว่าของผมไม่ดี ขนาด captcha มันยังถอดไม่ได้ (ต่อมาผมบอกว่าผมทำให้ว่า captcha ขึ้นแล้วขึ้นเตือนแล้ว เขาก็บอกว่าไม่ดีพอ) สุดท้ายผมโมโหว่าถ้าคุณไม่คิดจะเขียนอะไรเลยจะมาหลอกใช้ผม แถมจะเอาสิ่งที่เป็นไปไม่ได้คุณก็ไปทำเอาเอง

เวลาผ่านไปผมรู้จักเพื่อนกลุ่มใหม่และเราจัดตั้งทีม Sunburn Group กัน ตอนแรกเราคุยเรื่องจะทำนิตยสารกัน เราแนะนำว่าจะทำ HTML5 ไปเลย ในกลุ่มก็โอเคกัน ต่อมาผมแนะนำกันในกลุ่มนักพัฒนาในกรุ๊ปว่าจะทำ myAnimeList clone และเพื่อให้มีทีมงานเลยเอาเข้า SBG กันและก็เป็นที่มาของ menome

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

ผมเริ่มเฟสตัวเองออกและให้ทีมกราฟฟิคทำงานได้เต็มที่ แต่ด้วยปัญหาอุทกภัยเราต้องย้ายกันไปทำให้เน็ตเราไม่ได้เต็มสปีด ทีมกราฟฟิคที่ควรจะเริ่มงานแล้วก็หยุดหายไปมาเป็นระยะๆ และปลายเดือนหายไปเลย ผมเริ่มบ่นๆ กับเพื่อนเรื่องนี้และพอพ่อถามผมก็เล่าให้ฟัง พ่อบอกว่า โครงการนี้มันมีแต่คนอยากเห็น แต่ไม่มีคนอยากทำ เลิกทำเถอะ ผมก็ทวิตไปตามที่ได้ยินมานั้นก็ทำให้โครงการนิตยสารมันกระตุ้นมาอีกครั้ง หลังจากประชุมสุดท้ายกำหนดวันออกไว้เดือนนี้แล้วก็เงียบหาย ผมทวงไปสองสามรอบว่าจะเอาคอลัมน์ก็ไม่มีใครทำ สุดท้ายผมได้เจอพี่ผมที่ทำงานที่ mars magazine เลยได้ไอเดียมาลองทำเอง ทำเองหมายถึงว่าผมทำทั้งหมดคนเดียวตั้งแต่กราฟฟิค layout content พอออกมาได้รับเสียงตอบรับ “คำแปลไม่ดีเหมือน Google Translate” มีคนมาช่วยเหลือจากนอกกลุ่ม แต่ผมเองชอบคำแปลอันนั้น (ผมไม่ได้รู้ญี่ปุ่นเลยไม่รู้ว่าคำแปลมันดีแค่ไหน แต่ว่ามันเป็น first impression เลยมีค่าสำหรับผมอยู่บ้าง) ก็เลยไม่ได้ตอบไป (จริงๆ คือผมเห็นแล้วแต่ว่าพอมันไม่ใช่ format ที่ผมสนใจเลยปิดเลยแล้วก็ไม่ได้ตอบอะไรเพราะในทวิตก็ไม่ได้เมนชั่นผม) แล้วก็มางอนผมซะอีกว่าเสียเวลาให้แล้วผมไม่ยอมทำอะไร ผมไปขอโทษเค้าก็คงงอนแล้วและไม่ได้ตอบอะไร ก็เลยเอาเถอะช่างมันแล้วกัน แต่ผมก็คิดอยู่ว่าในสถานะตอนนี้เราไม่ได้อยู่ในสถานะที่เลือกได้ว่าคนนี้ช่วยเรารับมั้ยหรือไม่รับ

อีกหนนึงพ่อผมถามคำถามและตอบคำตอบเดิม ผมก็ทวิตอีกทีเหมือนเดิม ผมไม่ได้คิดอะไรเพียงแต่ว่าจะเล่าเฉยๆ ว่าเนี่ยถ้าคุณไม่ทำอะไรมันมีคนที่จะทำให้ผมล้มเลิกอยู่ ถึงเราจะเข้มแข็งแต่ว่าเสาหินแปดศอกตอกเป็นหลัก ไปมาผลักเข้าเสายังไหว คราวนี้ทีม menome ค่อยตื่นและเริ่มทำ ส่วนนิตยสารก็คอลัมน์เริ่มเดินออกมาแล้วหลังกำหนด deadline กันจริงจัง (แต่เปิดโครงการมายันถึงวันนี้มันสองสามเดือนแล้วเพิ่งจะได้คอลัมน์แล้วจะออกในสองสัปดาห์เนี่ยนะ)

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

แถมวันก่อนตอนผมทำ .anime ผมบอกว่าใครก็ได้จับภาพ ben-to มาให้หน่อยของผมมันเป็น hardsub คำตอบที่ได้ “ไปโหลด raw มาแคปเอง”

นี่มันอะไร.. ผมตำแหน่งอะไรกันแน่ ผมไม่ใช่พระเจ้าผมมีขีดจำกัดอยู่ สุดท้ายทั้งหมดที่ผมเขียนไปผมก็ทำเองได้ แต่ว่าถ้าผมหยุดและทำงานเท่ากับคนอื่นจะเกิดอะไรขึ้น? ที่ผมไม่ทำแบบนั้นเหลือเพียงแค่เหตุผลเดียวคือผมรักสิ่งที่ผมสร้าง menome เป็นเหมือนลูกรักที่ผมต้องดูแลให้รอดในช่วงทารกแบบนี้ แต่ .anime ไม่ใช่ ถ้าผมเสร็จเล่มนี้แล้วถ้ายังทำตัวแบบนี้ผมไม่รับประกันว่าเล่มหน้าผมยินดีจะออกให้อีก แล้วผม *เชื่อ* ว่ามันจะมีคนมาทำแบบตอนผมทวงงานว่าเฮ้ยทำไมส่งงานแล้วไม่ยอมทำ กลายเป็นว่าผมเป็นตัว blocker อีก

สิ่งที่ผมได้จากการทำงานเป็นกลุ่มกับนักเรียนคือ

– นักเรียนทำงานแบบทำการบ้าน ผมเคยพูดเล่นๆ ไปแล้วว่าทำอันนี้คือเราทำด้วยใจไม่มีใครบังคับ อย่าทำส่งมาแบบการบ้านที่แบบว่าครูสั่งเปิดเทอมให้ส่งก่อนสอบแล้วใกล้สอบค่อยทำแล้วบอกไม่มีเวลา ตอนแรกผมก็คิดว่าเออกลุ่มนี้น่าจะเข้าใจเพราะทุกคนชอบอนิเมะ แต่กลายเป็นว่าสุดท้ายมีเรากับพี่แมวที่ทำตลอดถ้ามีคำสั่งนอกนั้นทุกคนลอยตัว
– Assign อะไรจี้ถึงตัวเท่านั้น ถ้าผมบอกใครก็ได้ปุ๊บมันจะไม่ใช่ธุระกูแล้วสุดท้ายไม่มีใครรับไปทำแล้วมันก็ไม่เสร็จ ที่ผมไม่ชี้ตัวเพราะไม่รู้จะชี้ใครและมันไม่ดีเพราะเขาจะมองว่าทำไมต้องเป็นกู (เสียใจด้วยเธอเป็นแพะรับบาปที่ทั้งกลุ่มไม่ยอมทำงาน)
– Roadmap เขียนให้ชัดเจนเสมอให้เราเห็นว่างานยังอีกเยอะ งานนี้เสร็จแล้วทำอันนี้ ตอนนี้ไม่มี roadmap .anime ผมต้องมาถามเรื่อยๆ ว่าเสร็จอันนี้แล้วเนี่ยให้ทำอะไรต่อ ไม่มีคำตอบผมก็ลอยตัวบ้างละ
– Issue tracker เป็นกุญแจสู่ความสำเร็จ ตอน OvzCP ผมใช้ bugzilla file ทุกงานไว้ วันนึงผมตื่นมาผมบอกตัวเองว่าวันนี้จะทำอะไรก็ได้แต่ต้องปิด 1 issue และ issue บางอันง่ายขี้ไก่ทำห้านาทีเสร็จก็มี ผมก็ถือว่าทำแล้ว บางทีดึกๆ มาปิดเองอีก 1 issue ก็มีเพราะมันสนุก แต่คือพอถึงวันนึง issue ขี้ไก่จะโดน issue ยากๆ block และผมไม่มีทางเลือกนอกจากจะทำ สุดท้ายงานจึงเสร็จตามกำหนดเวลาได้แน่นอนและมีคุณภาพเพราะไม่ได้ฝืนตัวเอง ตอน DEngine ผมก็ใช้ model นี้ สำหรับกลุ่มนี้ผมเคยลากเข้าไป issue ทีนึงสุดท้ายไม่มีใครใช้เป็นและเลิกใช้กัน ผมเคยหลายครั้งแล้วที่พาเด็กมัธยมเข้าไปใช้ issue tracker แต่ไม่เคยรอดกลับมาสักครั้ง กลุ่มนี้ก็เหมือนกันผมเคยลากเข้าไปและไม่มีใครใช้สุดท้ายใช้ fb docs อยู่ดี แต่มัน assign ชี้เป้าหมายไม่ได้
– VCS สำคัญมากเวลาทำงานกลุ่ม ผมต้องมานั่ง sync ขึ้น sync ลงเสียเวลา บางทีอัพทับกัน บางทีต้องรอคนโน้นทำงานให้เสร็จไฟล์นี้เพียงแค่ข้ออ้างว่าคอมแรงไม่พอจะรัน git (ขอโทษ เครื่อง 333MHz ram 256 ผมมี svn git hg และรัน apache mysql นะครับ) แต่ปัญหาอีกอันนึงที่จะเจอคือ programmer ไม่มาจากสาย unix จะไม่เข้าใจ vcs อันนี้ผมไม่รู้จะแก้ยังไง จะบอกใช้ gui ก็จะบอกเครื่องไม่แรง จะบอกใช้ github for mac ก็ไม่มี mac -_-‘ ทั้งๆ ที่จริงๆ ถ้าเข้าใจแล้วจะพบว่าใช้แค่ add commit push
– อันนี้จากประสบการณ์ที่โรงเรียนคือหัวหน้ากลุ่มควรจะ assign งานให้เป็นเพราะถ้าปล่อยไว้สมาชิกในกลุ่มจะลอยตัว ผมก็ลอยตัว คือถ้าเข้าไปยุ่งเหมือนจะไปเสือกงานเขา เหมือนแกว่งเท้าหาเสี้ยนมากกว่าเลยไม่มีใครอยากยุ่ง ฉะนั้นคนที่เป็นหัวหน้าจะต้อง assign ชี้ไปเลย หรือไม่ชี้ก็ต้องตกลงกันให้ได้ว่าใครจะทำเดี๋ยวนั้น ถ้าแปะ task ไว้หนึ่งอันไม่มีใครหยิบไปหรอก

One thought on “SBG: What I learned”

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

    ส่วนวันก่อนที่หาภาพ ben-to ไม่ได้ พี่มาไม่ทัน มาเห็นอีกทีก็เห็นว่าโหลด raw อะไรนี่ (นึกว่า)เคลียเรื่องนั้นไปแล้ว
    มาเห็นก็ตอนที่ว่าจะไม่ทำ Character เพราะหาภาพไม่ได้ อันนี้พี่เองที่ไปหามาให้

    ที่ยาวๆตรงนั้นมันยาวไปชั้นไม่ได้อ่าน ขอโทษทีนะ ;_;
    พี่อยากช่วยออกแบบนะ ในหน้าๆนึงน่ะ แต่พี่ไม่รู้ว่า มนัสวินจะทำได้มั้ย ถ้าพี่อยากช่วยออกแบบ มนัสวินจะยินดีไหมล่ะ พี่ช่วยได้นะ
    เอาเป็นว่าพี่ก็เต็มที่แหละ (ในส่วนของพี่เอง พี่ก็ช่วยพรูฟเสร็จให้ไวที่สุดเมื่อเมลมาถึง)

    มีอะไรก็บอกพี่มาได้นะอย่าเก็บไว้คนเดียวจนมันไม่ไหว ต้องประชด ต้องยั้วะออกมา
    เพราะว่า บางคนอาจจะมองไม่ออก ดูไม่ออก ว่าโกรธอะไรรึเปล่า (จรๆงตามตรงที่บอกว่าหาคนช่วยอัพเดตพี่ไม่รุ้ว่ายั้วะ)
    คือมนสว อาจจะเห็นว่าพี่ก็จะทักไปนะ ถ้าพี่เห็นว่าเหมือนน้องดูเหนื่อยๆหรือไร
    ยังไงมีอะไรก็บอกพี่ได้ล่ะพี่เป็นห่วง ยังไงก็ทำงานด้วยกันแล้ว

Comments are closed.