- "Vibe Engineering" AI coding tools का उपयोग करने वाली प्रोफेशनल डेवलपमेंट पद्धति का एक नया नाम है। तेज़ और गैर-जिम्मेदाराना 'vibe coding' के विपरीत, इसका मतलब है अनुभवी इंजीनियरों द्वारा LLM का उपयोग करते हुए भी code quality और जवाबदेही बनाए रखने वाला दृष्टिकोण
- Claude Code, OpenAI Codex CLI, Gemini CLI जैसे coding agents के आगमन से वास्तविक प्रोजेक्ट्स में LLM का उपयोग तेज़ी से बढ़ा है, और कुछ इंजीनियर कई agents को एक साथ चलाकर parallel work भी कर रहे हैं
- LLM का प्रभावी उपयोग करने के लिए automated testing, advance planning, comprehensive documentation, version control, code review culture जैसी पहले से स्थापित उच्च-स्तरीय software engineering practices की ज़रूरत होती है
- AI tools मौजूदा विशेषज्ञता को amplify करते हैं, और किसी senior engineer के पास जितनी अधिक skill और experience होगा, LLM का उपयोग करते समय उतने ही तेज़ और बेहतर नतीजे मिल सकते हैं
- यह शब्द 'vibe coding' से स्पष्ट भेद बनाते हुए इस बात पर ज़ोर देता है कि यह production software development के लिए AI के अधिक कठिन और अधिक परिष्कृत उपयोग का तरीका है, और engineering तथा vibe का विरोधाभासी संयोजन इसे उलटे याद रखने में आसान बनाता है (AI tools की प्रगति के साथ development process में बदलाव और विशेषज्ञता के महत्व को उजागर करता है)
vibe coding और vibe engineering के बीच अंतर
- vibe coding AI का उपयोग करने वाली तेज़, ढीली और गैर-जिम्मेदार software development शैली है, जो पूरी तरह prompt-driven होती है और code कैसे काम करता है, इस पर ध्यान न देने वाला दृष्टिकोण अपनाती है
- स्पेक्ट्रम के दूसरे छोर पर अनुभवी विशेषज्ञों का वह तरीका मौजूद है जिसमें वे LLM से काम तेज़ करते हैं, लेकिन अपने बनाए software पर गर्व के साथ आत्मविश्वासपूर्वक ज़िम्मेदारी भी लेते हैं; इसे vibe engineering कहा गया है
- toy projects नहीं बल्कि वास्तविक projects में एक software engineer के रूप में LLM के साथ उत्पादक ढंग से काम करना कठिन है — यह कम चर्चित सच्चाई है; इसके लिए tools के उपयोग की गहरी समझ चाहिए और कई pitfalls से बचना पड़ता है
coding agents का आगमन और प्रभाव
- फ़रवरी 2025 में जारी Claude Code, अप्रैल में जारी OpenAI का Codex CLI, और जून में जारी Gemini CLI जैसे coding agent tools आने से वास्तविक coding समस्याओं में LLM की उपयोगिता नाटकीय रूप से बढ़ गई
- ये tools code को बार-बार संशोधित करते हैं और सक्रिय रूप से test करते हैं, ताकि तय किए गए लक्ष्य तक पहुँचने तक काम जारी रहे
- अनुभवी और विश्वसनीय software engineers कई agents को एक साथ चलाकर कई समस्याओं को parallel में संभाल रहे हैं और अपने काम का दायरा बढ़ा रहे हैं
- लेखक शुरू में संदेह में था, लेकिन खुद parallel coding agents चलाने के बाद उसने पाया कि यह मानसिक रूप से थकाने वाला, लेकिन आश्चर्यजनक रूप से प्रभावी है
- tools.simonwillison.net collection का बड़ा हिस्सा पारंपरिक vibe coding शैली में बनाया गया था, लेकिन coding agents के साथ iteratively काम करके भविष्य में maintain की जा सकने वाली production-quality code बनाना एक बिल्कुल अलग प्रक्रिया जैसा महसूस होता है
LLM किन मौजूदा software engineering practices को मजबूत करता है
- automated testing: अगर आपके पास मजबूत, व्यापक और भरोसेमंद test suite है, तो agent coding tools तेज़ी से काम कर सकते हैं; test न होने पर agents बिना वास्तव में test किए काम करने का दावा कर सकते हैं, या नए बदलाव असंबंधित features को तोड़ सकते हैं
- test-first development खास तौर पर उन agents के लिए प्रभावी है जो loop में iterate कर सकते हैं
- advance planning: जब आप कुछ hack करके बनाने बैठते हैं, तो अगर शुरुआत high-level plan से हो, तो काम कहीं बेहतर चलता है; agents के साथ काम करते समय यह और भी महत्वपूर्ण हो जाता है
- पहले plan पर iterate किया जा सकता है, फिर agent को देकर code लिखवाया जा सकता है
- comprehensive documentation: human programmers की तरह LLM भी एक समय में codebase के केवल कुछ हिस्सों को ही context में रख सकते हैं; संबंधित docs देने पर वे code को पहले पढ़े बिना दूसरे हिस्सों की API का उपयोग कर सकते हैं
- अगर पहले अच्छे docs लिख दिए जाएँ, तो model केवल उसी input के आधार पर मेल खाती implementation बना सकता है
- अच्छी version control आदतें: अगर coding agent ने बदलाव किए हों, तो गलतियों को rollback करना और यह समझना कि क्या कब और कैसे बदला, और भी ज़रूरी हो जाता है
- LLM Git में बहुत सक्षम होते हैं; वे bug की जड़ खोजने के लिए history को खुद explore कर सकते हैं और ज़्यादातर developers से बेहतर
git bisect का उपयोग कर सकते हैं
- प्रभावी automation: continuous integration, automated formatting और linting, preview environments में continuous deployment जैसी चीज़ें agent coding tools के लिए भी फायदेमंद हैं
- LLM तेज़ automation scripts लिखना आसान बनाते हैं, जिससे अगली बार काम को सही और consistent तरीके से दोहराया जा सके
- code review culture: अगर आप code review में तेज़ और उत्पादक हैं, तो LLM के साथ काम करते समय आपका अनुभव बहुत बेहतर होगा
- अगर आप दूसरे व्यक्ति (या किसी और चीज़) द्वारा लिखा वही code review करने के बजाय खुद code लिखना पसंद करते हैं, तो यह मुश्किल होगा
- management technique का एक बेहद अजीब रूप: coding agents से अच्छे नतीजे लेना असहज रूप से वैसा ही है जैसा human collaborators से अच्छे नतीजे लेना
- आपको स्पष्ट निर्देश देने होंगे, ज़रूरी context सुनिश्चित करना होगा, और output पर actionable feedback देना होगा
- यह असली लोगों के साथ काम करने से बहुत आसान है, क्योंकि आपको उन्हें अपमानित या हतोत्साहित करने की चिंता नहीं करनी पड़ती; फिर भी पुराना management experience आश्चर्यजनक रूप से उपयोगी साबित होगा
- वास्तव में अच्छी manual QA (quality assurance): automated testing के अलावा, edge cases का अनुमान लगाकर उनमें गहराई से जाने सहित software को manually test करने में वास्तव में निपुण होना चाहिए
- मजबूत research skills: किसी coding problem को हल करने के दर्जनों तरीके हो सकते हैं; सबसे अच्छा विकल्प पहचानना और अपने approach को साबित करना हमेशा महत्वपूर्ण था, और agents को वास्तविक code लिखने के लिए छोड़ देने से पहले यह अब भी एक बड़ी बाधा है
- preview environments में deploy करने की क्षमता: जब agent कोई feature बना दे, तो अगर उसे production में सीधे भेजे बिना सुरक्षित रूप से preview करने का तरीका मौजूद हो, तो review कहीं अधिक उत्पादक हो जाती है और टूटे हुए software को ship करने का जोखिम बहुत कम हो जाता है
- क्या AI को outsource किया जा सकता है और क्या manually करना चाहिए, इसकी instinct: models और tools जैसे-जैसे अधिक प्रभावी होते जा रहे हैं, यह समझ लगातार बदल रही है
- LLM के साथ प्रभावी ढंग से काम करने का बड़ा हिस्सा यह है कि कब उनका सबसे अच्छा उपयोग हो सकता है, इसकी मजबूत सहज समझ बनाए रखी जाए
- estimation की नई समझ: किसी project में कितना समय लगेगा, इसका अनुमान लगाना हमेशा senior engineer होने का सबसे कठिन लेकिन सबसे महत्वपूर्ण हिस्सा रहा है, खासकर उन संगठनों में जहाँ budget और strategy के फैसले इन्हीं estimates पर आधारित होते हैं
- AI-assisted coding इसे और कठिन बनाती है; जो चीज़ें पहले बहुत समय लेती थीं वे अब कहीं तेज़ हो गई हैं, लेकिन estimation अब उन नए factors पर निर्भर है जिन्हें हम सब अभी समझने की कोशिश कर रहे हैं
vibe engineering का सार और महत्व
- इन नए tools की क्षमता का वास्तव में लाभ उठाने के लिए game के highest level पर operate करना पड़ता है, और इसमें सिर्फ code लिखने की ज़िम्मेदारी नहीं होती, बल्कि
- approach पर research,
- high-level architecture decisions,
- specs लिखना,
- success criteria तय करना,
- agent loops design करना,
- QA plans बनाना,
- ऐसे अजीब digital interns की लगातार बढ़ती फौज को manage करना जो मौका मिलने पर cheating करने की कोशिश करते हैं,
- और code review में बहुत समय लगाना भी शामिल है
- इनमें से लगभग हर चीज़ पहले से ही senior software engineer की विशेषता है
- AI tools मौजूदा विशेषज्ञता को amplify करते हैं; software engineer के रूप में आपके पास जितनी अधिक skill और experience होगा, LLM और coding agents के साथ काम करते हुए उतने ही तेज़ और बेहतर परिणाम मिलेंगे
“Vibe engineering”, really? : शब्द-चयन पर विचार
- क्या "vibe engineering" नाम बेवकूफाना है? शायद हाँ; AI में "vibe" की अवधारणा इस समय थोड़ी थकी हुई लगती है, और "vibe coding" खुद कई developers के बीच तिरस्कारपूर्ण अर्थ में इस्तेमाल होती है
- फिर भी, लेखक किसी अधिक रचनात्मक चीज़ के लिए vibe शब्द को वापस लेने को तैयार है
- लेखक को कभी भी "coder" और "engineer" के बीच का कृत्रिम अंतर पसंद नहीं आया; यह हमेशा थोड़ा entry barrier जैसा लगा, लेकिन इस मामले में थोड़ा entry barrier ही शायद ठीक वही चीज़ है जिसकी ज़रूरत है
- vibe engineering, vibe coding से साफ़ अंतर स्थापित करती है और संकेत देती है कि यह production software बनाने के लिए AI tools के साथ काम करने का अलग, अधिक कठिन और अधिक परिष्कृत तरीका है
- लेखक को यह पसंद है कि यह थोड़ा ढीठ और विवादास्पद लग सकता है; यह पूरा क्षेत्र अब भी कई मायनों में बेतुका है
- इन नए tools को लागू करने के सबसे उत्पादक तरीकों को समझते समय हमें खुद को बहुत ज़्यादा गंभीरता से नहीं लेना चाहिए
- पहले AI-assisted programming जैसे शब्द को स्थापित करने की कोशिश की गई थी, लेकिन लगभग शून्य सफलता मिली; इस बार vibe को रगड़कर देखना कि क्या होता है, बुरा विचार नहीं है
- लेखक को "vibe" और "engineering" के बीच का साफ़ विरोधाभास वास्तव में पसंद है, जो इस संयुक्त शब्द को खेल-खेल में और (उम्मीद है) आसानी से याद रहने वाले आत्म-विरोधाभासी रूप में बदल देता है
4 टिप्पणियां
मुझे लगता है कि कुछ समय पहले भी इसे "ये कौन-सी coding है?" जैसा कोई नाम देकर देखने की कोशिश की गई थी और वह विफल रहा था, इसलिए AI pair programming ही सबसे उपयुक्त अभिव्यक्ति लगती है।
नाम तो बस यह दावा करने के लिए रखा जा रहा है कि "यह नाम मैंने बनाया था।"
किसी ने इसे Augmented Coding कहा था, लेकिन वह शब्द जल्दी ही गायब हो गया।
Hacker News राय
/yoloजैसा slash command बनाकर बिना किसी खास guidance के बस उसे चलाकर देखा हैबेमतलब नाम गढ़ना;