หนี้ทางเทคนิค (Technical Debt)

เรื่อง นี้เป็นหนึ่งในเนื้อหาของหนังสือ agile samurai ในส่วนของการทำ refactor ตอนนั้นแปลบทนี้ ก็เห็นว่าตัวอย่างที่หนังสือให้มานั้นก็ดีอยู่แล้ว แต่เมื่อไม่กี่วันที่ผ่านมาผมได้เจอกับตัวอย่างเรื่อง technical debt ที่ดีมากๆด้วยตัวเอง เล่นเอาปวดตับ

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

จาก บทสนทนานี้เราจะเห็นว่าระบบไม่มี bug เราไม่ได้พูดว่าสิ่งนี้เป็น bug ระบบยังทำงานได้ตามมันควรจะทำเพียงแต่มันทำงานได้ช้าเท่านั้นเองบางครั้งก็ค้างส์ คำถามคือ 978 สดมภ์มาจากไหน ผมเดาได้ง่ายๆคือตอนนั้นงานมันเร่งคนไม่พอต้องส่งงานสิ่งเดียวที่ทำได้คือ “ทำแม่มให้เสร็จไปก่อน” นี่ คือพฤติกรรมคลาสสิคของโปรแกรมเมอร์ ==” สิ่งที่ได้จากการทำงานแบบนี้คือเราสามารถส่ง งานได้จริงแต่เมื่อเราแกะกล่องออกมาเราจะพบว่ามันเต็มไปด้วยโค้ดที่เกิด จากการ improvise มันคือการเขียนโดยไม่ได้คิดเยอะมันคือการ “ทำให้เสร็จ ไม่ใช่ทำให้ถูก” ผลผลิตของการทำงานแบบนี้เราเรียกว่า “Technical Debt” ผมอยากจะแปลเป็นไทยว่า “บาปทางเทคนิค” แต่เท่าที่เรารู้บาปมันแก้ไม่ได้แต่สิ่งที่เราเขียนไปมันแก้ได้ผมเลยเรียก มันว่า “หนี้ทางเทคนิค” แทนหนี้ทางเทคนิคก็คือ code กากๆที่เราสบถมันออกมาจากหัวสมองแบบไม่ได้คิด ว่ามันดีหนือไม่ดีรู้แต่ว่ามันทำงานได้ก็พอเมื่อเรานำ หนี้ของหลายๆคนมารวมกันเราจะได้โคตรพ่อหนี้ทางเทคนิค 978 สดมภ์คือหนึ่งในตัวอย่างนั้น

ผม เชื่อว่าทุกคนที่เคยทำงานเป็นโปรแกรมเมอร์คงเคยสร้างหนี้ทางเทคนิคกันมา ทั้งนั้น ไม่ว่าจะอยู่ในรูปแบบไหนและทุกครั้งที่เราสร้างเรามักจะคิดในใจว่าเดี๋ยวจะ กลับมาแก้ถ้างานเสร็จ แต่!!! ผมเชื่อว่าน้อยคนนักที่จะย้อนกลับไปแก้สิ่งที่ตัวเองเคยทำผิดไว้อันเนื่องมา ด้วยหลายเหตุผล และหนึ่งในเหตุผลที่ก็คือ “แก้ทำไมในเมื่อมันทำงานได้ ใครจะไปกล้าแตะโค้ดที่ Production จะทำไปทำไมถ้าทำต้อง regression test อีกรอบนะ ขี้เป็นเลือด แพงด้วย ถ้ามันช้าก็ซื้อ hardware มาเติม”

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

