𝗔𝗜 കോഡ് എഴുതുന്നു. എന്നാൽ "Done" എന്ന് അതിന് നിർവചിക്കാൻ കഴിയില്ല.
ഞാൻ ഒരു AI സ്ലൈഡ് ഡെക്ക് ജനറേറ്റർ നിർമ്മിച്ചു. നിങ്ങൾ ഒരു വിഷയം ടൈപ്പ് ചെയ്താൽ ഒരു പ്രസന്റേഷൻ ലഭിക്കും.
AI ഡെമോ ഉടനടി പ്രവർത്തിച്ചു. അത് ഒരു ഔട്ട്ലൈൻ തയ്യാറാക്കി. സ്ലൈഡുകൾ നിർമ്മിച്ചു. ഒരു ഫയൽ എക്സ്പോർട്ട് ചെയ്തു. എന്റെ സ്ക്രീനിൽ നോക്കിയപ്പോൾ അത് പൂർത്തിയായതായി തോന്നി.
അത് പൂർത്തിയായിരുന്നില്ല.
ഒരു ഉപയോക്താവിന് ഒരു തവണ ഒരു ഡെക്ക് നിർമ്മിക്കാൻ കഴിയുമെന്ന് AI തെളിയിച്ചു. എന്നാൽ ഒരു യഥാർത്ഥ ഉൽപ്പന്നം (product) വ്യത്യസ്തമാണ്. ഒരേസമയം 100 ഉപയോക്താക്കളെ കൈകാര്യം ചെയ്യാൻ അതിന് കഴിയണം. അവർക്ക് കൃത്യമായി ബില്ലിംഗ് നൽകണം. ഒരു ഘട്ടം പരാജയപ്പെട്ടാൽ അത് വീണ്ടെടുക്കാൻ (recover) കഴിയണം. PowerPoint-ൽ കൃത്യമായി തുറക്കാൻ കഴിയുന്ന ഒരു ഫയൽ അത് എക്സ്പോർട്ട് ചെയ്യണം.
ഞാൻ ആവശ്യപ്പെടാത്തതുകൊണ്ട് AI ഈ കാര്യങ്ങൾ ചേർത്തില്ല.
നിങ്ങൾ AI ഉപയോഗിച്ച് നിർമ്മിക്കുമ്പോൾ, ഒരു ഫീച്ചർ വിവരിക്കുന്നതല്ല പ്രയാസകരമായ കാര്യം. മറിച്ച്, "done" എന്നാൽ എന്താണെന്ന് നിർവചിക്കുന്നതാണ് പ്രയാസകരമായ കാര്യം.
അടിസ്ഥാന ഘടനയ്ക്കായി ഞാൻ Velobase Harness ഉപയോഗിച്ചു. അത് auth, payments, credits, ഡാറ്റാബേസുകൾ എന്നിവ കൈകാര്യം ചെയ്തു. ഇത് PPT നിർമ്മാണത്തിൽ മാത്രം ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ എന്നെ സഹായിച്ചു.
അവിടെയാണ് "പൂർത്തിയായതായി തോന്നുന്നതും" "യഥാർത്ഥത്തിൽ പൂർത്തിയായതും" തമ്മിലുള്ള വ്യത്യാസം ഞാൻ തിരിച്ചറിഞ്ഞത്. പ്രധാനമായും നാല് പോരായ്മകൾ ഞാൻ കണ്ടെത്തി:
Concurrency: ഒരു തവണ വിജയകരമായി പ്രവർത്തിച്ചു എന്നതിനെ ഒരു ഫീച്ചർ പൂർത്തിയായി എന്ന് AI കരുതുന്നു. എന്നാൽ ഒരു യഥാർത്ഥ സിസ്റ്റത്തിന് ടാസ്ക്കുകളെ ക്യൂകളായി (queues) തിരിക്കേണ്ടതുണ്ട്. വർക്കർമാരെ സ്കെയിൽ ചെയ്യാൻ സാധിക്കുന്നതിനായി ഓരോ സ്ലൈഡും ഓരോ ജോലിയായി നിർമ്മിക്കണം.
Billing: AI ഒരിക്കൽ മാത്രം ക്രെഡിറ്റുകൾ കുറയ്ക്കുകയും നിർത്തുകയും ചെയ്യും. എന്നാൽ ഒരു യഥാർത്ഥ ഉൽപ്പന്നത്തിന് ഒരു state machine ആവശ്യമാണ്. നിങ്ങൾ ക്രെഡിറ്റുകൾ റിസർവ് ചെയ്യുകയും, യഥാർത്ഥ ഉപയോഗത്തിന് അനുസരിച്ച് സെറ്റിൽ ചെയ്യുകയും, പരാജയപ്പെട്ടാൽ റീഫണ്ട് ചെയ്യുകയും വേണം.
Self-review: ബാക്കെൻഡ് ഒരു ടാസ്ക് നിശബ്ദമായി വീണ്ടും ശ്രമിക്കുകയാണെങ്കിൽ (retry), ഉപയോക്താവിന് കാണാൻ കഴിയുന്നത് ഒരു സ്പിന്നിംഗ് ഐക്കൺ മാത്രമായിരിക്കും. നിങ്ങൾ സ്റ്റാറ്റസ് കാണിക്കണം. സിസ്റ്റം പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉപയോക്താവിന് മനസ്സിലാക്കാൻ "checking" അല്ലെങ്കിൽ "redrawing" എന്ന് കാണിക്കേണ്ടതുണ്ട്.
Export: ഒരു സ്ലൈഡ് ബ്രൗസറിൽ കാണാൻ മികച്ചതാകാം, എന്നാൽ ഒരു PPTX ഫയലിൽ അത് തകരാറിലാകാം. വെറുമൊരു ഫയൽ നിർമ്മിക്കുക എന്നതല്ല ആവശ്യം. ആ ഫയൽ വെബ് പ്രിവ്യൂവിനോട് യോജിച്ചതായിരിക്കണം.
ഞാൻ എന്റെ നിർദ്ദേശങ്ങൾ മാറ്റി. AI-ക്ക് ഫീച്ചർ ലിസ്റ്റുകൾ നൽകുന്നത് ഞാൻ നിർത്തി. പകരം acceptance criteria നൽകാൻ ഞാൻ തുടങ്ങി.
AI-യ്ക്കായുള്ള എന്റെ പുതിയ നിയമങ്ങൾ:
- ഒരു ഡെമോയല്ല, പ്രൊഡക്ഷൻ റെഡി ആയ ഒരു SaaS നിർമ്മിക്കുക.
- 100 കോൺകറന്റ് ഉപയോക്താക്കളെ സപ്പോർട്ട് ചെയ്യുക.
- പ്ലാനിംഗിനും സ്ലൈഡ് നിർമ്മാണത്തിനും സ്വതന്ത്രമായ ക്യൂകൾ ഉപയോഗിക്കുക.
- ഓരോ മോഡൽ കോളും ബില്ലിംഗ് സിസ്റ്റവുമായി ബന്ധിപ്പിക്കുക.
- ക്രെഡിറ്റ് ബാലൻസ് അനുസരിച്ച് ടാസ്ക്കുകൾ പൗസ് ചെയ്യുകയും റീസ്യൂം ചെയ്യുകയും ചെയ്യുക.
- ഓരോ സ്ലൈഡിന് ശേഷവും ലേഔട്ട് ചെക്കുകൾ നടത്തുക.
- PPTX എക്സ്പോർട്ട് വിഷ്വൽ പ്രിവ്യൂവിനോട് യോജിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക.
- വിജയത്തിന് വേണ്ടി മാത്രമല്ല, concurrency-ക്കും പരാജയങ്ങൾക്കും വേണ്ടിയുള്ള ടെസ്റ്റുകൾ എഴുതുക.
AI വേഗത്തിൽ കോഡ് എഴുതുന്നു. എന്നാൽ ഒരു കോഡിനെ ഷിപ്പബിൾ (shippable) ആക്കുന്നത് എന്താണെന്ന് അതിന് അറിയില്ല. അത് ഒരു ലോക്കൽ ഡെമോയെ ഒരു പൂർണ്ണ സിസ്റ്റമായി കണക്കാക്കുന്നു.
എഞ്ചിനീയറിംഗ് പരിധികൾ, പരാജയ സാഹചര്യങ്ങൾ, ബിസിനസ്സ് നിയമങ്ങൾ എന്നിവ നിശ്ചയിക്കുക എന്നതാണ് മനുഷ്യന്റെ പങ്ക്.
Harness SaaS അടിസ്ഥാനം നൽകുന്നു. AI ലോജിക് നിർമ്മിക്കുന്നു. ഏറ്റവും കൃത്യമായ ഇൻപുട്ട് നൽകിയാൽ മാത്രം മതി.
നിങ്ങൾ AI ഉപയോഗിച്ച് നിർമ്മിച്ച ഒരു ഉൽപ്പന്നം വിപണിയിലിറക്കിയെങ്കിൽ, "അത് പ്രവർത്തിക്കുന്നു" എന്ന അവസ്ഥയിൽ നിന്നും "അത് ഉപഭോക്താക്കൾക്കായി തയ്യാറാണ്" എന്ന അവസ്ഥയിലേക്കുള്ള ഏറ്റവും വലിയ വിടവ് എന്തായിരുന്നു?
സ്രോതസ്സ്: https://dev.to/velobasex/ai-can-write-the-code-it-cant-tell-you-when-the-product-is-done-4oh6