ประวัติศาสตร์ของซอฟต์แวร์คือประวัติศาสตร์ของการส่งมอบงานให้กับเครื่องจักร เราเริ่มต้นด้วยการเจาะคำสั่งลงบนบัตร จากนั้นให้คอมไพเลอร์แปลงภาษาที่มนุษย์อ่านได้ให้เป็นภาษาเครื่อง จากนั้นให้เวอร์ชวลแมชชีนลืมไปว่าเรากำลังทำงานอยู่บนคอมพิวเตอร์เครื่องไหน และท้ายที่สุดให้คลาวด์ลืมตัวเครื่องไปโดยสิ้นเชิง แต่ละขั้นตอนในตอนนั้นดูเหมือนเป็นการสละอำนาจควบคุม แต่ที่จริงแล้วแต่ละขั้นตอนคือการก้าวขึ้นไปอีกระดับหนึ่ง — การแลกงานหนักหนึ่งชั้นกับความได้เปรียบ (leverage) อีกหนึ่งชั้น การพัฒนาแบบ agentic คือขั้นต่อไปในสายธารเดียวกันนี้ และเป็นก้าวที่ใหญ่กว่าก้าวส่วนใหญ่ที่ผ่านมา
การแยกส่วนนามธรรมคือเรื่องราวเดิมเสมอมา
การเปลี่ยนแปลงครั้งก่อนๆ ไม่มีครั้งไหนที่ทำให้โปรแกรมเมอร์หมดความจำเป็น สิ่งที่มันเปลี่ยนคือสิ่งที่โปรแกรมเมอร์ใช้เวลาทั้งวันไปทำ คอมไพเลอร์ไม่ได้ทำให้การเขียนโปรแกรมสิ้นสุดลง แต่ทำให้การเขียนแอสเซมบลีด้วยมือสิ้นสุดลง คลาวด์ไม่ได้ทำให้งาน operations สิ้นสุดลง แต่ทำให้การติดตั้งเซิร์ฟเวอร์ลงแร็คสิ้นสุดลง ทุกครั้งที่เครื่องจักรดูดซับชั้นล่างเข้าไป มนุษย์ก็ขยับขึ้นไปอยู่ชั้นบน — จากการจัดการหน่วยความจำไปสู่การจัดการตรรกะ จากการจัดการเซิร์ฟเวอร์ไปสู่การจัดการระบบ
รูปแบบนี้สม่ำเสมอมากจนแทบจะเป็นกฎ นั่นคือ สิ่งใดก็ตามที่กลายเป็นเรื่องถูกที่จะทำ automate จะหยุดเป็นจุดที่มีคุณค่า และคุณค่าจะเคลื่อนไปสู่สิ่งที่หายากที่สุดในตอนนั้น เป็นเวลานานที่สิ่งที่หายากคือการพัฒนา (implementation) — การแปลงความตั้งใจให้กลายเป็นโค้ดที่ทำงานได้จริง และนั่นคือชั้นที่เอเจนต์กำลังดูดซับอยู่ในตอนนี้พอดี
เอเจนต์คือเพื่อนร่วมงาน ไม่ใช่ autocomplete ที่เร็วขึ้น
ความผิดพลาดที่ล่อใจคือการจัดหมวดหมู่ coding agent ไว้ในกลุ่ม "autocomplete ที่ดีกว่า" แต่มันเป็นสิ่งที่แตกต่างกันโดยสิ้นเชิง autocomplete แค่ช่วยพิมพ์ประโยคของคุณให้จบ ในขณะที่เอเจนต์รับเป้าหมายมาแล้ว ลงมือทำ กับมัน — ตัดสินใจภายในขอบเขตที่คุณกำหนดไว้ว่าจะเปลี่ยนอะไรและเปลี่ยนอย่างไร แล้วก็ลงมือทำจริง มันไม่เหมือนคีย์บอร์ดที่ฉลาดขึ้น แต่เหมือนเพื่อนร่วมงานที่บังเอิญอาศัยอยู่ใน repository มากกว่า คุณมอบ issue ให้มัน มันก็หายไปทำงาน แล้วกลับมาพร้อม merge request
นั่นคือรูปแบบที่เราสร้าง TaskGoblin ขึ้นมา มันไม่ใช่แผงควบคุมใน editor ของคุณ แต่เป็นเพื่อนร่วมทีมในเครื่องมือที่ทีมของคุณใช้อยู่แล้ว — ถูกมอบหมาย issue ถูกกล่าวถึงใน thread รีวิว pull request — ที่ลงมือพัฒนาใน sandbox แล้วส่งมอบงานที่คุณสามารถตรวจสอบได้กลับมา หน่วยของการโต้ตอบไม่ใช่การกดคีย์ แต่คือ task หนึ่งงาน
วันทำงานเริ่มมีหน้าตาแบบนี้
ลองก้าวไปอีกขั้นหนึ่ง แล้ววันทำงานก็จะเปลี่ยนรูปร่างไป การอัปเดต dependency ที่ไม่มีใครอยากทำจะเสร็จข้ามคืน การทดสอบที่ไม่เสถียร (flaky test) จะถูกตัดทิ้งก่อนถึง standup ฟีเจอร์ที่ระบุสเปกไว้อย่างดีจะมาถึงในรูปแบบ draft pull request ที่มี scaffolding และ test พร้อมอยู่แล้ว รอเพียงวิจารณญาณแทนที่จะรอการพิมพ์ product manager ย้ายตั๋วงานหนึ่งใบ และเมื่อมีใครมองดูอีกครั้ง เวอร์ชันแรกของการเปลี่ยนแปลงก็เปิดรออยู่แล้ว สายพานลำเลียงแห่งงานหนักหนา — งานที่จำเป็นแต่ไม่หรูหราซึ่งเติมเต็มสัปดาห์ของวิศวกรไปมากมาย — ในที่สุดก็เริ่มช้าลง
สิ่งที่เหลืออยู่คือส่วนที่เป็นงานตัวจริงมาโดยตลอด นั่นคือ การตัดสินใจว่าอะไรควรถูกสร้างขึ้น การสังเกตว่าเมื่อใดที่การพัฒนาที่ดูเหมือนชัดเจนกลับผิดพลาดอย่างแนบเนียน การรักษารสนิยมและบริบทที่ไม่มีความสามารถดิบใดๆ จะมอบให้ได้ วิศวกรเปลี่ยนบทบาทจากผู้เขียนไปเป็นบรรณาธิการ — จากการผลิตทุกบรรทัดด้วยตัวเอง ไปเป็นการกำกับว่าอะไรควรถูกผลิตขึ้น และตัดสินว่ามันถูกต้องหรือไม่
คำถามเปลี่ยนจาก "เราทำได้ไหม" เป็น "เราควรทำไหม"
เมื่อการพัฒนามีต้นทุนต่ำและรวดเร็ว ข้อจำกัดที่แท้จริงจะไม่ใช่ว่าคุณสร้างสิ่งหนึ่งได้หรือไม่อีกต่อไป แต่กลายเป็นว่ามันคุ้มค่าที่จะสร้างหรือไม่ การทำซ้ำ (iteration) มีต้นทุนต่ำลงมากพอที่การรีวิวดีไซน์จะกลายเป็นการสำรวจ — ลองสามเวอร์ชันแทนที่จะถกเถียงกันเรื่องเวอร์ชันเดียว ทีมเล็กๆ สามารถสร้างผลงานเทียบเท่าทีมที่ใหญ่กว่ามากได้ เพราะ leverage ต่อคนสูงขึ้น และความได้เปรียบในการแข่งขันก็เคลื่อนตามไปด้วย — ออกจากคำถามว่าใครสามารถลงมือทำได้ ไปสู่คำถามว่าใครมีรสนิยมที่รู้ว่าควรทำอะไร มีความเห็นอกเห็นใจที่เข้าใจว่าสิ่งนี้ทำเพื่อใคร และมีความชัดเจนพอที่จะอธิบายปัญหาได้ดีพอให้เอเจนต์ลงมือทำได้เลย
นี่คือการปรับกรอบความคิดที่แท้จริงซึ่งซ่อนอยู่ใต้เสียงอึกทึกทั้งหมด "ตอนนี้เราแค่กำลังบริหารฝูง junior developer" คือมุมมองแบบวิตกกังวล ส่วนมุมมองที่ใกล้ความจริงมากกว่าคือ leverage ได้เคลื่อนย้ายไปแล้ว และทักษะที่หายากก็เคลื่อนตามไปด้วย — ขึ้นไป สู่วิจารณญาณ
มนุษย์ยังคงอยู่ตรงไหน
อนาคตแบบที่ซื่อตรงจะไม่แสร้งทำเป็นว่ามนุษย์หายไป ตรงกันข้าม เมื่อเครื่องจักรดูดซับการพัฒนาเข้าไปมากขึ้น การตัดสินใจของมนุษย์กลับยิ่งมีความสำคัญมากขึ้น ไม่ใช่น้อยลง เพราะแต่ละการตัดสินใจตอนนี้กำหนดทิศทางของผลงานจำนวนมากขึ้นกว่าเดิมมาก นี่คือเหตุผลที่ TaskGoblin จงใจให้มนุษย์ยังคงอยู่ในขั้นตอน merge — เอเจนต์เขียนโค้ดและรีวิวการเปลี่ยนแปลง แต่ไม่เคย approve และไม่เคย merge เอง วิจารณญาณว่าสิ่งใดถูกต้องสำหรับระบบนี้ในตอนนี้ คือชั้นที่ automate ไม่ได้อย่างแท้จริง และเป็นชั้นที่พวกเราทุกคนกำลังก้าวขึ้นไปหา
สายพานลำเลียงกำลังช้าลง สิ่งที่จะกำหนดว่าใครจะเป็นผู้กำหนดยุคต่อไปของซอฟต์แวร์ จะไม่ใช่ใครที่สามารถลงมือพัฒนาได้ — เพราะเครื่องจักรกำลังเข้ามาแทนที่ชั้นนั้น เหมือนที่มันเข้ามาแทนที่ชั้นล่างๆ ทั้งหมด แต่จะเป็นจินตนาการ รสนิยม และวิจารณญาณในการชี้ความสามารถทั้งหมดนี้ไปยังสิ่งที่คุ้มค่าจะสร้างขึ้นจริงๆ ต่างหาก