ดังนั้น มันมีวิธีป้องกันไหม ผมไม่พูดถึงทางแก้นะครับ ถ้าเราไปถามโปรแกรมเมอร์หลายๆคนก็คงจะตอบว่า ทำไมไม่เก็บ requirement ดีๆทำให้มันนิ่งๆ ใช้เวลากับการเก็บ requirement ให้มากพอ คำถามคือ “แค่ไหนเรียกว่าพอ?” จากการทำงานมาหลายปีดีดักของผมพบว่าเราต้องทำใจยอมความจริงไปซะ อย่าหลอกตัวเอง requirement นิ่งๆไม่มีในโลก สิ่งเดียวที่เราทำได้คือทำให้โค้ดของเรายืดหยุ่น มากเพียงพอที่จะรับมือกับความเปลี่ยนแปลงนั้นได้ และหนึ่งในการทำให้โค้ดยืดหยึ่นได้มาก ณ ทศวรรษนี้คือการทำ Test Driven Development เราคงจะไม่มานั่งอธิบายกันหรอกว่าไอ้ TDD เนี่ยมันคืออะไร ณ ตรงนี้เพราะมันผิดที่แต่เราเป็นว่าเมื่อเราทำ TDD เราจะได้อะไร

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

แลัว TDD ช่วยแก้ไขเรื่อง หนี้ทางเทคนิคอย่างไรคำตอบคือ ลองจินตนาการว่าเรามี Executable Specification อยู่แต่งานเร่งมาก สิ่งเดียวที่เราทำได้คือเราเขียนโค้ดที่ทำงานได้และอย่างน้อยต้องไม่ break test นี่แปลว่าอะไร มันแปลว่าเรายังคงสามารถด้นโค้ดได้อยู่แต่สิ่งที่ต่างจากการด้นแบบแรกคือการ ด้นแบบแรกเราด้นไปแบบไม่มี กรอบสิ่งที่เราทำคือการเขียนไปแล้วคาดหวังว่ามัน “น่าจะทำได้” ส่วนการด้นแบบที่สองเรามี Executable Spec คุมชัดเจนว่า “จะด้นก็ด้นไปแต่อย่างน้อยต้อง test ผ่าน” มันเหมือนเรามีกรอบการทำงานที่ชัดเจน

เราลองย้อนกลับไปที่บทสนทนาข้างต้นใหม่แต่เปลี่ยนใหม่เป็นว่าโปรแกรมเมอร์ทำงานแบบ TDD

ปุจฉา: ระบบช้ามาก Query Data ขึ้นมั่ง ค้างส์มั่งและพบว่ามีตารางขนาด 978 สดมภ์อยู่ทำไงดี
วิสัจฉนา: โอวติดเรื่อง performance หรอครับสงสัยว่าจะมีการด้นโค้ดเกิดขึ้นระหว่างงานเร่ง
ปุจฉา: มีวิธีแก้ไขให้มันดีกว่านี้ไหม
วิสัจฉ นา: ไม่ต้องกลัวครับเดี๋ยวเราลอง refactor กันก่อนครับ น่าจะปรับได้หลายกระบวนท่า ไม่ต้องห่วงเรามี Executable Specification ที่สามารถตรวจสอบและกันผลกระทบที่มีต่อการทำงานโดยรวมได้ครับ
ปุจฉา: OTL

คำ ถามปิดท้าย เราต่างเคยสร้าง หนี้ทางเทคนิค แล้วเราเคยคิดที่จะหาทางแก้มันกันบ้างไหม? ถ้าพบว่ามีทางแก้ที่เป็นไปได้จริงอยู่จะลองกันไหม หรือจะทำให้ requirement มันนิ่ง

ความมืด

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

มันอาจจะหนวกหูนะ(It might get loud)

