👹 สร้างก่อนซ่อม

จุดเริ่มต้นของทุกบริษัทที่มีซอฟต์แวร์เป็นของตัวเองนั้นใกล้เคียงกัน ช่วงแรกที่ต้องรีบสร้าง ช่วงแรกที่ต้องเร่งทำ ช่วงแรกที่เวลาและเงินสำคัญกว่าคุณภาพ

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

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

เราเริ่มตระหนักว่าเราต้องทำอะไรสักอย่างแล้ว … รีแฟคเตอร์ รีสตรั้กเจอร์ รีไร้ท์ อะไรก็ตามแต่ … ประเด็นแรกมันอยู่ตรงนี้

เรารู้ดีว่าการจะปรับปรุงคุณภาพนั้นเป็นงานยาก ยากเกินกว่าที่เราจะฝากความหวังไว้กับคนกลุ่มแรกที่สร้างซอฟต์แวร์ตัวนี้ขึ้นมา เราไม่ต้องการเด็กใหม่หน้าเก่า เราต้องการพวกเก๋าเกมส์หน้าใหม่ เราต้องลงทุนในผู้เชี่ยวชาญที่มีประสบการณ์ … ประเด็นที่สองมันอยู่ตรงนี้

ถ้าเราเป็นนักพัฒนาผู้มีประสบการณ์ที่ถูกจ้างโดยบริษัทนี้ คำถามคือเราถูกจ้างมาเพื่อสร้าง (ของใหม่) หรือซ่อม (ของเก่า)? … มันเป็นอะไรที่ต่างกันมาก

คนที่มีประสบการณ์ส่วนใหญ่นั้นจะมีแนวคิดแนวทางที่ชัดเจน มีความต้องการที่แรงกล้าที่จะได้ทำอะไรใหม่ๆด้วยเทคโนโลยีใหม่และแก้ปัญหาที่ท้าทายแบบใหม่ๆ … งานซ่อมไม่ตอบโจทย์

  • อ่านและแก้โค๊ดคนอื่น
  • ไล่ศึกษาและหาคำตอบจากความยุ่งเหยิงในโค๊ดของคนอื่น
  • วิเคราะห์และทดสอบเพื่อหาจุดอ่อนและจุดผิดพลาดในงานของคนอื่น

คนที่มีประสบการณ์หลายคนมองว่างานเหล่านี้ไม่น่าสนใจและไม่ช่วยสร้างความมุ่งมั่นที่จะเรียนรู้สักเท่าไร … เรารู้สึกเหมือนกันมั้ย?

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

ถ้าเราคือนักพัฒนาคนนั้นคำถามที่ต้องถามตัวเองวันนี้คือเรากำลังสร้างหรือซ่อม? และกับโอกาสใหม่ที่กำลังวิ่งเข้ามาจากบริษัทใหม่นั้นคืออะไร — สร้างหรือซ่อม?

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

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

การลงทุนในคนที่มีประสบการณ์เพื่อสร้างซอฟต์แวร์ที่ดีตั้งแต่แรกแล้วค่อยเสริมด้วยเด็กใหม่เพื่อต่อยอดนั้นเป็นทางเลือกที่ดีกว่าการใช้เด็กใหม่ (เพราะราคาถูกกว่า) สร้างสิ่งที่ไม่มีคุณภาพไว้แล้วจึงหาคนมีประสบการณ์มาซ่อมแซมภายหลังมากนัก

Leave a Reply

Your email address will not be published. Required fields are marked *