హెడ్‌లైన్స్ అన్నీ AI సాఫ్ట్‌వేర్ డెవలపర్లను పనికిరాకుండా (obsolete) చేస్తుంది అని చెబుతూనే ఉన్నాయి. నేను దానిని నమ్మను. యంత్రాలు ఇంజనీరింగ్‌ను స్వాధీనం చేసుకోవడం నిజమైన ప్రమాదం కాదు. ఇంజనీర్లు ఆలోచించే కష్టమైన పనిని చేయడం మానేయడమే అసలైన ప్రమాదం.

సాఫ్ట్‌వేర్ అంటే కేవలం సింటాక్స్ (syntax) టైప్ చేయడం మాత్రమే కాదు. అది ఎప్పుడూ మీ మెదడులో సంక్లిష్టతను (complexity) ఉంచుకోవడం, ఫెయిల్యూర్ మోడ్స్‌ను (failure modes) అర్థం చేసుకోవడం మరియు ఏ ఆప్షన్ కూడా పరిపూర్ణంగా లేనప్పుడు త్యాగాలను (trade-offs) చేయడం గురించి. AI మనం కోడ్‌ను ఉత్పత్తి చేసే వేగాన్ని మార్చింది, కానీ లూప్‌లో మనుషుల అవసరాన్ని మార్చలేదు. నిజానికి, ఇది స్పష్టమైన ఆలోచనను మరింత విలువైనదిగా మరియు అరుదైనదిగా మార్చింది.

మొదటి డ్రాఫ్ట్ అంటే ఇంజనీరింగ్ కాదు

జూనియర్ డెవలపర్లు ChatGPT లేదా Claudeని పక్కన కూర్చున్న సీనియర్ ఇంజనీర్‌లా భావిస్తున్న సంఖ్య పెరుగుతున్నట్లు నేను గమనిస్తున్నాను. వారు ఒక టికెట్ వివరణను పేస్ట్ చేస్తారు, సమాధానాన్ని కాపీ చేస్తారు, టెస్ట్‌లను రన్ చేస్తారు మరియు కమిట్ చేస్తారు. అది కంపైల్ (compile) అయితే, పని పూర్తయినట్లే. ఈ ప్రక్రియ వేగంగా, ఎటువంటి అడ్డంకులు లేకుండా జరుగుతుంది, కానీ ఇది ప్రమాదకరం.

AIని ఉపయోగించడం సమస్య కాదు. నేను కూడా ఉపయోగిస్తాను. నాకు తెలిసిన అత్యంత ఉత్పాదక (productive) ఇంజనీర్లు కూడా దానిని ఉపయోగిస్తారు. కానీ AI మాత్రమే ఆ గదిలో ఉన్న ఏకైక ఇంజనీర్ అయినప్పుడు సమస్య మొదలవుతుంది. పని చేస్తుంది కాబట్టి మొదటి పరిష్కారాన్ని అంగీకరించడం ఇంజనీరింగ్ కాదు. అది మీ వినియోగదారులు, మీ వ్యాపార పరిమితులు లేదా మీ స్టాక్ (stack) చివరిసారిగా 2 AM కి ఎందుకు విఫలమైందో తెలియని ఒక మోడల్‌కు మీ విచక్షణను (judgment) అప్పగించడం వంటిది.

లార్జ్ లాంగ్వేజ్ మోడల్స్ (Large language models) పూర్తిగా తప్పుగా ఉన్నప్పుడు కూడా ఎటువంటి సందేహం లేకుండా సమాధానాలను ఇస్తాయి. ఒక ఇంజనీర్ స్కేలబుల్ ఆర్కిటెక్చర్‌ను (scalable architecture) రూపొందించమని AIని అడిగారు. ఆ మోడల్ వాస్తవానికి ఉత్పత్తిలో లేని ఒక ఫీచర్ చుట్టూ మొత్తం వివరణాత్మకమైన, అధికారికమైన ప్రతిపాదనను అందించింది. అది చూడటానికి సరిగ్గా ఉంది. అంతర్గతంగా స్థిరంగా ఉంది. కానీ అది పనికిరాదు. ప్రమాదం కేవలం AI భ్రమలను (hallucinations) సృష్టించడం మాత్రమే కాదు. ఆ భ్రమలను గుర్తించే సందర్భం (context) లేకపోవడం వల్ల చాలా మంది వాటిని నమ్మడం కూడా ప్రమాదమే.

మీరు ఘర్షణ (Friction) నుండి నేర్చుకుంటారు