เรื่องมันเกิิดจากความบังเอิญที่ไปค้นหาคำว่า Jimmy Page บน Youtube
null
สารคดีที่นำเอาสุดยอดมือกีตาร์จากสามยุคคือ Jimmy Page, The Edge และ Jack White เป็นตัวน้ำแสดงวิธีนำเสนอที่ผมได้ดูคร่าวๆจาก Youtube คือผู้กำกับไม่ได้มีบทอะไรมากเลยแค่นำสามคนนี้มานั่งด้วยกันโดยแต่ละคนเอากีตาร์มาหนึึ่งตัวแล้วก็เริ่มคุยกันเรื่องความประทับใจที่มีต่อเพลงของตัวเองและเพลงของอีกสองคนที่เหลือ จากนั้นเลือกเพลงมาแล้วก็อธิบายแรงบันดาลใจที่ก่อให้เกิด sound หรือกระบวนท่าในการเล่นเพลงนั้นออกมา
ผมนั่งดูทีส่วนที่ตัดออกมาจากหนังใน Youtube แล้ว ถึงกับซึ่งมากว่าแต่ละคนโคตรจะมี passion กับการเล่นดนตรี(กีตาร์)เลย วิธีหรือสีหน้าของแต่ละคนเวลาอธิบายที่มาของเพลงมันดูลึกซึ้งมาก โดยเฉพาะ Jimmy Page นี่โคตรจะเท่เป็นคนที่มีท่วงท่าสง่างามมากเวลามีกีตาร์อยู่บนตัว
ใครที่ชอบหรือชาบูดนตรีร็อคควรจะไปขวนขวายหาหนังเรื่องนี้มาดูเป็นอย่างยิ่ง
ทำให้นึกเลยเถิดไปว่าจะมีวันไหนที่เราสามารถอธิบายงานที่เราทำออกมาได้สวยงามแบบนี้ได้บ้าง

ทำไมเราต้องไปงาน Bug Day 2011 by @roofimon

ได้รับคำเชิญจากพ่องาน BugDay ให้ไปร่วมงานเป็นปีที่สองหลังจากปีที่แล้วเอาสมาชิกสามช่าโปรแกรมเมอร์ไปปล่อยเกรียนส์ซะสุดเหวี่ยง ปีนี้เขาก็ไม่เข็ดเนอะเชิญมาอีก ไอ้เราก็ยินดีไปนะชอบไปกัด Tester เสมอๆเพราะ Tester กับ Programmer เหมือนลิ้นกับฟันคบกันเมื่อไรก็เรื่องใหญ่อยู่ด้วยกันก็ทะเลาะกัน ขาดกันก็ไม่ได้แต่ Programmer เท่กว่าเสมอ อ่ะๆๆๆๆๆๆๆๆๆๆ
ก่อนงานเข้าก็ให้เขียนคำโปรยสำหรับงานว่า “ทำไมเราควรไปงาน BugDay 2011” สำหรับผมก็จัดไปไม่ขาดไม่เกิน แต่ถ้าอยากอ่านแบบเต็มๆจากหลายๆท่านก็ขอเชิญ
http://www.welovebug.com/news-events/why-you-should-come-to-bugday-bangkok-2011/

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

ในทางการแพทย์เราจะพบศาสตร์ที่เรียกว่าเวชศาศาสตรป้องกัน คือการป้องกันโรค (Disease prevention) หรือป้องกันการบาดเจ็บ (Injury prevention) แทนที่จะเป็นการรักษาโรค (Cure diseases) แตกต่างกับวิธีการรักษาให้หายป่วย บำบัดรักษาตามอาการเจ็บป่วย (Treating thair symptoms) ถ้าไม่สามารถจะบำบัดรักษาให้หายป่วยได้ ก็จะใช้วิธีรักษาแบบประคับประคอง (Paliative medicine)

ในโลกแห่งการพัฒนาโปรแกรมเราก็มี เวชศาสตร์ป้องกัน Bug อยู่เหมือนกันนั่นคือการทำ Test Driven Development มันคือการป้องกันการเกิด Bug ตั้งแต่ต้น Developer จะต้องมีการประพฤติปฎิบัติตนอย่างไรให้ห่างจากการสร้าง Bug
มางาน Bug Day ท่านจะได้เรียนรู้และเข้าใจธรรมชาติและวิถีแห่งเวชศาสตร์ป้องกัน Bug จาก Guru จากหลายท่านที่เชี่ยวชาญด้านเวชศาสตร์ป้องกันนี้”

พี่ป้อปลาดาว จตุรเทพคนที่หนึ่ง “ผมเป็นคนประหลาด ผมเป็นประเภทเฮฟวี่ เมททัล”

