ഞാൻ കോഡ് എഴുതുന്നത് നിർത്തി. എന്റെ ആപ്പ് 3 ദിവസത്തിനുള്ളിൽ പുറത്തിറങ്ങി.

മൂന്ന് മാസം മുമ്പ്, ഞാൻ ഒരു ഫുൾ-സ്റ്റാക്ക് SaaS ഡാഷ്‌ബോർഡ് നിർമ്മിച്ചു. അതിൽ auth, ഒരു ഡാറ്റാബേസ്, ഒരു REST API, കൂടാതെ ഒരു UI എന്നിവ ഉണ്ടായിരുന്നു.

ഞാൻ ഏകദേശം 200 വരി കോഡ് മാത്രമേ എഴുതിയുള്ളൂ. ബാക്കി എല്ലാം AI ചെയ്തു. AI കോഡ് എഴുതി, അത് പരിശോധിച്ചു, പിഴവുകൾ തിരുത്തിയും.

ആപ്പ് ഇപ്പോൾ ലൈവ് ആണ്. ഉപയോക്താക്കൾ അതിനായി പണം നൽകുന്നു. എനിക്ക് മനസ്സിലാകാത്ത ബഗുകൾ (bugs) പരിഹരിക്കാനായി പുലർച്ചെ 2 മണിക്ക് എഴുന്നേൽക്കേണ്ടി വരുന്നില്ല.

ഇതൊരു അഹങ്കാരമല്ല. ഇതൊരു മുന്നറിയിപ്പാണ്.

ഒരു ഡെവലപ്പറുടെ പങ്ക് അതിവേഗം മാറിക്കൊണ്ടിരിക്കുകയാണ്. ഈ മാറ്റത്തോട് പോരാടുന്നവരല്ല വിജയിക്കുക, മറിച്ച് ഈ മാറ്റത്തെ നയിക്കുന്നവരായിരിക്കും.

AI-യെ ഒരു ഓട്ടോകംപ്ലീറ്റ് (autocomplete) ടൂൾ ആയി മാത്രം കാണുന്നത് നിർത്തുക. അത് പഴയ രീതിയാണ്.

AI-native ഡെവലപ്‌മെന്റ് എന്നത് ഒരു പുതിയ മാനസിക മാതൃകയാണ്. വേഗത്തിൽ കോഡ് എഴുതാൻ വേണ്ടിയല്ല നിങ്ങൾ AI ഉപയോഗിക്കേണ്ടത്. പകരം, ആർക്കിടെക്ചറും (architecture) തീരുമാനങ്ങളും നിങ്ങൾ കൈകാര്യം ചെയ്യുമ്പോൾ ഇംപ്ലിമെന്റേഷൻ (implementation) കാര്യങ്ങൾക്കായി AI ഉപയോഗിക്കുക.

ഈ മാറ്റം ഇപ്രകാരമാണ്:

  • പഴയ രീതി: നിങ്ങൾ കോഡ് എഴുതുന്നു. AI വേഗത്തിൽ ടൈപ്പ് ചെയ്യാൻ നിങ്ങളെ സഹായിക്കുന്നു.
  • പുതിയ രീതി: നിങ്ങൾ "എന്ത്", "എന്തിന്" എന്നിവ നിർവചിക്കുന്നു. "എങ്ങനെ" എന്നത് AI കൈകാര്യം ചെയ്യുന്നു. നിങ്ങൾ അത് പരിശോധിക്കുകയും നിയന്ത്രിക്കുകയും ചെയ്യുന്നു.

എന്റെ ആപ്പ് നിർമ്മിക്കാൻ ഞാൻ ഈ കൃത്യമായ വർക്ക്ഫ്ലോ (workflow) ആണ് ഉപയോഗിച്ചത്:

  1. Next.js, Prisma പോലുള്ള സ്റ്റാൻഡേർഡ് ടൂളുകൾ ഉപയോഗിച്ച് പ്രോജക്റ്റ് സ്കാഫോൾഡ് (scaffold) ചെയ്യുക.
  2. ഡാറ്റാ മോഡൽ ലളിതമായ ഇംഗ്ലീഷിൽ വിവരിക്കുക.
  3. സ്കീമ (schema) നിർമ്മിക്കാൻ AI-യെ അനുവദിക്കുക.
  4. സെർവർ ആക്ഷനുകളും (server actions) ലോജിക്കും നിർമ്മിക്കാൻ വിശദമായ പ്രോംപ്റ്റുകൾ (prompts) ഉപയോഗിക്കുക.

ഞാൻ ഫംഗ്ഷനുകൾ എഴുതിയില്ല. ഞാൻ അവ പരിശോധിച്ചു. ഞാൻ അവ ടെസ്റ്റ് ചെയ്തു. ഞാൻ എറർ മെസ്സേജുകൾ (error messages) ക്രമീകരിച്ചു.

അതാണ് പുതിയ ജോലി.

