以學生為中心,但學生知道自己要什麼嗎?~SDD(規格驅動開發,Specification-Driven Development)對教育的啟示
程式開發思維的演進,大致可分為三個階段:
1.傳統階段(1980s–1990s)~重規劃、重控制
代表方法:瀑布式開發(Waterfall Model);特徵:明確定義需求→設計→實作→測試→上線,階段清楚但彈性低。
2.敏捷階段(2000s起)~重回饋、重協作
代表方法:Scrum、Kanban、XP(Extreme Programming)
核心精神是:接受變化(Responding to Change)、與客戶密切協作(Customer Collaboration)、持續交付可運作的軟體(Working Software)
優點是速度快、彈性高、用戶導向,但是當專案規模龐大或需要跨多個團隊整合時,常因規格不清而導致品質難控與版本混亂。
這兩種模式的迭代,剛好也對應了傳統教室風景的演變:老師從主宰整個教學的進行,到慢慢要以學生為中心,隨時了解學生需求,密切和學生溝通,並且調整修正。
然而,以學生為中心當然很好,但學生真的知道自己要什麼嗎?老師真的能理解嗎?給出的東西真的切合到學生的需求嗎?
這就一如「敏捷開發」的問題,有時客戶自己也說不清需求,而且改來改去,可能就改到天上去了!
不過自從AI橫空出世後,程式開發有了另一種思維:
3.規格驅動階段(2020s起)~重定義、重一致
代表方法:SDD(Specification-Driven Development) 或 Contract-First Development。
核心精神是:在開發前,先用精確、可測試的規格語言(如OpenAPI、JSON Schema)定義系統行為。
也就是說,可以運用AI來驗證規格裡面缺乏或者衝突的點,透過不斷反問協助釐清規格模糊不清的地方,然後進行plan /tasks拆分,最後讓AI直接進行implement 產出目標產品;包括開發、測試、文件、介面都依此規格自動生成。
優點是可以降低模糊溝通的成本,並且強化跨團隊協作一致性。
因此,我們也可預期,關於學生知不知道自己要什麼?老師知不知道自己該給什麼?有了AI的協作,可以透過不斷反問與釐清,讓教室中的教與學有更高的契合。
於是,我們跟AI的互動就不再只是我問它答,而是它問我們答了!