จตุรเทพคนที่หนึ่งของพี่โดม “พี่ป้อปลาดาว” จริงๆแล้วเมื่อก่อนผมก็เกรียนไม่รู้อะไรเป็นอะไรมีอาการโลกแคบ เวลาพี่โดมพูดถึงพี่ป้อผมก็คิดในใจ “ใครอ่ะ” กลับมาบ้านมานั่งหาในอินเทอร์เน็ทแทบกรี๊ดดดดดดด “มือคีย์บอร์ดของ ชักกี้ ธัญรัตน์ แอนด์บลูแพลเน็ท The Olarn Project และถูกเลือกให้เป็น 1 ใน 25 นักธุรกิจรุ่นใหม่ ที่ประสบความสำเร็จของเอเชีย” จัดไปแบบเต็มๆก่อนอ่านก็ ชาบูกันสักรอบก่อนครับ -/-

นุสรณ์ พจน์พิพัฒน์ : ผู้อยู่เบื้องหลังปลาดาวออฟฟิศ

โดย ไพเราะ เลิศวิราม : นิตยสารผู้จัดการ (พฤษภาคม 2545)

ว่าจะมาเป็นโปรแกรมเมอร์ ที่เป็นกำลังสำคัญพัฒนาโปรแกรม “ปลาดาว” และถูกเลือกให้เป็น 1 ใน 25 นักธุรกิจรุ่นใหม่ ที่ประสบความสำเร็จของเอเชีย นุสรณ์เคยใช้ชีวิตเป็นนักดนตรีที่มีรายได้เพียงเดือนละ 4 พันบาท

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

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

นุ สรณ์ใช้เวลา 2 ปี กับการเล่นดนตรีประจำที่ร็อกผับ ที่เล่นแนวเฮฟวี่ฮาร์ดร็อก อาทิตย์ละ 2 วัน มีรายได้เดือน ละ 4,000 บาท แม้จะได้ทำงานที่ชื่นชอบ แต่เมื่อรายได้ไม่พอกับค่าใช้จ่าย ทำให้เขาต้องกลับมาทบทวนตัวเองอีกครั้ง “ผมบอกตัวเองอย่างนี้ไม่ไหว” นุสรณ์เล่า “อย่าว่าแต่ค่าน้ำมันรถเลย ผมต้องกินหมี่จังทุกวัน เพราะมันถูกกว่ายี่ห้ออื่นๆ” จากนั้นเขาก็ตัดสินใจยุติอาชีพนักดนตรี และหันกลับไปใช้ชีวิตเป็นโปรแกรมเมอร์อีกครั้ง “ผมเป็นคนมีเป้าหมาย ทำอะไรแล้ว ก็ต้องทำให้เต็มที่ จึงต้องเลือก”

เป้า หมายของเขาในการเป็นโปรแกรมเมอร์ คือ การมีทีมงานที่จะเขียนโค้ดร่วมกัน แทนที่จะต่างคนต่างพัฒนาไม่สนใจที่จะแชร์ความรู้ร่วมกัน ระหว่างนั้น ไมโครซอฟท์มีแผนที่จะพัฒนาโปรแกรมออฟฟิศ 95 ให้เป็นภาษาไทย เขาได้รับคัดเลือกให้เป็น 1 ในทีมงานคนไทย ที่ต้องบินไปทำงานในสำนักงานใหญ่ไมโครซอฟต์ที่เมืองเรดมอนด์ ใช้เวลาพัฒนา 5 เดือน บินกลับมาพัก 1 เดือน จากนั้นบินกลับไปทำงานต่ออีก 2 เดือน นุสรณ์ได้เข้าร่วมเป็นทีมพัฒนาโปรแกรม Window 95 service release 1 ให้เป็นภาษาไทย เขายังเป็นผู้พัฒนาโปร แกรม Internet explorer 2.0 ภาษาไทย ซึ่งเป็นเบราเซอร์ภาษาไทยตัวแรก

