那張計分表
紙本計分表平息不了爭執
我們用的是最常見的那一套:左邊寫名字,上面排日期,得分用筆一格一格加上去。只要有人站在它前面,它就管用,而一年裡有很長一段時間並沒有人站在那裡,因為我在挪威工作,家人在匈牙利。
更根本的問題不是距離。用筆寫下的一分,只記下了有人給了一分,卻沒有記下這一分是為了什麼而給的。一個月後,總分變成一個沒有人說得清楚的數字,而一個沒有人說得清楚的數字,孩子當然可以拿來爭辯,而且爭得有道理。
那個缺口
學校的應用程式回報的是學校指派的事
它們會告訴我學校出了作業,也會告訴我作業有沒有交回去。那本來就是它們的用途,而且做得很好。
但它們都沒有涵蓋我們希望孩子在課綱之外多讀的書、額外的數學練習,或任何我們在家裡認為重要的事。這些事情沒有地方可以放,也沒有辦法在上面附加任何東西。
這個模型
一個家庭就是一個小型的運作單位
當我不再從計分表的角度去想,整件事的形狀就很清楚了。家庭的獎勵制度其實是一套四個步驟的流程。
- 有人指派工作,並說明它值多少積分。
- 另一個人聲明自己已經做完了。
- 有權限的人批准這項聲明。
- 餘額隨之變動,旁邊記著變動的理由。
學習在這份清單裡的分量,跟其他事情完全一樣。二十分鐘的閱讀,定價和批准的方式就跟清空洗碗機一模一樣,而這正是重點:它不再是一場關於學校的獨立爭執,而變成一件有價格的工作。
於是同一份紀錄有了三種檢視方式。家長端負責建立任務並批准任務。孩子端顯示目前累積了多少積分,以及一項獎勵要花多少,孩子可以提交,也可以查看歷史紀錄,但不能更動其中任何一筆。Apple TV 應用程式只把餘額顯示給整個房間看,完全不能批准任何事,因為一支握在孩子手裡的遙控器,不應該替他自己的家務簽核。
沒有人能給自己加積分,也沒有人能悄悄改寫歷史紀錄。真正終結爭執的是這一點,而不是任何一項獎勵。
那次重寫
第一個版本附帶一張我得一直付下去的帳單
我最早是用 FlutterFlow 做的,花了好幾個月,配上自己的後端和自己的資料庫。它能跑。接著我算了一下,擁有那個資料庫實際上代表什麼樣的代價。
持有孩子的資料不是一個儲存問題,而是一項長期存在的義務。依 GDPR,每一種處理目的都要有合法依據。因為涉及兒童,還要做影響評估。要有資料留存期限的排程,時間到就刪除,而不是等某個人想起來才刪。資料外洩必須在72小時內通報。刪除要求必須一路執行到備份裡。隱私權聲明在每一次功能變更之後都得繼續屬實。在美國,COPPA 針對每一位未滿13歲的使用者又加上一層規定,而它修訂後的規則已於2026年4月起全面生效。
就算當初核准這個開發案的人早就換了工作,這些事情還是會一直延續下去。對一個由一個人做出來的應用程式來說,這是整個專案裡最大的一筆經常性成本,而其中沒有任何一項會讓產品變得更好。
所以重寫的時候我改用 Xcode,把資料放進每個家庭自己的 iCloud。不需要帳戶,沒有任何屬於我的伺服器存放東西,沒有追蹤,也沒有一個資料庫要我去保護或弄丟。Apple 為這個應用程式列出的隱私標示寫著「未收集資料」,之所以能這樣寫,是因為另一端真的什麼都沒有。
丟掉好幾個月的成果並不好受。但只要老老實實把那份長期義務算進成本,重寫仍然是比較便宜的選擇。由 Claude Code 負責大量的工作,這次重寫從重新開始到上架 App Store,大約花了三個星期。
在家裡
真正改變的是什麼
爭執停了,這在我意料之中。我沒料到的是孩子開始會做規劃。一個顯示在螢幕上、而且每次變動都有明確理由的餘額,讓孩子能把一個數字放在腦子裡好幾個星期,而事實證明,儲蓄就是從這裡開始的。
我兒子今年開始上學,還不會讀字。他已經看出來閱讀就是分數的來源,所以現在急著想學會讀,理由跟學校一點關係也沒有。他正在存錢買一輛車。是真的車。我還沒告訴他那要存多久。
我女兒閱讀和做數學的時間,都比用計分表的時候更多,她正在存錢買美術用品,價格由她自己訂。他們兩個都不覺得那是學校的功課,而這正是它能奏效的唯一原因。