AI കോഡ് എഴുതുകയാണെങ്കിൽ, നിങ്ങളുടെ മൂല്യം മെറ്റാ-സ്കില്ലുകളിൽ (meta-skills) നിന്നാണ് വരുന്നത്. പാറ്റേണുകൾ (patterns) തിരിച്ചറിയാൻ AI മിടുക്കനാണ്, എന്നാൽ തീരുമാനങ്ങൾ എടുക്കുന്നതിൽ അത് പിന്നിലാണ്.

AI-ക്ക് തീരുമാനിക്കാൻ കഴിയില്ല:

  • നിങ്ങൾക്ക് ഒരു സെർവർ ആക്ഷൻ വേണോ അതോ ഒരു API റൂട്ട് വേണോ എന്ന്.
  • നിങ്ങളുടെ സ്റ്റേറ്റ് (state) എവിടെരിക്കണം എന്ന്.
  • നിങ്ങൾ ഒരു മോണോറെപ്പോ (monorepo) ഉപയോഗിക്കണോ എന്ന്.

ഈ തീരുമാനങ്ങൾക്ക് കോൺടെക്സ്റ്റ് (context) ആവശ്യമാണ്. AI-ക്ക് കോൺടെക്സ്റ്റ് ഇല്ല, എന്നാൽ നിങ്ങൾക്കത് അറിയാം.

ഒരു ജൂനിയർ ഡെവലപ്പറും സീനിയർ ഡെവലപ്പറും തമ്മിലുള്ള വ്യത്യാസം ഇപ്പോൾ പ്രോംപ്റ്റ് കൃത്യതയിലാണ് (prompt precision).

  • ദുർബലമായ പ്രോംപ്റ്റ്: "Write a rate limiter."
  • ശക്തമായ പ്രോംപ്റ്റ്: "Write a Redis-backed rate limiter for a Next.js API route. Limit to 10 requests per minute per IP. Return a 429 error when exceeded. Skip admins. Log events to Prisma."

രണ്ടാമത്തെ പ്രോംപ്റ്റ് ഉപയോഗിച്ചാൽ ഉടൻ തന്നെ പ്രൊഡക്ഷൻ റെഡി (production-ready) ആയ കോഡ് ലഭിക്കും.

നിങ്ങൾ 'സൈലന്റ് ഫെയിലിയറുകൾ' (silent failures) ശ്രദ്ധിക്കണം. AI എഴുതുന്ന കോഡ് പലപ്പോഴും ശരിയാണെന്ന് തോന്നും, എന്നാൽ അതിൽ സൂക്ഷ്മമായ ബഗുകൾ ഉണ്ടാകാം. AI നൽകുന്ന ഔട്ട്‌പുട്ടിനെ ഒരു ജൂനിയർ ഡെവലപ്പറിൽ നിന്നുള്ള പുൾ റിക്വസ്റ്റ് (pull request) പോലെ കാണുക. സംശയത്തോടെ അത് പരിശോധിക്കുക.

കുറഞ്ഞ കോഡ് എഴുതുന്നതിനായി മാത്രം ശ്രമിക്കരുത്. പകരം കോഡിന് ചുറ്റുമുള്ള കഴിവുകൾ വികസിപ്പിക്കാൻ ശ്രമിക്കുക.

ഡെവലപ്പർ A എല്ലാം കൈകൊണ്ട് എഴുതുകയും സാവധാനം മുന്നോട്ട് പോവുകയും ചെയ്യുന്നു. ഡെവലപ്പർ B ചെറിയ കാര്യങ്ങൾക്കായി AI ഉപയോഗിക്കുകയും സിസ്റ്റം ഡിസൈനിൽ (system design) സമയം ചെലവഴിക്കുകയും ചെയ്യുന്നു.

ഡെവലപ്പർ B ആണ് പുതിയ മാനദണ്ഡം.

ഈ ആഴ്ച ഇത് പരീക്ഷിച്ചു നോക്കൂ:

  • കോഡ് എഴുതുന്നതിന് മുമ്പ് ഒരു ഫീച്ചറിനായി പൂർണ്ണമായ ഒരു സ്പെസിഫിക്കേഷൻ തയ്യാറാക്കുക.
  • ആ സ്പെസിഫിക്കേഷൻ നിങ്ങളുടെ പ്രോംപ്റ്റ് ആയി ഉപയോഗിക്കുക.
  • ഒരു സീനിയർ എഞ്ചിനീയർ ഒരു ജൂനിയറെ വിലയിരുത്തുന്നത് പോലെ ഔട്ട്‌പുട്ട് വിലയിരുത്തുക.

ഒരു ഡെവലപ്പർ ആകുന്നത് നിർത്തുക എന്നതല്ല ലക്ഷ്യം. മറിച്ച്, കൂടുതൽ മികച്ച ഒരു ഡെവലപ്പർ ആയി മാറുന്നതാണ്.

സ്രോതസ്സ്: https://dev.to/emma_schmidt_/i-stopped-writing-code-my-app-still-shipped-in-3-days-heres-what-that-tells-us-about-being-a-2ghp

ഓപ്ഷണൽ ലേണിംഗ് കമ്മ്യൂണിറ്റി: https://t.me/GyaanSetuAi