หลัง ประสบการณ์ครั้งนี้ เขาจึงได้เลือกให้เข้าร่วมในการพัฒนาโปรแกรมออฟฟิศ 95 ภาษาเวียดนาม ซึ่งถือเป็นก้าวสำคัญ ที่ทำให้เขาได้รับเลือกจากไมโครซอฟท์ให้เป็น Developer lead พัฒนาโปรแกรมออฟฟิศ 97 เป็นภาษาไทย ทำงานร่วมกับคนไทยอีก 18 คน จนกระทั่งไมโครซอฟท์มีแนวคิดที่ต้องการรวมโค้ดภาษาไทยเข้ากับโปรแกรม ออฟฟิศ เรียกว่ามีซีดีแผ่นเดียว ก็สามารถใช้ภาษาอะไรก็ได้ ครั้งนี้ไมโครซอฟท์ไม่ต้องการจ้างเขาเป็นโปรเจกต์เหมือนเคย แต่ต้องการให้ทำงานเป็นพนักงานประจำอยู่ที่สำนักงานใหญ่ นอกเหนือจากเงินเดือนประจำ หุ้น อีกพันกว่าหุ้นของไมโครซอฟท์แล้ว บวก กับข้อเสนอของไมโครซอฟท์อีกคือ หลังจากทำงานครบ 3 ปี ไมโครซอฟท์จะช่วยทำใบอนุญาตทำงานในสหรัฐฯ ตลอดชีพ หรือกรีนการ์ด “พอ มาถึงตรงนี้ผมก็มานั่งคิด เมืองไทยเวลานั้นก็กำลังแย่ แต่ไมโครซอฟท์ขายโปรแกรมออฟฟิศ ได้ 600 ล้านบาท และเงินนั้นก็ส่งกลับไปอเมริกา”

นุสรณ์ตัดสินใจปฏิเสธข้อเสนอของไมโครซอฟท์ในครั้งนั้น มีคนถามผมว่า “แล้วจะทำอะไรต่อ” ความคิดของเขาเวลานั้น คือ “ต้องการเห็นโปรแกรมภาษาไทย เช่นเดียวกับ CU-word หรือ ราชวิถีเวิร์ด หรือ RW-word เหมือนอย่างที่เคยมีมาในอดีต”เขาตัดสินใจนำเงินเก็บสะสมที่มีอยู่ ตั้งบริษัทพัฒนาโปรแกรม ทำได้ไม่ถึง 1 ปี เต็มดี ก็ต้องปิดกิจการ “เวลานั้นยังจับต้นชนปลายไม่ถูก” นุ สรณ์ให้เหตุผลนุสรณ์กลับมาตั้งต้นการเป็นลูกจ้าง อีกครั้ง เขากลับมาทำงานอยู่ในทีมพัฒนาโปรแกรมแบบสำรวจทางการเมืองให้กับพรรคประชาธิ ปัตย์ ทำงานร่วมกับผู้เชี่ยวชาญจากมหาวิทยาลัยฮาร์วาร์ด แต่ทำอยู่ได้ไม่นานก็ต้องออก เนื่องจากหัวหน้าทีมพัฒนา คือ ธวัช วิชัยดิษฐ์ เสียชีวิต

“ตอนนั้นมีเงินเหลืออยู่ 5,000 บาท กับคอมพิวเตอร์ 3 เครื่อง” นุ สรณ์ใช้อุปกรณ์ที่เหลืออยู่กลับมารับงานโปรแกรมเมอร์อีกครั้ง ได้งานพัฒนาซอฟต์แวร์ใช้กับ ตู้สติ๊กเกอร์ ใช้เวลาพัฒนา 2 เดือน ได้เงินมา 2 แสนบาทพอดีกับมีผู้แนะนำให้ไปพัฒนาปรับปรุงระบบขายตั๋วออนไลน์ผ่าน คอมพิวเตอร์ โทรศัพท์มือถือ ให้กับโรงหนังอีจีวี เมื่อมีงานเข้ามากขึ้น เขาจึงตัดสินใจเปิดบริษัทอีกครั้ง และที่มาของ บริษัทอัลกอริธึมส์ ก็เริ่มต้นขึ้นจากทีมงาน 4 คนจากนั้นก็ขยับขยายมาตั้งสำนักงาน บนตึกซอฟต์แวร์ปาร์ค และหันมาเอาดีกับการพัฒนาโปรแกรมเกมกราฟิก ได้งานพัฒนาโปรแกรมเกมให้เป็นภาษาไทย มีทั้งหมด 6 เกมที่วางขายอยู่ในตลาด เช่น ฟาโรห์ คลีโอพัตรา เลโก้เลเซอร์ เลโก้ครีเอเตอร์ เป็นต้น แม้ธุรกิจจะเริ่มไปได้ดี แต่ความคิดในการพัฒนาภาษาไทยยังคงอยู่ พอดีกับช่วงเวลานั้น บริษัท ซันไมโครซิสเต็มส์ ออกโปรแกรมสตาร์ออฟฟิศให้ดาวน์โหลดใช้ฟรี นุสรณ์จึงติดต่อไปทางซันไมโครซิสเต็มส์ เพื่อขอพัฒนาโปรแกรมสตาร์ออฟฟิศ ให้เป็นภาษาไทย

