എന്റെ ആദ്യത്തെ വൈബ് കോഡിംഗ് (Vibe Coding) പ്രോജക്റ്റ് എനിക്ക് ഒരു കാര്യം പഠിപ്പിച്ചു: ഞാൻ എന്താണ് നിർമ്മിക്കുന്നതെന്ന് എനിക്ക് തന്നെ അറിയില്ലായിരുന്നു
ഞാൻ മൊബൈൽ എൻജിനീയറിംഗ് ടീമുകളെ നിയന്ത്രിക്കുന്നു. ഞാൻ ആർക്കിടെക്ചർ പരിശോധിക്കുകയും സ്കോപ്പുകളിൽ മാറ്റം വരുത്താൻ നിർദ്ദേശിക്കുകയും ചെയ്യുന്നു. ദശലക്ഷക്കണക്കിന് ഉപയോക്താക്കൾക്കായി ഞാൻ ആപ്പുകൾ പുറത്തിറക്കിയിട്ടുണ്ട്.
AI ഉപയോഗിച്ച് ഒരു സൈഡ് പ്രോജക്റ്റ് തുടങ്ങിയപ്പോൾ, എളുപ്പവഴികൾ തിരഞ്ഞെടുക്കുന്നതായിരിക്കും പ്രയാസകരമായ കാര്യം എന്ന് ഞാൻ കരുതി. പക്ഷേ ഞാൻ തെറ്റിദ്ധരിച്ചു.
എനിക്ക് ഒരു ഷോപ്പിംഗ് ലിസ്റ്റ് ആപ്പ് നിർമ്മിക്കണമെന്നുണ്ടായിരുന്നു. മിക്ക ആപ്പുകളും വെറുമൊരു ലിസ്റ്റ് മാത്രമാണ് നൽകുന്നത്. ആ ലിസ്റ്റ് ഒരു പ്രത്യേക പാത പിന്തുടരുന്നില്ലാത്തതിനാൽ, നിങ്ങൾ കടകളിൽ ഒരു भूलഭുല (maze) പോലെ അലഞ്ഞുതിരിയേണ്ടി വരുന്നു. എന്റെ ആശയം ലളിതമായിരുന്നു: ഐലുകൾ (aisles) അനുസരിച്ച് സാധനങ്ങൾ ക്രമീകരിക്കുന്ന ഒരു ലിസ്റ്റ്. നിങ്ങൾ ഒരിക്കൽ നിങ്ങളുടെ സ്റ്റോർ ലേഔട്ട് നിശ്ചയിച്ചാൽ മതി, ആ ലേഔട്ടിന് അനുസരിച്ച് ആപ്പ് ഓരോ ലിസ്റ്റും ക്രമീകരിക്കും.
ഞാൻ ആ ആശയം AI-യോട് വിവരിച്ചു. അത് വളരെ വേഗത്തിൽ എന്തോ ഒന്ന് നിർമ്മിച്ചു. അത് അത്ഭുതകരമായിരുന്നു.
പിന്നീട് ഞാൻ അത് നോക്കിയപ്പോൾ അത് തെറ്റാണെന്ന് എനിക്ക് മനസ്സിലായി.
കോഡ് ശരിയായിരുന്നു. പ്രശ്നം എന്റെ കാഴ്ചപ്പാടിലായിരുന്നു. എനിക്ക് ഒരു പ്ലാൻ ഉണ്ടായിരുന്നില്ല, മറിച്ച് അവ്യക്തമായ ഒരു ആശയമേ ഉണ്ടായിരുന്നുള്ളൂ.
"ഐലുകൾ അനുസരിച്ച് ക്രമീകരിച്ച ഒരു ഷോപ്പിംഗ് ലിസ്റ്റ്" എന്നത് പൂർണ്ണമായ ഒരു ആശയമല്ല. ഒരു ഉൽപ്പന്നം നിങ്ങളുടെ മുന്നിലൂടെ കടന്നുപോകുമ്പോൾ, പ്രയാസകരമായ ചില ചോദ്യങ്ങൾ ഉയരുന്നു:
• ഒരു സാധനത്തിന് നിശ്ചിത ഐലില്ലെങ്കിൽ എന്ത് സംഭവിക്കും? • വാങ്ങിക്കഴിഞ്ഞ ഒരു സാധനം ലിസ്റ്റിൽ നിന്ന് അപ്രത്യക്ഷമാകണോ അതോ പുതിയൊരു വിഭാഗത്തിലേക്ക് മാറണോ? • വാങ്ങിക്കഴിഞ്ഞ സാധനങ്ങളുടെ വിഭാഗം ഓരോ ഐലിന്റെയും താഴെയായിരിക്കണോ അതോ ലിസ്റ്റിന്റെ അവസാനം ആയിരിക്കണോ? • ഒരു പുതിയ ഉപയോക്താവ് എങ്ങനെയാണ് അവരുടെ സ്റ്റോർ ലേഔട്ട് ക്രമീകരിക്കുക? • ഒഴിഞ്ഞ ഒരു ഐലിന്റെ ഹെഡർ കാണാൻ കഴിയുന്ന രീതിയിൽ നിലനിൽക്കണോ അതോ ചുരുങ്ങണോ?
ഇതിൽ ഒരു തീരുമാനവും ഞാൻ എടുത്തിരുന്നില്ല.
പരമ്പരാഗത രീതിയിൽ ഞാൻ കാര്യങ്ങൾ നിർമ്മിക്കുമ്പോൾ, കോഡിംഗ് ചെയ്യുന്നതിനിടയിൽ തന്നെ ഞാൻ ഈ ചോദ്യങ്ങൾക്ക് ഉത്തരം കണ്ടെത്തുമായിരുന്നു. കോഡ് എഴുതുന്നതിലെ പ്രയാസം എന്നെ സാവധാനത്തിലാക്കിയിരുന്നു. ഇത് വിടവുകൾ നികത്താൻ എന്റെ തലച്ചോറിന് സമയം നൽകി. കോഡ് തന്നെ ഒരു സ്പെസിഫിക്കേഷനായി (specification) മാറി.
വൈബ് കോഡിംഗ് (Vibe coding) ആ പ്രയാസത്തെ ഇല്ലാതാക്കുന്നു. തീരുമാനങ്ങൾ നടപ്പിലാക്കുന്ന ഘട്ടത്തിൽ (implementation) ഒളിഞ്ഞിരിക്കാൻ കഴിയാത്തവിധം AI വളരെ വേഗത്തിൽ പ്രവർത്തിക്കുന്നു. നിങ്ങൾ അവശേഷിപ്പിക്കുന്ന ഓരോ വിടവിലും AI സ്വന്തം അനുമാനങ്ങൾ (assumptions) ചേർക്കുന്നു. നിങ്ങൾ വിശദാംശങ്ങൾ ചിന്തിച്ചുതീർക്കുന്നതിന് മുമ്പ് തന്നെ അത് ഫലം കാണിച്ചുതരുന്നു.
AI-ക്ക് നല്ല കോഡ് എഴുതാൻ കഴിയുമോ എന്ന് ആളുകൾ തർക്കിക്കുന്നു. അത് തെറ്റായ ചോദ്യമാണ്.
യഥാർത്ഥ ചോദ്യം ഇതാണ്: നിങ്ങൾക്ക് എന്താണ് നിർമ്മിക്കേണ്ടതെന്ന് നിങ്ങൾക്കറിയാമോ?
തുടങ്ങുന്നതിന് മുമ്പ് ഓരോ തീരുമാനത്തിനും നിങ്ങൾക്ക് ഉത്തരങ്ങൾ ആവശ്യമാണ്. എഡ്ജ് കേസുകൾ (edge cases) എങ്ങനെ പ്രവർത്തിക്കുമെന്ന് നിങ്ങൾ അറിയണം. ആ അനുഭവം (experience) എങ്ങനെയായിരിക്കുമെന്ന് നിങ്ങൾ അറിയണം.
ഇതൊരു പ്രോഡക്റ്റ് മാനേജ്മെന്റ് (product management) നൈപുണ്യമാണ്. ഒരു നിർമ്മാതാവ് തുടങ്ങുന്നതിന് മുമ്പ് ഒരു അനുഭവം കൃത്യമായി വിവരിക്കാനുള്ള കഴിവ്. എനിക്ക് ഈ കഴിവുണ്ടെന്ന് ഞാൻ കരുതിയിരുന്നു. എന്നാൽ ഞാൻ വെറും ഇംപ്ലിമെന്റേഷന് പിന്നിൽ ഒളിച്ചിരിക്കുകയായിരുന്നു എന്ന് വൈബ് കോഡിംഗ് തെളിയിച്ചു.
ഞാൻ നിർമ്മിച്ച ആപ്പിന്റെ പേര് By Aisle എന്നാണ്. അത് പൂർത്തിയാക്കാൻ ഒരുപാട് സമയമെടുത്തു. കോഡ് പ്രയാസകരമായതുകൊണ്ടല്ല അത്. മറിച്ച്, എന്റെ ഉൽപ്പന്നത്തെക്കുറിച്ച് ആദ്യം എനിക്ക് വ്യക്തത വരുത്തേണ്ടി വന്നതുകൊണ്ടാണ്.
നിങ്ങൾ നിർമ്മാണത്തിനായി AI ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, ഇത് ചെയ്യുക: AI ഉപയോഗിച്ചു തുടങ്ങുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഉൽപ്പന്നത്തിന് ആവശ്യമായ ഓരോ തീരുമാനവും എഴുതിത്തീർക്കാൻ ഒരു മണിക്കൂർ ചെലവഴിക്കുക. അപ്പോൾ നിങ്ങൾക്ക് ഒരുപാട് വിടവുകൾ കണ്ടെത്താൻ കഴിയും.
Optional learning community: https://t.me/GyaanSetuAi