నేను ఒక జూనియర్ డెవలపర్ నుండి ఒక సిస్టమ్‌ను స్వయంగా నిర్వహించగలిగే వ్యక్తిగా ఎలా మారాను అని ఆలోచించినప్పుడు, నాకు గుర్తుకు వచ్చేది నేను నేర్చుకున్న సింటాక్స్ కాదు. నాకు గుర్తుకు వచ్చేది సిస్టమ్ ఆగిపోయిన సమయాలు (outages). నేను స్వయంగా ట్రాస్ (trace) చేయాల్సి వచ్చిన స్లో క్వెరీస్ (slow queries), ప్రొడక్షన్ లోడ్ ఉన్నప్పుడు మాత్రమే కనిపించే రేస్ కండిషన్స్ (race conditions), మరియు నా లోకల్ ఎన్విరాన్మెంట్ (local environment) వాస్తవ ప్రపంచంలా లేకపోవడం వల్ల విఫలమైన డిప్లాయ్‌మెంట్లు నాకు గుర్తున్నాయి.

డీబగ్గింగ్ (Debugging) అనేది నేర్చుకోవడానికి సరైన సమయం. మీరు కోడ్‌ను మాన్యువల్‌గా స్టెప్ బై స్టెప్ పరిశీలించినప్పుడు, సిస్టమ్‌లు ఎందుకు విఫలమవుతాయో మీకు అర్థమవుతుంది. బాటిల్‌నెక్స్ (bottlenecks) ఎక్కడ వస్తాయో మీరు కనుగొంటారు. పది మంది వినియోగదారులతో ఉన్న డెమో నుండి పది వేల కన్కరెంట్ రిక్వెస్ట్‌లను (concurrent requests) హ్యాండిల్ చేసే ప్రొడక్షన్ సిస్టమ్‌కు మారినప్పుడు ఆర్కిటెక్చర్ ఎలా ప్రవర్తిస్తుందో మీరు నేర్చుకుంటారు. చక్కగా స్క్రిప్ట్ చేసిన డెమోకు, ప్రొడక్షన్‌కు మధ్య తేడా ఏమిటో మీరు లోతుగా అర్థం చేసుకుంటారు.

ఆ జ్ఞానం ఏదీ జనరేట్ చేయబడిన సమాధానం నుండి రాదు. అది సమస్యతో పోరాడటం ద్వారా వస్తుంది. AI ప్రతి పోరాటాన్ని తొలగిస్తే, అది కోడ్‌ను రాసి, బగ్‌లను సరిచేసి, వైఫల్యాలను వివరించివేస్తే, తదుపరి తరం డెవలపర్లు తమ సీనియారిటీని ఎలా సంపాదిస్తారు? అనుభవం అనేది మీరు డౌన్‌లోడ్ చేసుకునే సర్టిఫికేట్ కాదు. అది ప్రొడక్షన్ ఇన్సిడెంట్లు (production incidents) మరియు విఫలమైన డిప్లాయ్‌మెంట్ల నుండి మీరు పొందే పాఠం. ఘర్షణను (friction) తొలగిస్తే, మీరు ఎదుగుదలను కూడా తొలగించినట్లే.

జనరేషన్ కంటే విచక్షణ (Judgment) గొప్పది

కొంతకాలం పాటు, పరిశ్రమ 'ప్రాంప్ట్ ఇంజనీరింగ్' (prompt engineering)ను రెజ్యూమ్ లో చేర్చాల్సిన కొత్త నైపుణ్యంగా పరిగణించింది. కానీ అది అసలు విషయాన్ని పూర్తిగా విస్మరించింది. AIతో నిండిన వాతావరణంలో అత్యంత విలువైన సామర్థ్యం ఆప్షన్లను సృష్టించడం కాదు. ఏ సూచనలను తిరస్కరించాలో తెలియడమే అసలైన నైపుణ్యం.

నేను కలిసి పనిచేసే ఉత్తమ ఇంజనీర్లు ఎక్కువ ప్రాంప్ట్‌లను రాయరు. వారు కష్టమైన ప్రశ్నలను అడుగుతారు. ఒక రీఫ్యాక్టర్ (refactor) వల్ల ఎక్కడ దాగి ఉన్న డిపెండెన్సీ (dependency) వస్తుందో వారికి తెలుసు. జనరేట్ చేయబడిన టెస్ట్ 'హ్యాపీ పాత్' (happy path)ను కవర్ చేసినప్పటికీ, కస్టమర్ డేటాను పాడు చేసే 'ఎడ్జ్ కేస్' (edge case)ను విస్మరిస్తుందని వారు గుర్తిస్తారు. వారు ఖచ్చితమైన కోడ్‌ను చూసి కూడా, "ఈ కోడ్ సరైనదే, కానీ ఆర్కిటెక్చర్ తప్పు" అని చెప్పగలరు.