“ผมขอทำฟรี แต่มีข้อแม้ว่า ทาง ซันต้องแจกฟรี” นุ สรณ์บอก ปรากฏว่า สำนักงานของซันในไทย สนใจแนวคิดของเขา แต่ใช้วิธีเปิดคัดเลือกทีมงาน ผลปรากฏคือ ทีมงานอัลกอริธึมส์ได้รับคัดเลือก ซึ่งน่าจะมาจากประสบการณ์ในการพัฒนาโปรแกรมออฟฟิศของไมโครซอฟท์ของเขา แต่สำหรับส่วนตัวนุสรณ์ งานครั้งนี้ท้าทายมากกว่าในอดีต เพราะสิ่งที่เขาต้องทำ ก็คือ การพัฒนาโปรแกรมสตาร์ออฟฟิศให้สามารถทำงานอยู่บนระบบปฏิบัติการ 3 ประเภท คือ ไมโครซอฟท์วินโดว์ โซราลิส และลีนุกซ์

เขาใช้เวลากว่า 6 เดือน จนกลายมาเป็นโปรแกรมปลาดาวออฟฟิศ หรือ สตาร์ออฟฟิศ ภาคภาษาไทย ที่ให้ทดลองใช้ก่อนจะเปิดตัวอย่างเป็นทางการ

“ประสบการณ์ของผมคือ การที่ต้องทำงานให้ได้ทั้ง 3 platform นี่คือ ความยาก” แม้ โปรแกรมปลาดาวจะเสร็จสมบูรณ์ แต่นุสรณ์และทีมงานยังต้องทำงานต่อเนื่องไปอีก 1 ปีเต็มตามข้อตกลง เพื่อดูแลระบบและปรับปรุงแก้ไข เนื่องจาก หลังจากให้ใช้ฟรีแล้ว ซันจะเปิด เว็บไซต์ปลาดาว เป็นคอมมูนิตี้ที่จะเปิดรับข้อเสนอปรับปรุงแก้ไขอย่างต่อเนื่อง “ความต่อเนื่อง” เป็นเรื่องสำคัญ แผนต่อไปของเขาก็คือ การพัฒนาโปรแกรมปลาดาวให้สามารถใช้กับระบบปฏิบัติการของแมคอินทอชก่อนหน้า นี้เขาได้รับคัดเลือกจากนิตยสารเอเชียวีค ให้เป็น 1 ใน 25 ผู้บริหารธุรกิจรุ่นใหม่ในเอเชีย ซึ่งในจำนวนนั้นมีทั้ง ดร.กนกวรรณ ว่องวัฒนะสิน, โชค บูลกุล การได้รับคัดเลือกในครั้งนั้นจึง เป็นเรื่องที่น่าแปลกใจ”มีคนถามผมว่า คิดว่าอะไรทำให้ผมได้รับเลือก” นุสรณ์เล่า “อาจจะเป็นเพราะผมเป็นคนประหลาด ผมเป็นประเภทเฮฟวี่ เมททัล” เขาเปรียบเปรยบุคลิกตัวเองเหมือนกับแนวเพลง ที่ทำให้เขาแตกต่างไปจากโปรแกรมเมอร์ทั่วไป แม้กระทั่งในการพัฒนาโปรแกรมปลาดาว “ผมไม่สนใจว่า ซันจะยังไงก็ตาม ผมไม่ได้ทำเพราะอยากได้เงิน ผมพูดบนเวทีเลยว่า ถ้าซันยืนยันจะแจกฟรี ผมก็จะดูแลโปรแกรมปลาดาวไปตลอด”

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

