ผู้สร้าง SQLite ร่วมคุยเรื่อง Turso, AI และเรื่องราวโค้ดตลอด 26 ปี กับ Richard Hipp [YouTube]
(youtube.com)เคล็ดลับความสำเร็จตลอด 26 ปีจากผู้สร้าง SQLite คือการสร้างเครื่องมือที่ตัวเองต้องใช้ขึ้นมาเอง ลดการรับโค้ดจากภายนอกให้น้อยที่สุด และรักษาคุณภาพโค้ดด้วยการทดสอบอย่างเข้มงวด
สิ่งนี้สะท้อน “แก่นแท้ของอิสรภาพ” ที่มักถูกมองข้ามในระบบนิเวศโอเพนซอร์สอันซับซ้อน
สารบัญ
1. เส้นทางโค้ดตลอด 26 ปีของ Richard Hipp ผู้สร้าง SQLite
Richard Hipp ผู้สร้าง SQLite ได้ยึดถือปรัชญาต่อไปนี้มาตลอดเส้นทางการพัฒนาโค้ดกว่า 26 ปี
- พัฒนาเครื่องมือที่ตัวเองต้องใช้ขึ้นมาเอง
- ลดการรับโค้ดจากภายนอกให้น้อยที่สุด
- รักษาคุณภาพโค้ดด้วยการทดสอบอย่างเข้มงวด
- ลดการพึ่งพาภายนอกเพื่อรักษาอิสรภาพในการพัฒนา
1.1. จุดกำเนิดของ SQLite: การแก้ปัญหาที่เริ่มต้นจากเรือรบ
SQLite เริ่มต้นจากโครงการเรือรบ
- SQLite เริ่มต้นจากงานสัญญาที่เกี่ยวข้องกับเรือรบ USS Oscar Austin
- ในเวลานั้น Richard Hipp ทำงานเป็นผู้รับจ้างของ General Dynamics และเข้าร่วมใน โครงการสร้างเรือ DDG-79 ของ Bath Iron Works
- เกิดปัญหาในการพัฒนาระบบข้อมูลควบคุมความเสียหายของเรือ
- แม้บริษัทอื่นจะลงทุนไปหลายล้านดอลลาร์ แต่ก็ยังไม่สามารถส่งมอบผลงานที่ใช้งานได้จริง
ข้อจำกัดของระบบฐานข้อมูลเดิม
- Richard Hipp ได้พัฒนาซอฟต์แวร์เชิงฮิวริสติกที่ทำงานได้รวดเร็วเพื่อแก้ปัญหาระบบควบคุมความเสียหาย
- แต่มีปัญหาว่าเมื่อ เอนจินฐานข้อมูล Informix ที่ใช้เก็บข้อมูลหยุดทำงาน ซอฟต์แวร์ก็หยุดทำงานไปด้วย
- ซอฟต์แวร์จำเป็นต้องทำงานต่อได้แม้ผู้ดูแลระบบจะปิดเอนจินฐานข้อมูลอยู่
- จึงเริ่มพิจารณาวิธีที่แอปพลิเคชันจะอ่านข้อมูลบนดิสก์ได้โดยตรงโดยไม่ต้องมีโปรเซสฐานข้อมูลแยกต่างหาก
- ในเวลานั้นหา SQL database engine ที่ตอบโจทย์ลักษณะนี้ได้ยากมาก จึงต้องพัฒนาขึ้นเอง
ศึกษาเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์ด้วยตัวเอง
- ตอนนั้นการค้นหาข้อมูลบนอินเทอร์เน็ตยังไม่ได้แพร่หลายเหมือนปัจจุบัน
- Richard Hipp ไปค้นคว้าเอกสารที่ห้องสมุดมหาวิทยาลัยในท้องถิ่นเพื่อศึกษาฐานข้อมูลเชิงสัมพันธ์
- ในเวลานั้น MIT, Harvard และ Berkeley ต่างก็มีงานวิจัยด้านฐานข้อมูลเชิงสัมพันธ์อย่างคึกคัก
- แต่ด้วยข้อจำกัดด้านภูมิศาสตร์ เขาไม่สามารถเข้าถึงข้อมูลวิจัยล่าสุดได้ง่ายนัก
- สุดท้ายจึงต้องศึกษาและลงมือสร้างเทคโนโลยีฐานข้อมูลที่ต้องการด้วยตนเอง
1.2. การเติบโตของ SQLite และความสำเร็จเชิงพาณิชย์
โปรเจกต์ที่ไม่ได้เริ่มต้นเพื่อหารายได้
- SQLite ไม่ได้ถูกพัฒนาขึ้นมาโดยมีเป้าหมายเพื่อทำเงินตั้งแต่แรก
- เวอร์ชันแรกถูกเผยแพร่ในรูปแบบซอฟต์แวร์ฟรี
- ในช่วงเริ่มต้นไม่มีแผนจะทำธุรกิจหรือสร้างรายได้จากมัน
สัญญาเชิงพาณิชย์ฉบับแรกกับ Motorola
- หลายปีหลังจากเปิดตัว SQLite ก็ได้รับการติดต่อจากผู้ผลิตโทรศัพท์มือถือ Motorola
- Motorola ต้องการนำ SQLite ไปใช้ในโทรศัพท์ของตน
- นี่กลายเป็นจุดเริ่มต้นของสัญญาเชิงพาณิชย์ฉบับแรกของ SQLite
- สัญญานี้เป็นแบบราคาคงที่ ไม่ใช่รูปแบบไลเซนส์ตามปริมาณการใช้งาน
ความร่วมมือกับ AOL
- ต่อมา America Online (AOL) ก็ทำสัญญาเพื่อนำ SQLite ไปรวมในแพ็กเกจ CD-ROM
- สัญญานี้ก็เป็นแบบราคาคงที่เช่นกัน
- Richard Hipp มองว่ายอดเงินในสัญญาตอนนั้นค่อนข้างต่ำเมื่อเทียบกับมูลค่าที่แท้จริงของ SQLite
Symbian OS เลือก SQLite
- Symbian OS ที่ใช้อยู่ในโทรศัพท์ของ Nokia และผู้ผลิตรายอื่น ได้จัดการทดสอบแบบ blind test เพื่อคัดเลือก database engine
- มี database engine ทั้งหมด 10 ตัวเข้ารับการประเมิน
- ผลลัพธ์คือ SQLite ถูกเลือกในท้ายที่สุด
- แต่ในกระบวนการนี้ก็มีข้อกังวลว่า SQLite พึ่งพานักพัฒนาหลักเพียงคนเดียวมากเกินไป
- จึงมีข้อเสนอให้ตั้ง consortium เพื่อเพิ่ม bus factor
bus factor
ตัวชี้วัดว่าหากบุคลากรสำคัญของโครงการจำนวนหนึ่งไม่สามารถทำงานได้อย่างกะทันหัน โครงการจะยังดำเนินต่อไปได้หรือไม่
ถ้า bus factor เท่ากับ 1 ก็หมายความว่าเพียงนักพัฒนาคนสำคัญหนึ่งคนหายไป โครงการอาจดำเนินต่อได้ยาก
การก่อตั้ง consortium และการพัฒนาแบบเต็มเวลา
- Mitchell Baker จาก Mozilla ให้คำแนะนำเรื่องการจัดตั้ง consortium
- จากนั้นจึงเกิด SQLite Consortium ขึ้น
- หลังตั้ง consortium แล้ว Richard Hipp ก็หันมาพัฒนา SQLite แบบเต็มเวลา
- เขาเริ่มจ้างพนักงานหลายคน และทำให้องค์กรพัฒนาขนาดเล็กนี้ดำเนินต่อไปได้อย่างยั่งยืน
แผนรองรับระยะยาวถึงปี 2050
- ในปี 2010 Airbus ต้องการใช้ SQLite ในระบบ avionics ของ โครงการเครื่องบิน A350
- Airbus จึงสอบถามว่า SQLite จะได้รับการดูแลและสนับสนุนในระยะยาวได้หรือไม่
- เมื่อคำนึงว่าอายุการใช้งานของลำตัวเครื่องบินอยู่ราว 40 ปี จึงมีการให้คำมั่นเรื่องการสนับสนุนระยะยาว
- คำมั่นนี้ไม่ใช่ภาระผูกพันทางกฎหมาย แต่ใกล้เคียงกับเป้าหมายระยะยาวที่โครงการ SQLite ตั้งใจจะทำ
- ปัจจุบัน Richard Hipp ตั้งเป้าส่วนตัวให้การสนับสนุน SQLite ไปจนถึง ปี 2050
- เขาอธิบายแนวคิดนี้ว่าเป็นการทำให้โค้ดมีอายุยืนกว่าช่วงชีวิตที่คาดไว้ของข้อมูล หรือพูดอีกแบบคือ เพิ่มอีก 50 ปีให้กับแนวคิด “data-first code”
1.3. ไลเซนส์ ปรัชญาโอเพนซอร์ส และการพัฒนาเครื่องมือของตัวเอง
การถือกำเนิดของไลเซนส์แบบ “คำอธิษฐาน”
- SQLite เวอร์ชัน 1 พึ่งพา ไลบรารี GDBM
- เนื่องจาก GDBM ใช้ไลเซนส์ GPL ทำให้ SQLite ก็หลีกเลี่ยงอิทธิพลของ GPL ไม่ได้
- ต่อมาเพื่อรองรับ range query จึงได้พัฒนา storage backend แบบ B-tree ขึ้นเอง
- เมื่อเลิกพึ่งพาไลบรารีภายนอก ก็สามารถเลือกไลเซนส์ได้อย่างอิสระ
การเลือกใช้ Public Domain
- ในเวลานั้นไลเซนส์ที่คนรู้จักแพร่หลายมีเพียง MIT และ Berkeley license เป็นหลัก
- Richard Hipp เลือกเผยแพร่ SQLite เป็น Public Domain แทนการใช้ไลเซนส์ที่เต็มไปด้วยถ้อยคำทางกฎหมายซับซ้อน
- ภายหลังเขาจึงพบว่าแนวคิด Public Domain ไม่ได้รับการยอมรับเหมือนกันในทุกประเทศ
- ถึงอย่างนั้นแนวทางการเผยแพร่ของ SQLite ก็ถูกยอมรับในทางปฏิบัติคล้ายโอเพนซอร์สไลเซนส์
ถ้อยคำ “บทอธิษฐาน”
ใน header ของซอร์สโค้ด SQLite มีข้อความที่ใกล้เคียงกับคำอวยพรหรือคำอธิษฐาน แทนถ้อยคำทางกฎหมายทั่วไป
May you do good and not evil.
May you find forgiveness for yourself and forgive others.
May you share freely, never taking more than you give.
เมื่อ SQLite กลายเป็นหนึ่งในซอฟต์แวร์ไลบรารีที่ถูกใช้อย่างแพร่หลายที่สุดในโลก ข้อความนี้ก็กลายเป็นสัญลักษณ์ของปรัชญาไลเซนส์อันเป็นเอกลักษณ์ของ SQLite ไปด้วย
แนวทางพัฒนาที่ลดการรับโค้ดจากภายนอกให้น้อยที่สุด
- SQLite ไม่ได้รับ pull request อย่างเปิดกว้างเหมือนโปรเจกต์โอเพนซอร์สทั่วไป
- โครงการเลือกจำกัดการรับโค้ดจากภายนอก และให้ทีมพัฒนาหลักเป็นผู้เขียนและดูแลโค้ดเอง
- Richard Hipp เปรียบ pull request ว่าเป็น “ลูกสุนัขฟรี (free puppy)”
- เพราะแม้จะได้ลูกสุนัขมาฟรี แต่หลังจากนั้นก็ต้องรับภาระดูแลระยะยาว เช่นเดียวกับโค้ดจากภายนอกที่ตามมาด้วยความรับผิดชอบเหล่านี้
- การบำรุงรักษาโค้ด
- การทดสอบ
- การทำเอกสาร
- การแก้ไขข้อผิดพลาด
- การดูแลความเข้ากันได้กับแพลตฟอร์มอื่น
- ความรับผิดชอบทางเทคนิคในระยะยาว
- การจำกัดการมีส่วนร่วมจากภายนอกเป็นหนึ่งในปัจจัยที่ช่วยให้ SQLite รักษาคุณภาพและทิศทางที่สม่ำเสมอมาได้ยาวนานกว่า 26 ปี
ตัวอย่างการพัฒนาเครื่องมือของตัวเอง
Fossil
- Fossil คือระบบควบคุมเวอร์ชันที่พัฒนาขึ้นเองเพื่อใช้จัดการโครงการ SQLite
- มันถูกพัฒนาขึ้นในช่วงเวลาใกล้เคียงกับ Git
- นอกจากการจัดการซอร์สโค้ดแล้ว ยังรวมฟังก์ชันต่อไปนี้ไว้ด้วย
- การควบคุมเวอร์ชัน
- การติดตาม issue
- วิกิ
- ฟอรัม
- เว็บอินเทอร์เฟซ
- Fossil เองก็สร้างอยู่บน SQLite
- เพราะเหตุนี้ Fossil จึงทำหน้าที่เป็นแพลตฟอร์ม beta test ที่ใช้งานจริงของ SQLite ไปด้วย
- ระหว่างการพัฒนาและใช้งาน Fossil ทีมสามารถค้นพบปัญหาของ SQLite จากมุมมองของนักพัฒนาแอปพลิเคชัน และนำไปปรับปรุงต่อได้
- Richard Hipp มองว่า Git เหมาะกับโปรเจกต์กระจายศูนย์ขนาดใหญ่ เช่น Linux kernel ขณะที่ Fossil เหมาะกับโปรเจกต์ขนาดเล็กอย่าง SQLite มากกว่า
Lemon
- Lemon เป็นเครื่องมือที่พัฒนาขึ้นเพื่อสร้าง SQL parser ของ SQLite
- เขาเลือกสร้างมันเองแทนการใช้ Yacc หรือ Bison
- เพราะเป็นเครื่องมือของตัวเอง จึงสามารถปรับปรุงวิธีการสร้าง parser ให้ตรงกับความต้องการของ SQLite ได้อย่างอิสระ
ปรัชญาเรื่องอิสรภาพและเครื่องมือที่สร้างเอง
- สำหรับ Richard Hipp การพัฒนาเครื่องมือของตัวเองไม่ใช่แค่รสนิยมทางเทคนิค
- เขามองว่าการสร้างเครื่องมือที่ตัวเองต้องใช้คือการดูแลตัวเองรูปแบบหนึ่ง
- เมื่อพึ่งพาภายนอกน้อยลง ก็จะได้รับผลกระทบจากการตัดสินใจของโปรเจกต์หรือบริษัทอื่นน้อยลงด้วย
- เขาเชื่อว่าความเป็นอิสระเช่นนี้ช่วยขยายอิสรภาพของนักพัฒนา
- อย่างไรก็ตาม เขาก็ยอมรับว่าการที่ SQLite กลายเป็น dependency สำคัญในระบบจำนวนมหาศาลทั่วโลกนั้นมาพร้อมภาระและความกังวลเช่นกัน
1.4. การทดสอบอย่างเข้มงวดและการพัฒนาซอฟต์แวร์ในยุค AI
การทดสอบคือหัวใจของความสำเร็จของ SQLite
- หนึ่งในปัจจัยสำคัญที่ทำให้ SQLite มีเสถียรภาพมาได้ยาวนานคือการทดสอบที่เข้มงวดอย่างยิ่ง
- ทีมพัฒนา SQLite ไม่ได้แค่ตรวจว่าฟังก์ชันทำงานหรือไม่ แต่ยังตรวจสอบกรณียกเว้นและแพลตฟอร์มที่หลากหลายอย่างละเอียด
- พวกเขาให้ความสำคัญกับการทดสอบมากถึงขั้นที่ปริมาณ test code มีมากกว่า product code จริงอย่างชัดเจน
การนำมาตรฐาน DO-178B มาใช้
- ทีมพัฒนา SQLite นำแนวทางของ DO-178B ซึ่งเป็นมาตรฐานพัฒนาซอฟต์แวร์สำหรับอากาศยานมาใช้กับการทดสอบ
- สิ่งนี้ช่วยยกระดับ test coverage อย่างเป็นระบบ
- ในช่วงแรกของการพัฒนา Android หลังจากบรรลุระดับ test coverage ตาม DO-178B แล้ว รายงานบั๊กก็แทบหายไป
- ประสบการณ์นี้ยืนยันว่าการทดสอบอย่างเข้มงวดส่งผลโดยตรงต่อการเพิ่มเสถียรภาพของซอฟต์แวร์จริง
การค้นพบบั๊กแบบใหม่ผ่าน fuzzing
- ต่อมามีเทคโนโลยี profile-guided fuzzing เกิดขึ้น
- fuzzing คือวิธีป้อนข้อมูลแบบสุ่มหรือดัดแปลงให้โปรแกรม เพื่อค้นหาข้อผิดพลาดที่คาดไม่ถึง
- บั๊กบางประเภทที่ตรวจไม่พบแม้ด้วยการทดสอบระดับ DO-178C ก็กลับถูกพบด้วย fuzzing
- สิ่งนี้แสดงให้เห็นว่าแม้ test coverage จะสูงมาก ก็ไม่ได้หมายความว่าจะพบข้อผิดพลาดทั้งหมด
AI กับการค้นพบบั๊ก
- ช่วงหลังเริ่มมีกรณีใช้ AI เพื่อค้นหาบั๊กหรือเขียนรายงานบั๊ก
- โครงการ SQLite เองก็เคยได้รับรายงานบั๊กที่สงสัยว่าสร้างโดย AI
- AI มีศักยภาพจะกลายเป็นเครื่องมือตรวจสอบซอฟต์แวร์รูปแบบใหม่ที่เข้ามาเสริมการทดสอบและ fuzzing เดิม
มุมมองของ Richard Hipp ต่อ AI
- Richard Hipp บอกว่าความคิดของเขาต่อ AI เปลี่ยนได้ทุกวัน
- ตอนนี้เขามองว่า AI เป็นเครื่องมือที่มีประโยชน์มาก
- เขาเล่าว่าเมื่อถาม ChatGPT เกี่ยวกับโค้ดของ SQLite ก็เคยได้รับคำตอบในลักษณะนี้
“แน่นอนว่าคุณก็คงรู้อยู่แล้วว่า…”
- เขาบอกว่ารู้สึกขนลุกเล็กน้อยที่ AI พูดถึงโค้ดที่เขาเขียนเองเหมือนรู้ดีกว่าเขาเสียอีก
- AI มีประโยชน์ต่อการค้นหาข้อมูลและต่อยอดไอเดีย
- แต่ก็ไม่ได้ถูกต้องเสมอไป และอาจให้ข้อมูลผิดด้วยถ้อยคำที่น่าเชื่อถือมาก
- โค้ดที่ AI สร้างขึ้นบางครั้งอาจทำงานได้บนระบบปฏิบัติการหนึ่ง แต่ใช้ไม่ได้บนอีกระบบหนึ่ง ทำให้เกิดปัญหาความเข้ากันได้
- ดังนั้นผลลัพธ์จาก AI ก็ยังต้องให้มนุษย์ตรวจทานและแก้ไขด้วยตนเอง
คำแนะนำถึงนักพัฒนารุ่นใหม่
- Richard Hipp ยินดีต่อความพยายามที่จะ fork SQLite เพื่อสร้างฐานข้อมูลที่ดีกว่า
- แต่เขาเน้นว่าหากจะไปถึงระดับเดียวกับ SQLite จำเป็นต้องมีองค์ประกอบต่อไปนี้
- การพัฒนาอย่างต่อเนื่องยาวนานกว่า 25 ปี
- ความทุ่มเทอย่างยืนหยัดกับหัวข้อเดียว
- การทดสอบและปรับปรุงในระยะยาว
- การสังเกตความต้องการของผู้ใช้อย่างต่อเนื่อง
- ประสบการณ์ที่สั่งสมจากความล้มเหลวซ้ำแล้วซ้ำเล่า
- ซอฟต์แวร์ที่ยอดเยี่ยมไม่ได้ถูกสร้างขึ้นในระยะเวลาอันสั้น
- เขามองว่า AI อาจเปลี่ยนวิธีการพัฒนาซอฟต์แวร์ไปมาก แต่ก็ยากจะคาดเดาได้ง่ายว่าภาพอนาคตจะออกมาแบบไหน
1.5. ความยั่งยืนของ SQLite และมิติความเป็นมนุษย์
ทำไมจึงดำเนินต่อมาได้ 26 ปี
- Richard Hipp อธิบายความสำเร็จของ SQLite ว่าเกิดจาก พระประสงค์และโชค มากกว่าความสามารถของตัวเอง
- เขาบอกว่าไม่คิดว่าตัวเองเป็นโปรแกรมเมอร์ที่เก่งเป็นพิเศษ
- แต่ก็วิเคราะห์ว่านิสัยต่อไปนี้มีส่วนช่วยให้ SQLite เติบโตมาได้
- ความดื้อดึงที่จะรักษาวิธีของตัวเอง
- การตั้งคำถามกับความเชื่อเดิม ๆ
- นิสัยชอบสร้างเครื่องมือที่ต้องใช้ขึ้นมาเอง
- แนวโน้มที่จะจดจ่อกับปัญหาเดียวเป็นเวลานาน
- ท่าทีที่สนุกกับกระบวนการพัฒนา
- เขาบอกว่าสิ่งสำคัญคือกระบวนการคิดอยู่เสมอว่าจะทำให้ SQLite ดีขึ้นได้อย่างไร
ข้อดีของทีมขนาดเล็ก
- Richard Hipp บอกว่าตัวเองไม่ถนัดการเข้าสังคมหรือการจัดการความสัมพันธ์ทางการเมืองภายในองค์กร
- ด้วยบุคลิกเช่นนี้ เขาจึงรักษาทีมพัฒนา SQLite ให้มีขนาดเล็กมาโดยตลอด
- ผลลัพธ์คือโครงสร้างทีมเล็กช่วยให้ SQLite รักษาทิศทางที่สม่ำเสมอและตัดสินใจได้รวดเร็ว
- เขายอมรับว่าตัวเองไม่มีความสามารถในการประสานงานกับนักพัฒนาจำนวนมากแบบที่ Linus Torvalds ทำกับ Linux ได้
การบริหารบริษัทร่วมกับภรรยา Ginger
- Richard Hipp บริหารบริษัทกับภรรยาของเขา Ginger
- ทั้งคู่รักษาการทำงานเป็นทีมอย่างยืดหยุ่น เช่น สลับบทบาทตำแหน่งกันตามสถานการณ์
- Ginger เป็นนักดนตรี และยังเก่งในการช่วยเหลือนักดนตรีคนอื่นที่มีปัญหาเกี่ยวกับคอมพิวเตอร์
- Richard Hipp ยังเล่าว่าในชุมชนท้องถิ่น Ginger มีชื่อเสียงมากกว่าเขาเสียอีก
มิติความเป็นมนุษย์ของการพัฒนาซอฟต์แวร์
- Richard Hipp ไม่ได้มองซอฟต์แวร์เป็นเพียงชุดของโค้ดหรือเทคโนโลยี
- เขาเน้นว่าองค์ประกอบที่เป็นมนุษย์ เช่น อารมณ์ของนักพัฒนา ความสัมพันธ์ในการร่วมงาน ความหมกมุ่น ความล้มเหลว และความภูมิใจในความสำเร็จ ล้วนสำคัญต่อการพัฒนาซอฟต์แวร์
- ซอฟต์แวร์อาจเป็นผลลัพธ์ที่ซับซ้อนและเป็นนามธรรม แต่เบื้องหลังนั้นมีเรื่องราวของผู้คนที่สร้างมันอยู่เสมอ
หนังสือแนะนำ: 《The Soul of a New Machine》
- Richard Hipp แนะนำ 《The Soul of a New Machine》 เป็นหนังสือที่ช่วยให้เข้าใจมิติความเป็นมนุษย์ของการพัฒนาซอฟต์แวร์และคอมพิวเตอร์
- หนังสือเล่มนี้ไม่ได้อธิบายแค่เรื่องเทคโนโลยีคอมพิวเตอร์เท่านั้น
- แต่ยังพูดถึงองค์ประกอบต่อไปนี้ที่เกิดขึ้นระหว่างการพัฒนาคอมพิวเตอร์เครื่องใหม่
- ความหลงใหลของนักพัฒนา
- ความขัดแย้งภายในองค์กร
- ความท้าทายทางเทคนิค
- ความล้มเหลวและความท้อแท้
- การร่วมมือและการแข่งขัน
- อารมณ์ในกระบวนการสร้างสรรค์
- เขาเน้นว่าความสามารถในการเข้าใจเทคโนโลยีซับซ้อนอย่างลึกซึ้ง พร้อมกับถ่ายทอดมันออกมาในรูปของเรื่องเล่าที่มีความเป็นมนุษย์นั้นเป็นสิ่งสำคัญ
บทสรุป
เหตุผลที่ SQLite ยืนหยัดและประสบความสำเร็จมาได้มากกว่า 26 ปี ไม่ได้มีเพียงเรื่องความสามารถทางเทคนิคที่ยอดเยี่ยมเท่านั้น
ปัจจัยความสำเร็จหลักสรุปได้ดังนี้
- พัฒนาเทคโนโลยีที่จำเป็นขึ้นมาเองเพื่อแก้ปัญหาจริง
- ลดการพึ่งพาจากภายนอกและรักษาอำนาจควบคุมของโครงการไว้
- ให้ความสำคัญกับภาระการดูแลระยะยาวมากกว่าการรับโค้ดจากภายนอก
- สร้างเครื่องมือที่ตัวเองต้องใช้ขึ้นมาเอง เช่น Fossil และ Lemon
- ใช้การทดสอบอย่างเข้มงวดในระดับซอฟต์แวร์การบิน
- ใช้ AI และเทคโนโลยีพัฒนาแบบใหม่ แต่ไม่เชื่อผลลัพธ์แบบไร้ข้อกังขา
- ขับเคลื่อนโครงการด้วยทีมเล็กและความสัมพันธ์แบบมนุษย์
- ทุ่มเทกับหัวข้อเดียวอย่างยาวนานและไม่ยอมปล่อยง่าย ๆ
แก่นสำคัญที่กรณีของ SQLite แสดงให้เห็นคือ อิสรภาพไม่ใช่สภาวะที่ไร้ข้อจำกัดใด ๆ แต่คือสภาวะที่เรายังรับผิดชอบและควบคุมเครื่องมือกับโค้ดที่เราใช้อยู่ได้ด้วยตัวเอง
แนวทางพัฒนาของ SQLite ที่ลดการพึ่งพาภายนอก สร้างเครื่องมือที่ต้องใช้ขึ้นมาเอง และตรวจสอบทุกอย่างอย่างเข้มงวด เป็นตัวอย่างสำคัญของการพัฒนาซอฟต์แวร์อย่างยั่งยืนในยุค AI ที่เปลี่ยนแปลงอย่างรวดเร็ว
4 ความคิดเห็น
Do-178 ของ RTCA เป็นคู่มือแนวทางที่สั้นพอที่จะอ่านและลองนำไปใช้จริงได้ครับ มีการนำไปใช้อย่างแพร่หลายในอุตสาหกรรมการบิน
https://studylib.net/doc/27132454/rtca-do-178b
"การพัฒนาอย่างต่อเนื่องมากกว่า 25 ปี" นี่เท่มากจริง ๆ...
เจ๋งมาก.. เหมือนหนังเลยด้วย
แนวคิดเจ๋งมากเลย