ఆ చివరి వాక్యం రెండు వేర్వేరు సంస్కృతుల మధ్య ఉన్న విభజన రేఖ. AI-అసిస్టెడ్ ఇంజనీరింగ్ (AI-assisted engineering) అంటే మీ మెదడు నిర్ణయాలు తీసుకుంటుండగా, స్క్యాఫోల్డింగ్ (scaffolding) రూపొందించడానికి, ప్యాటర్న్‌లను అన్వేషించడానికి లేదా బోయిలర్‌ప్లేట్ (boilerplate) కోడ్‌ను ఆటోమేట్ చేయడానికి మీరు యంత్రాన్ని ఉపయోగించడం. AI-డిపెండెంట్ ఇంజనీరింగ్ (AI-dependent engineering) అంటే యంత్రమే నడిపిస్తుందని మీరు నమ్మడం. చాలా సంస్థలు స్వల్పకాలంలో వేగంగా అనిపిస్తుంది కాబట్టి నిశ్శబ్దంగా డిపెండెన్సీ వైపు మళ్లుతున్నాయి. వేగంగా ఉండటం అంటే సరిగ్గా ఉండటం అని కాదు.

ఇప్పటికీ మనుషులకే చెందుతున్న పని

AI డెవలప్‌మెంట్ లైఫ్‌సైకిల్‌లోని దాదాపు ప్రతి భాగాన్ని వేగవంతం చేయగలదు, అయినప్పటికీ కొన్ని ముఖ్యమైన పద్ధతులు ఖచ్చితంగా మానవ నియంత్రణలోనే ఉండాలి. సిస్టమ్ డిజైన్ అనేది ఖర్చు, లేటెన్సీ (latency), విశ్వసనీయత మరియు భవిష్యత్తు నిర్వహణ సామర్థ్యం వంటి పరస్పర విరుద్ధమైన పరిమితులను సమతుల్యం చేయడాన్ని కోరుతుంది. ఆర్కిటెక్చర్ రివ్యూలు సంస్థాగత జ్ఞాపకశక్తి (institutional memory) మరియు ద్వితీయ స్థాయి ప్రభావాలను (second-order effects) అంచనా వేయగల సామర్థ్యంపై ఆధారపడి ఉంటాయి. మెంటర్‌షిప్ కోసం, మీరు హెచ్చరిస్తున్న వైఫల్యాల నుండి నిజంగా అనుభవం పొందిన వ్యక్తి అవసరం. లోతైన ప్రొడక్ట్ అవగాహన అనేది ట్రైనింగ్ డేటాను చదవడం ద్వారా కాకుండా, వినియోగదారులతో మాట్లాడటం మరియు వాస్తవ పరిస్థితుల్లో వారి ప్రవర్తనను గమనించడం ద్వారా వస్తుంది.

ఇంజనీరింగ్ జడ్జిమెంట్ (Engineering judgment) అనేది ఆ అనుభవాల సమ్మేళనం. కోడ్ రివ్యూ పాస్ అయినప్పటికీ, ఒక మైగ్రేషన్ శుక్రవారం మధ్యాహ్నం చేయడం చాలా ప్రమాదకరమని చెప్పే ఆ నిశ్శబ్ద స్వరం ఇది. ఇప్పుడు చేసే పెర్ఫార్మెన్స్ ఆప్టిమైజేషన్ భవిష్యత్తులో సెక్యూరిటీ లోపాన్ని (security hole) సృష్టించవచ్చనే అంతర్ దృష్టి (intuition) కూడా ఇదే. ఒక LLM కి అంతర్ దృష్టి ఉండదు. దానికి కేవలం ప్యాటర్న్స్ (patterns) మాత్రమే తెలుసు. ప్యాటర్న్స్ ఉపయోగకరంగా ఉండవచ్చు, కానీ అవి జడ్జిమెంట్ కాదు.

ప్రస్తుతం నియామకాలు చేస్తున్న కంపెనీలు, కేవలం AI టూల్స్ వాడటంలో నైపుణ్యం ఉన్న వ్యక్తుల కోసం వెతకడం ఆపాలి. AIని సవాలు చేయగల వ్యక్తులను నియమించుకోండి. జనరేట్ అయిన అవుట్‌పుట్‌ను జాగ్రత్తగా చదివి, అది ఎందుకు తప్పు అని వివరించగల అభ్యర్థుల కోసం వెతకండి. జనరేట్ చేయబడిన కోడ్ ప్రొడక్షన్ యొక్క క్లిష్టమైన వాస్తవ పరిస్థితులను ఎదుర్కొన్నప్పుడు, మీ సిస్టమ్స్‌ను ఆరోగ్యంగా ఉంచేది అటువంటి ఇంజనీర్లే.

దిశానిర్దేశం లేని వేగం

AIని ఒక యాక్సిలరేటర్ పెడల్‌గా భావించండి. ఒక కారులో...