ഹാക്കത്തോണുകൾ ജഡ്ജ് ചെയ്തപ്പോൾ ഞാൻ പഠിച്ച കാര്യങ്ങൾ

അടുത്തിടെ ഞാൻ നിരവധി AI, ഡെവലപ്പർ ഹാക്കത്തോൺ പ്രോജക്റ്റുകൾ വിലയിരുത്തിയിട്ടുണ്ട്.

നിർമ്മാണം (building) എന്നതിൽ നിന്നും ജഡ്ജിംഗ് തികച്ചും വ്യത്യസ്തമാണ്. നിങ്ങൾ ഒരു പ്രോജക്റ്റ് നിർമ്മിക്കുമ്പോൾ നിങ്ങളുടെ കോഡിൽ മാത്രമാണ് ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്. എന്നാൽ നിങ്ങൾ ജഡ്ജ് ചെയ്യുമ്പോൾ, പല നിർമ്മാതാക്കളിലുടനീളമുള്ള പൊതുവായ രീതികൾ (patterns) നിങ്ങൾക്ക് കാണാൻ സാധിക്കും.

മനോഹരമായ ഇന്റർഫേസുകൾ ഉണ്ടെങ്കിലും സാങ്കേതികമായ ആഴം കുറഞ്ഞ പ്രോജക്റ്റുകൾ ഞാൻ കണ്ടു. മികച്ച എഞ്ചിനീയറിംഗ് ഉണ്ടെങ്കിലും ഡോക്യുമെന്റേഷൻ മോശമായവയും ഞാൻ കണ്ടു. യഥാർത്ഥ പ്രശ്നങ്ങൾക്ക് പരിഹാരം കാണുന്ന ലളിതമായ ആശയങ്ങളും ഞാൻ കണ്ടു.

മികച്ച പ്രോജക്റ്റുകൾ ഒരു പ്രത്യേക രീതി പിന്തുടരുന്നുണ്ടായിരുന്നു. അവ ഇവ കാണിച്ചുതരുന്നു:

  • അവർ പരിഹരിച്ച പ്രശ്നം.
  • അതിനുമുമ്പ് നിലവിലുണ്ടായിരുന്നവ.
  • അവർ അത് എങ്ങനെ മെച്ചപ്പെടുത്തി.
  • അവരുടെ സാങ്കേതികമായ തിരഞ്ഞെടുപ്പുകൾ.
  • ഒരു ഉപയോക്താവിന് ഇപ്പോൾ എന്തൊക്കെ ചെയ്യാൻ കഴിയും.

രസകരമായതും മികച്ചതുമായ പ്രോജക്റ്റുകൾ തമ്മിലുള്ള വ്യത്യാസം അവയുടെ പ്രവർത്തനത്തിലെ വ്യക്തതയാണ് (execution clarity).

ഫിനിഷ്-സ്റ്റൈൽ (finish-style) ചലഞ്ചുകളിൽ, മികച്ച പ്രോജക്റ്റുകൾ 'മുൻപും ശേഷവും' (before-and-after) എന്ന വ്യക്തമായ മാറ്റം കാണിക്കുന്നു. മികച്ച പ്രോജക്റ്റുകളിൽ ഇവ ഉൾപ്പെടുന്നു:

  • തകരാറിലായ വർക്ക്ഫ്ലോകൾ പരിഹരിച്ചു.
  • പബ്ലിക്കായി ഡിപ്ലോയ് ചെയ്ത ആപ്പുകൾ.
  • മെച്ചപ്പെട്ട ഡോക്യുമെന്റേഷൻ.
  • ടെസ്റ്റുകൾ ഉൾപ്പെടുത്തി.
  • സുരക്ഷാ വീഴ്ചകൾ കുറച്ചു.
  • ഓൺബോർഡിംഗ് മെച്ചപ്പെടുത്തി.
  • ഉയർന്ന പ്രൊഡക്ഷൻ റെഡിനസ് (production readiness).

പ്രോജക്റ്റ് പുറത്തിറക്കുന്നത് (Shipping) പ്രധാനമാണ്.

വിശ്വാസ്യത വളർത്താൻ മികച്ച എഞ്ചിനീയറിംഗിനൊപ്പം നല്ല ഡോക്യുമെന്റേഷനും ആവശ്യമാണ്. വ്യക്തമായ README, ആർക്കിടെക്ചർ ഡയഗ്രമുകൾ, ഡെമോ വീഡിയോകൾ എന്നിവ നിങ്ങളുടെ ജോലി മറ്റുള്ളവർക്ക് മനസ്സിലാക്കാൻ സഹായിക്കുന്നു.

മിക്ക ഡെവലപ്പർമാരും GitHub Copilot പോലുള്ള AI ടൂളുകൾ ഉപയോഗിക്കുന്നുണ്ട്. മികച്ച ടീമുകൾ ഇക്കാര്യത്തിൽ സത്യസന്ധത പുലർത്തുന്നു. ബോയ്‌ലർപ്ലേറ്റ് (boilerplate), ഡീബഗ്ഗിംഗ് (debugging), അല്ലെങ്കിൽ ടെസ്റ്റിംഗ് എന്നിവയിൽ AI എങ്ങനെ സഹായിച്ചു എന്ന് അവർ വിശദീകരിക്കുന്നു. ഇത് അവരുടെ പക്വതയെ കാണിക്കുന്നു.

മികച്ച പ്രോജക്റ്റുകൾ എഞ്ചിനീയറിംഗ് ജഡ്ജ്‌മെന്റിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു:

  • സുരക്ഷ (Security).
  • എറർ ഹാൻഡ്‌ലിംഗ് (Error handling).
  • ഒബ്സർവബിലിറ്റി (Observability).
  • സ്വകാര്യത (Privacy).
  • വിശ്വാസ്യത (Reliability).
  • മെയിന്റനബിലിറ്റി (Maintainability).

ഈ വിശദാംശങ്ങളാണ് ഒരു ഡെമോയെ ഒരു ഉൽപ്പന്നമാക്കി മാറ്റുന്നത്. തെളിവുകളില്ലാത്ത വലിയൊരു ആശയത്തേക്കാൾ മികച്ചതാണ് പ്രവർത്തിക്കുന്ന ഡെമോയുള്ള ഒരു ചെറിയ പ്രോജക്റ്റ്.

വ്യക്തതയും പൂർണ്ണതയും പ്രധാനമാണ്.

സോഫ്റ്റ്‌വെയർ നിർമ്മാണം എന്നത് കോഡ് എഴുതുന്നതിനേക്കാൾ ഉപരിയാണ്. നിങ്ങൾ ഒരു പ്രശ്നം പരിഹരിക്കണം, ആ പരിഹാരം വിശദീകരിക്കണം, കൂടാതെ മറ്റുള്ളവർക്ക് വിശ്വസിക്കത്തക്ക രീതിയിൽ ആ ജോലി പൂർത്തിയാക്കുകയും വേണം. അതാണ് യഥാർത്ഥ എഞ്ചിനീയറിംഗ് പക്വത.

Source: https://dev.to/amising6/what-i-learned-after-reviewing-many-ai-and-developer-projects-as-a-hackathon-judge-2g06

Optional learning community: https://t.me/GyaanSetuAi