હેડલાઇન્સ સતત કહેતી રહે છે કે AI સોફ્ટવેર ડેવલપર્સને બિનજરૂરી બનાવી દેશે. હું તેમાં માનતો નથી. સાચું જોખમ એ નથી કે મશીનો એન્જિનિયરિંગ પર કબજો કરી લેશે. જોખમ એ છે કે એન્જિનિયરો વિચારવાનું અઘરું કામ કરવાનું બંધ કરી દેશે.
સોફ્ટવેર ક્યારેય માત્ર સિન્ટેક્સ (syntax) ટાઈપ કરવા વિશે નહોતું. તે હંમેશા તમારા મગજમાં જટિલતાને પકડી રાખવા, નિષ્ફળતાના પ્રકારો (failure modes) સમજવા અને જ્યારે કોઈ વિકલ્પ સંપૂર્ણ ન હોય ત્યારે સમજદારીપૂર્વક નિર્ણયો (trade-offs) લેવા વિશે હતું. AI એ આપણે કોડ બનાવવાની ઝડપ બદલી નાખી છે, પરંતુ તે માનવીય હસ્તક્ષેપ (humans in the loop) ની જરૂરિયાતને બદલી શક્યું નથી. જો કંઈ બદલાયું હોય તો તે એ છે કે સ્પષ્ટ વિચારવાની ક્ષમતા વધુ મૂલ્યવાન અને વધુ દુર્લભ બની ગઈ છે.
પ્રથમ ડ્રાફ્ટ એ એન્જિનિયરિંગ નથી
હું જોઈ રહ્યો છું કે મોટી સંખ્યામાં જુનિયર ડેવલપર્સ ChatGPT અથવા Claude ને બાજુમાં બેઠેલા સિનિયર એન્જિનિયર તરીકે ગણવા લાગ્યા છે. તેઓ ટિકિટનું વર્ણન પેસ્ટ કરે છે, પ્રતિસાદ કોપી કરે છે, ટેસ્ટ રન કરે છે અને કમિટ (commit) કરી દે છે. જો તે કમ્પાઈલ (compile) થઈ જાય, તો કાર્ય પૂર્ણ ગણાય છે. આ પ્રક્રિયા ઝડપી, સરળ અને જોખમી છે.
AI નો ઉપયોગ કરવો એ સમસ્યા નથી. હું તેનો ઉપયોગ કરું છું. હું જે સૌથી વધુ ઉત્પાદક એન્જિનિયરોને જાણું છું તેઓ પણ તેનો ઉપયોગ કરે છે. સમસ્યા ત્યારે શરૂ થાય છે જ્યારે AI રૂમમાં એકમાત્ર એન્જિનિયર બની જાય છે. માત્ર એટલા માટે પ્રથમ ઉકેલ સ્વીકારી લેવો કે તે કામ કરે છે, તે એન્જિનિયરિંગ નથી. તે તમારા વપરાશકર્તાઓ, તમારા વ્યવસાયિક મર્યાદાઓ અથવા છેલ્લી વાર તમારું સ્ટેક (stack) રાત્રે 2 વાગ્યે ક્યારે તૂટ્યું હતું તે સમજતા ન હોય તેવા મોડેલને તમારા નિર્ણય લેવાની ક્ષમતા સોંપી દેવા સમાન છે.
લાર્જ લેંગ્વેજ મોડલ્સ (Large language models) અત્યંત આત્મવિશ્વાસ સાથે જવાબો આપે છે, ભલે તે સંપૂર્ણપણે ખોટા હોય. એક એન્જિનિયરે AI ને સ્કેલેબલ આર્કિટેક્ચર ડિઝાઇન કરવા કહ્યું. મોડેલે એક વિગતવાર અને અધિકૃત પ્રસ્તાવ આપ્યો જે સંપૂર્ણપણે એવા ફીચર પર આધારિત હતો જે વાસ્તવિક પ્રોડક્ટમાં અસ્તિત્વમાં જ નહોતું. તે જોવામાં સાચું લાગતું હતું. તે આંતરિક રીતે સુસંગત હતું. પરંતુ તે નકામું હતું. જોખમ માત્ર એ નથી કે AI ભ્રમ (hallucinate) પેદા કરે છે. જોખમ એ છે કે હવે ઘણા લોકો તે ભ્રમ પર વિશ્વાસ કરે છે કારણ કે તેમની પાસે જૂઠ પકડવા માટે જરૂરી સંદર્ભ (context) હોતો નથી.
તમે ઘર્ષણ (Friction) માંથી શીખો છો
જ્યારે હું વિચારું છું કે મને એક જુનિયર ડેવલપરથી સિસ્ટમ સંભાળી શકે તેવા વ્યક્તિમાં કોણે બદલ્યો, ત્યારે મને મેં ગોખેલા સિન્ટેક્સ યાદ નથી આવતા. મને આઉટેજ (outages) યાદ આવે છે. મને તે ધીમી ક્વેરીઝ (slow queries) યાદ આવે છે જેને મારે જાતે ટ્રેસ કરવી પડી હતી, તે રેસ કન્ડિશન્સ (race conditions) જે માત્ર પ્રોડક્શન લોડ હેઠળ જ દેખાતી હતી, અને તે ડિપ્લોયમેન્ટ્સ જે મારા લોકલ એન્વાયરમેન્ટના વાસ્તવિક વિશ્વ જેવા ન હોવાને કારણે તૂટી ગયા હતા.
ડીબગિંગ (Debugging) એ એ જગ્યા છે જ્યાં સાચું શિક્ષણ મળે છે. જ્યારે તમે કોડને મેન્યુઅલી સ્ટેપ-બાય-સ્ટેપ તપાસો છો, ત્યારે તમે જુઓ છો કે સિસ્ટમ્સ ખરેખર શા માટે નિષ્ફળ જાય છે. તમે શોધી કાઢો છો કે બોટલનેક (bottlenecks) ક્યાં આવે છે. તમે શીખો છો કે જ્યારે તમે દસ વપરાશકર્તાઓ ધરાવતા ડેમોમાંથી દસ હજાર કન્કરન્ટ રિક્વેસ્ટ હેન્ડલ કરતી પ્રોડક્શન સિસ્ટમ પર જાઓ છો ત્યારે આર્કિટેક્ચર કેવી રીતે વર્તે છે. તમે તમારા અનુભવથી સમજી જાઓ છો કે પ્રોડક્શન એક સુંદર રીતે સ્ક્રિપ્ટ કરેલા ડેમોથી કેવી રીતે અલગ છે.
આમાંથી કોઈ પણ જ્ઞાન જનરેટ થયેલા જવાબો સ્વીકારવાથી મળતું નથી. તે સમસ્યા સાથે લડવાથી મળે છે. જો AI દરેક સંઘર્ષને દૂર કરી દેશે, જો તે કોડ લખશે, બગ્સ સુધારશે અને નિષ્ફળતાઓના કારણો સમજાવી દેશે, તો ડેવલપર્સની આગામી પેઢી તેમની સિનિયોરિટી કેવી રીતે મેળવશે? અનુભવ એ કોઈ ડાઉનલોડ કરી શકાય તેવું પ્રમાણપત્ર નથી. તે પ્રોડક્શનની ઘટનાઓ અને નિષ્ફળ ડિપ્લોયમેન્ટ્સમાંથી બનેલા તમારા અનુભવોના નિશાન છે. જો તમે ઘર્ષણ (friction) દૂર કરી દેશો, તો તમે વિકાસ પણ દૂર કરી દેશો.
નિર્ણય લેવાની ક્ષમતા જનરેશન કરતા વધુ મહત્વની છે
થોડા સમય માટે, ઉદ્યોગે 'પ્રોમ્પ્ટ એન્જિનિયરિંગ' ને રિઝ્યુમ પર લખવા માટેની નવી કુશળતા તરીકે જોયું. પરંતુ તે મૂળ વાતથી સાવ દૂર હતું. AI-સભર વાતાવરણમાં સૌથી મૂલ્યવાન ક્ષમતા વિકલ્પો જનરેટ કરવાની નથી, પરંતુ કયા સૂચનોને નકારવા તે જાણવાની છે.
હું જે શ્રેષ્ઠ એન્જિનિયરો સાથે કામ કરું છું તેઓ સૌથી વધુ પ્રોમ્પ્ટ્સ લખતા નથી. તેઓ સૌથી અઘરા પ્રશ્નો પૂછે છે. તેઓ જાણે છે કે ક્યારે રિફેક્ટરિંગ (refactor) કરવાથી છુપાયેલું ડિપેન્ડન્સી (dependency) ઊભું થાય છે. તેઓ ઓળખી લે છે કે ક્યારે જનરેટ કરેલ ટેસ્ટ માત્ર સામાન્ય પાથ (happy path) ને કવર કરે છે પરંતુ એવા એજ કેસ (edge case) ને અવગણે છે જે ગ્રાહકનો ડેટા બગાડી શકે છે. તેઓ સંપૂર્ણ રીતે માન્ય કોડ જોઈને પણ કહી શકે છે, "આ કોડ સાચો છે, પરંતુ આર્કિટેક્ચર ખોટું છે."
આ છેલ્લું વાક્ય બે ખૂબ જ અલગ સંસ્કૃતિઓ વચ્ચેની રેખા છે. AI-આસિસ્ટેડ એન્જિનિયરિંગનો અર્થ એ છે કે તમે તમારા મગજ દ્વારા નિર્ણયો લેતી વખતે સ્કેફોલ્ડિંગ (scaffolding) બનાવવા, પેટર્ન શોધવા અથવા બોઈલરપ્લેટ (boilerplate) ઓટોમેટ કરવા માટે મશીનનો ઉપયોગ કરો છો. AI-ડિપેન્ડન્ટ એન્જિનિયરિંગનો અર્થ એ છે કે તમે મશીનને ડ્રાઇવ કરવા માટે વિશ્વાસ કરો છો. ઘણા સંગઠનો શાંતિથી નિર્ભરતા તરફ વળી રહ્યા છે કારણ કે ટૂંકા ગાળામાં તે ઝડપી લાગે છે. ઝડપી હોવું એ સાચું હોવા સમાન નથી.
એ કામ જે હજુ પણ માનવીઓનું છે
AI ડેવલપમેન્ટ લાઇફસાયકલના લગભગ દરેક ભાગને ઝડપી બનાવી શકે છે, તેમ છતાં એવી કેટલીક મુખ્ય પદ્ધતિઓ છે જે મક્કમપણે માનવીય જ રહેવી જોઈએ. સિસ્ટમ ડિઝાઇન માટે પરસ્પર વિરોધાભાસી મર્યાદાઓને સંતુલિત રાખવી જરૂરી છે: ખર્ચ, લેટન્સી, વિશ્વસનીયતા અને ભવિષ્યની જાળવણીક્ષમતા. આર્કિટેક્ચર રિવ્યુ સંસ્થાકીય સ્મૃતિ અને બીજા ક્રમના અસરોનો અંદાજ લગાવવાની ક્ષમતા પર આધારિત છે. મેન્ટરશિપ માટે એવા વ્યક્તિની જરૂર હોય છે જેણે ખરેખર એવા નિષ્ફળતાના મોડ્સનો સામનો કર્યો હોય જેના વિશે તે તમને ચેતવણી આપી રહ્યા છે. પ્રોડક્ટની ઊંડી સમજ વપરાશકર્તાઓ સાથે વાત કરવાથી અને વાસ્તવિક પરિસ્થિતિમાં તેમના વર્તનને નિરીક્ષણ કરવાથી મળે છે, ટ્રેનિંગ ડેટા વાંચવાથી નહીં.
એન્જિનિયરિંગ જજમેન્ટ એ એવા અનુભવોનો સરવાળો છે. તે એ શાંત અવાજ છે જે તમને કહે છે કે માઈગ્રેશન શુક્રવારે બપોરે શિપ કરવું ખૂબ જોખમી છે, ભલે કોડ રિવ્યુ પાસ થઈ ગયો હોય. તે એ અંતઃપ્રેરણા છે કે અત્યારે કરવામાં આવેલું પરફોર્મન્સ ઓપ્ટિમાઇઝેશન પાછળથી સુરક્ષામાં ખામી ઊભી કરી શકે છે. LLM પાસે કોઈ અંતઃપ્રેરણા હોતી નથી. તેની પાસે પેટર્ન હોય છે. પેટર્ન ઉપયોગી છે, પરંતુ તે જજમેન્ટ નથી.
અત્યારે હાયરિંગ કરી રહેલી કંપનીઓએ માત્ર AI ટૂલ્સ વાપરવામાં કુશળ હોય તેવા લોકો માટે ઓપ્ટિમાઇઝ કરવાનું બંધ કરવું જોઈએ. એવા લોકોને હાયર કરો જે AI ને પડકારી શકે. એવા ઉમેદવારો શોધો જે થોભશે, જનરેટ થયેલ આઉટપુટને ધ્યાનથી વાંચશે અને તેઓ તેની સાથે અસંમત કેમ છે તે સમજાવશે. એ એવા એન્જિનિયરો છે જે તમારી સિસ્ટમને સ્વસ્થ રાખશે જ્યારે જનરેટ થયેલ કોડ પ્રોડક્શનની જટિલ વાસ્તવિકતાનો સામનો કરશે.
હોકાયંત્ર વગરનું પ્રવેગણ
AI ને એક્સિલરેટર પેડલ તરીકે વિચારો. એક કારમાં જે...
