สิ่งที่ Programmer จำนวนมาก ไม่เข้าใจ

บทความนี้ของผม อาจรุนแรงไป แต่ผมก็เตรียมใจไว้แล้ว ว่าต้องเจอกับอะไรบ้าง
มองกันชัดๆ ย้อนกลับไป ในการสร้างโปรแกรม หรือสร้างอะไรก็ตาม เราต้องมีผู้สร้าง
และเหล่า Software ทั้งหลายนั้น ก็ถูกสร้างจากกลุ่มคนที่เรียกว่า Programmer
จริงแล้ว มันไม่ใช่ตำแหน่ง มันเป็นเพียงคำเรียก ที่ผู้คนใช้เรียกคนสร้างโปรแกรม เพื่อให้เข้าใจ
บาง Software อาจถูกสร้างจาก คนล้างจาน คนเผาถ่าน รปภ. ที่เลิกงาน แล้วมาเขียนโปรแกรมเล่นๆ
บางคนก็อาจทำจริงจัง แต่ด้วยสภาพการเงิน และความพร้อมหลายอย่าง ไม่อำนวย
ก็เลยต้องสร้างโปรแกรม หลังเลิกงาน (บางคนก็สร้างในเวลางาน)
...
ทั้งหมด ที่เล่ามานี้ ผมกำลังท้าวความ เข้าสู่เรื่อง ที่จะเขียนจริงๆ
Programmer หลายคน พยายามอย่างมาก ที่จะเรียนรู้ ศึกษา เทคโนโลยี เครื่องมือ ไลบราลี่ ทันสมัย ไม่ว่าจะเป็น NodeJS, Ajax, JavaFX, MongoDB, Express, LINQ, AngularJS และอะไรอีกมากมาย สารพัดไปหมด รวมไปจนถึง การเข้าจัดการกับฐานข้อมูลผ่านทาง Command, Migration ด้วย
ที่ผมกำลังสื่อก็คือ มันมากมายมหาศาล จนทำให้บางคน เอาแต่เรียนรุ้สิ่งใหม่ๆ ที่มันก็แค่ วิ่งมา แล้ววิ่งจากเราไป ในช่วงเวลาสั้นๆ เท่านั้นเอง บางเทคโนโลยี อยู่นาน บางอันอยู่แว้บเดียว ก็จากไป
...
ด้วยประสบการณ์อันน้อยนิดของผม ที่เขียนโปรแกรมมาเป็นเวลา 12 ปี สร้างผลงานตั้งแต่ยุค TurboC และทุกวันนี้ ผมก็เขียนระบบ jPOS, iService, jCAR, jRoom ขายลูกค้าไปกว่า 4,000 ราย
ไม่ได้จะมาศักดา อวดอ้างสรรพคุณอะไรทั้งสิ้น ผมกำลังจะบอกว่า จำนวนยอดขายที่ผมขายไป ทำให้ผมได้สัมผัสกับลูกค้า ตัวเป็นๆ ที่เขาไม่รู้อะไรเลย แม้แต่การแตกไฟล์ การเข้า cmd เพื่อ migrate database การแก้ไข configuration file เพื่อต่อฐานข้อมูล หรือแม้กระทั่ง การ start, stop service ต่างๆ
ขณะเดียวกัน เหล่า Programmer จำนวนมาก พยายามยัดเยียด เอาความซับซ้อน ยุ่งยากมากมาย มอบให้กับลูกค้า ผู้เป็นเพียง User ธรรมดา ที่ใช้คอมแค่ เปิด ปิด เครื่องได้
...
ผมจึงได้สร้างระบบที่ติดตั้งตัวเอง อัตโนมัติ เพียงแค่นำมันไปวางใน htdocs เท่านั้น แล้วระบบจะติดตั้งฐานข้อมูล แก้ไขไฟล์ config เซทอัพ เปลี่ยน permission เองทันที โดยผู้ใช้งานไม่ต้องรู้เลย ว่าทำอย่างไร
ผมไม่ได้จะมาบอกว่า เฮ้ย นี่คือวิธีที่ถูกต้องนะ เปล่าครับ ผมเพียงกำลังบอกว่า การสร้าง Software ใดๆ ก็ตาม เราต้องทำให้มัน ง่ายที่สุด ง่าย จนผู้ใช้งาน แทบไม่ต้องทำอะไรเลย นอกจาก เปิดมันมา แล้วก็ใช้ได้ทันที เหมือนการเทน้ำ ใส่มาม่าคัพ
...
Programmer หลายต่อหลายคน พยายามอย่างหนัก ที่จะเรียนรู้เครื่องมือต่างๆ เพื่อไม่ให้ตัวเองต้องตกเทรนด์ แต่บางครั้ง หากเรามองย้อนกลับไป มองกันที่ user จริงๆ พวกเขาแทบไม่ได้ร้องขอ อะไรใหม่ล้ำยุคเลย พวกเขาเพียงแค่ต้องการ Software ที่นำมาใช้แก้ปัญหาที่เป็นอยู่ได้
อย่างระบบร้านคาแคร์ เจ้าหนึ่ง ผมเห็นสร้างจาก Access แสนจะธรรมดา แต่ทว่า user ชอบมาก เพราะมันง่าย และตอบโจทย์ การใช้งานของพวกเขา
มาจนถึงตรงนี้ ผมไม่ได้จะบอกว่า ให้พวกเรา หยุดการศึกษา ค้นคว้า เครื่องมือ ไลบราลี่ ต่างๆ ที่เกิดขึ้นใหม่ แต่จะบอกว่า ให้มองมันเป็นเรื่องรองลงไป แต่มองไปที่ "ปัญหา" ของ ลูกค้า เป็นเรื่องหลัก
และสร้างเครื่องมือ ไปช่วยพวกเขา ให้ทำงานเป็นระบบขึ้น สบายขึ้น สะดวก
...
สุดท้าย ก่อนจากกัน หลังจบบทความนี้ การจะเรียนรู้สิ่งใด ขอให้รู้ว่า เราจะเรียนรุ้มันเพื่ออะไร หากเพื่อนำมาใช้งานในโปรเจค ก็ต้องศึกษาต่ออีกว่า แล้วทำไมเราต้องใช้งาน จำเป็นขนาดนั้นหรือไม่ เพราะการเรียนรู้สิ่งใดๆ ก็ตาม มันคือต้นทุน ทางเวลา และทำให้เสีย "โอกาส" ในการสร้างผลงาน
ก็จริงอย่างหนึ่งที่ว่า รู้มาก ได้เปรียบ เพราะสามารถเลือกเครื่องมือที่เหมาะสม มาใช้กับงาน ในแต่ละ สถานการณ์ ได้อย่างลงตัว
แต่หากมองกันดีๆ เราเสียเวลากันไปเท่าไหร่แล้ว กับการเรียนรู้อะไรใหม่ๆ ที่มาแล้วจากไป
เราเสียเวลากันแค่ไหนแล้ว ที่เห่อของใหม่ แล้วเอามันมารื้อระบบงานเก่าๆ งานที่เราสร้างเสร็จไปแล้ว แต่รื้อแล้ว รื้ออีก รอบแล้ว รอบเล่า เพียงแค่เพื่อ ตอบสนองความอยากรู้ของตัวเอง
บางงาน รื้อทุกปี ไม่ใช่เพราะอะไร แต่เพราะ ไปเห็นอะไรใหม่ๆ มาก็อยากรื้องานเล่น เพื่อแลกกับคำว่า "ทันสมัย"
...
มองไปที่ระบบธนาคาร ระบบโรงเรียน ระบบในอีกหลายๆ แห่ง ที่ยังเป็น Desktop, Dos แม้บางระบบ จะแทบไม่มีอะไร หน้าตาธรรมดา แต่มันใช้งานได้ดีเยี่ยม เพราะเหตุผลเดียว "มีการพัฒนาอย่างต่อเนื่อง"
...
จะเลือกใช้สิ่งใด หรือศึกษาสิ่งใด ต้องมีเหตุผลเสมอ ว่าเราเรียนรู้มันเพื่ออะไรกันแน่ ?
ณ ขณะนี้ user รอคุณอยู่ พวกเขาจำนวนมาก ต้องการ Software ที่แก้ปัญหาให้เขาได้ ไม่ใช่ต้องการ Software ที่ล้ำสมัย หน้าจออลังการ แต่กลับไม่ช่วยอะไรในงานของเขาเลย
...
สุดท้ายจริงๆ งานจะมีคุณภาพ ได้หรือไม่ได้ คุณต้องไปคลุกคลี กับ user ให้มากที่สุด
พวกเขาคือครู ผู้ให้ความรู้ ที่ไม่มีขายใน ซีเอ็ด ให้คุณได้

ความคิดเห็น

  1. แล้วตอนที่คุณเพิ่งหัดแอนดอยได้ 7 วันแล้วเปิดคอร์สอนนี่คืออัลไลฮะ

    ตอบลบ
  2. ขอบคุณครับสำหรับบทความดีๆ

    ตอบลบ
  3. ผมก็เป็นหนึ่งในนั้นอยากรู้ไปซะหมด แต่ไม่มีผลงานเป็นชิ้นเป็นอันเลย มัวแต่เลือกอยู่อย่างเดียว

    ตอบลบ

แสดงความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เรื่องราวชีวิตของ ถาวร ศรีเสนพิลา

นักสู้ต้นแบบของผม

เทคนิคการทำโปรแกรมขาย