ในอดีตโปรแกรมเมอร์คนนี้เคยเป็นแกนหลักในทีมงานพัฒนา MS Office ภาษาไทยในยุคแรกๆ ปัจจุบันเค้าออกมาตั้งบริษัทพัฒนาระบบภาษาไทยบน WindowCE และสิ่งนี้ก็เป็นรายได้หลักของบริษัท เมื่อเริ่มโปรเจกท์ “ปลาดาว” ขึ้นมาก็ได้รับการสนับสนุนจาก SUN Micro Systems โดยทางซันได้ให้เงินสำหรับการพัฒนาทั้งหมด 4 ล้านบาท (แต่ได้ยินมาว่าใช้ไปจริงๆ ประมาณ 5 ล้านกว่าบาท ที่เกินก็เป็นการควักเนื้อนะครับ)คราวนี้เรื่องมันก็มีอยู่ว่าทาง Microsoft ประเทศไทยได้เรียกตัวโปรแกรมเมอร์คนนี้เข้าไปคุย โดยทางไมโครซอพท์มีความต้องการที่จะให้หยุดพัฒนาโปรแกรมปลาดาวในเวอร์ชั่น ต่อๆ ไปซะ เพราะเล็งเห็นแล้วว่า ในอนาคตจะมีผลกระทบค่อนข้างมากกับ MS Office อย่างแน่นอน ซึ่งโปรแกรมเมอร์ท่านนั้น ก็ไม่ยินยอมที่จะตกลงด้วย ทางไมโครซอพท์จึงยุติการเจรจา แล้วใช้วิธีบีบแทน ด้วยการทุบหม้อข้าวของโปรแกรมเมอร์ท่านนี้ โดยออกนโยบายสำหรับ WindowCE ขึ้นมาโดยเฉพาะ คือ ไมโครซอพท์จะให้เงินสนับสนุนพิเศษสำหรับผู้ที่เลือกใช้ระบบภาษไทยของ WindowCE ที่พัฒนาโดยบริษัทต่างๆ ทุกบริษัท ยกเว้นบริษัทของโปรแกรมเมอร์ท่านนี้

เป็น ที่รู้กันว่าถ้าพัฒนาโปรแกรมปลาดาวต่อไปเรื่อยๆ มันก็จะเป็นโปรแกรมที่ดีตัวหนึ่ง และช่วยให้ประเทศไทย ลดค่าใช้จ่ายเรื่องค่าลิขสิทธิ์ของ MS Office ไปได้มากทีเดียว ( เคยเห็นหนังสือพิมพ์ลงไว้คร่าวๆ ว่า ปีละสองพันกว่าล้าน ) แล้วอย่างนี้จะมีใครออกมาช่วยเหลือโปรแกรมเมอร์ท่านนี้ที่โดนบริษัทต่างชาติ รังแกมั่งไหมครับ ???

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

จาก ประสพการณ์ที่ได้รับฟังมา เนคเทคนั้นเล่า คือ ดินแดนแห่งสนธยา สามารถที่จะดับไฟอันร้อนแรงของโปรแกรมเมอร์น้อยใหญ่ ที่หลงเข้าไปได้หมดจดทุกตัวตน เค้ายังแซวกันอยู่บ่อยๆ ว่า โปรแกรมเมอร์ที่เนคเทคน่าจะไปลงรับสมัคร ส.ส. หรือไม่ก็เข้าไปทำงานในพรรคการเมืองซะ ให้รู้แล้วรู้รอดไป เพราะแต่ละท่านนั้น ต่างก็เขี้ยวลากดิน เล่นการเมืองเก่งกว่าเขียนโปรแกรมเป็นไหนๆ : )