- Facebook के दिग्गज इंजीनियर Bob ने जटिल development environment के बिना भी Facebook Groups लॉन्च किया और hackathon में लगातार नतीजे दिए
- उन्होंने सिर्फ बेसिक Sublime Text और
printflogs का इस्तेमाल किया; syntax highlighting गलत थी और live reloading व debugger भी नहीं थे - दूसरी ओर, आसपास के developers Vim syntax highlighting और snippets,
tmux,mosh,hphpdshortcuts, Git aliases जैसी जटिल tool configurations को productivity की कुंजी मानते थे - Bob की hackathon जीत में editor settings से ज्यादा product sense और intuition, यानी क्या बनाना है यह तय करने की क्षमता, काम आई
- नए काम करने के तरीके बदलाव ला सकते हैं, लेकिन अंतिम परिणाम सही समस्या हल करने से आते हैं
जटिल tools और वास्तविक नतीजों का अंतर
- Bob Facebook Groups लॉन्च करने वाले बेहद prolific engineer और hackathon में लगातार output देने वाले legendary व्यक्ति थे
- उस समय productivity पर बहुत ध्यान देने वाले एक सहकर्मी ने Facebook की PHP dialect Hack के लिए खुद बनाई हुई Vim syntax highlighting और snippets का इस्तेमाल किया
- उन्होंने
moshके ऊपरtmuxचलाया, और customhphpdshortcuts व Git aliases तक configure किए
- उन्होंने
- इसके उलट Bob का काम करने का तरीका बेहद सरल था
- वे बिना किसी अलग setup के Sublime Text इस्तेमाल करते थे, जिसमें code colors का करीब आधा हिस्सा गलत दिखता था
- live reloading या debugger के बजाय वे code में
printfडालते और logs आने का इंतज़ार करते थे
- उस दिन hackathon में Bob जीते; याद है कि उनका work Facebook Groups में खरीद-बिक्री posts को support करने वाला feature था
- यह feature बाद में Facebook Marketplace में विकसित हुआ
कैसे से ज्यादा, क्या बनाया जाए
- जटिल tools पर ध्यान देने से काम करने के तरीके यानी कैसे में फंसकर काम के लक्ष्य यानी क्या को नजरअंदाज किया जा सकता है
- Bob की ऊंची productivity का असली कारण editor settings नहीं, बल्कि product sense और intuition था
- X पर हर दिन कोई नया काम करने का तरीका आता है जो मानो सब कुछ बदल देगा, और उनमें से कुछ सचमुच बदलाव ला भी सकते हैं
- लेकिन सबसे अहम चीज tools या work process खुद नहीं, बल्कि सही समस्या हल करना है
1 टिप्पणियां
Hacker News की राय
टूल्स को संजोकर रखने वाले कारीगर और टूल्स के प्रति आसक्त लोगों को दो हिस्सों में बाँटना गलत है। अच्छे टूल्स खिलौने नहीं, बल्कि उद्देश्य तक पहुँचने के साधन होते हैं, और मैंने भी अपने workflow के मुताबिक shell scripts, Emacs functions, window layout tools आदि बनाने में कई दिन लगाए हैं
नतीजा यह हुआ कि syntax highlighting, code navigation·analysis, screen layout, Git operations सिर्फ कुछ key presses में होने लगे और ध्यान भंग करने वाली चीजें गायब हो गईं। chair, shell prompt, editor जैसे काम के माहौल में निवेश करना चाहिए, लेकिन एक बार आरामदायक हो जाने पर उसे भूलकर असली समस्या पर ध्यान देना चाहिए
हालांकि, अंतहीन tool tweaking इस बात का संकेत हो सकता है कि आप भारी और गैर-रोचक कामों से बच रहे हैं, और यह टूल्स की गलती जैसा कोई सीधा-सादा मामला नहीं है
खासकर LLM युग के टूल्स आपको कई agents और terminals के बीच लगातार घूमाते रहते हैं। यह बार-बार context switching आनंद और flow state छीन लेता है, इसलिए अच्छा होगा अगर कोई इसका समाधान ढूँढ़ ले
मैंने बहुत से तकनीकी लोगों को वास्तव में कुछ बनाने से ज्यादा समय environment setup optimization पर खर्च करते देखा है, और मैं खुद भी ऐसा कर चुका हूँ। यह सोचना गलत है कि coding time का 90% typing है, इसलिए input speed बढ़ानी चाहिए; समय का 90% सोचने में, और उसमें से ज़्यादातर पढ़ने में लगना चाहिए
सही समय पर coding, पहले से समझे गए समाधान को मूर्त रूप देने वाली typing के करीब होती है
इस अर्थ में AI एक और तरह का environment improvement भी है, क्योंकि उसने शुरुआत की बाधा कम कर दी। पहले जब QA role से developer बनने के लिए यूरोप यात्रा करते हुए InterviewCake पढ़ रहा था, तब भी problem solving से ज्यादा समय editor settings सँवारने में बर्बाद किया था
यह शायद ADHD का लक्षण भी हो सकता है। हाल की दवा-चिकित्सा के बाद productivity बहुत बदल गई, और यह सोचकर आँखों में आँसू आ गए कि असली काम करने के बजाय जीवन का आधा हिस्सा settings को परफेक्ट बनाने में गँवा दिया
ऐसे VC-funded कंपनियाँ मौजूद हैं जो असल में ऐसा product नहीं बना पातीं जिसे लोग इस्तेमाल करें या जिसके लिए पैसे दें। वे अपनी valuation को सही ठहराने के लिए यह दिखाती हैं कि वे कितनी व्यस्त और productive हैं, और AI craze भी शायद उसी संदर्भ का हिस्सा है क्योंकि वह क्या बनाया जाए, उससे ज्यादा productivity और methods पर केंद्रित है
https://components.news/the-gamer-and-the-nihilist/ ऐसे nihilistic startups की तुलना उन game studios से करता है जो ऐसे products बनाते हैं जिनके लिए लोग पैसे देते हैं और जिन्हें वे इस्तेमाल करते हैं। ऐसी अर्थव्यवस्था में जहाँ productivity apps, Product Hunt के लगभग 40% results बनाते हैं, असल में कुछ बनाने की बजाय ऐसा दिखने पर श्रम लगाया जाता है जैसे कुछ बनाया जा रहा हो
productivity tools को बस इतना बनाना या इस्तेमाल करना चाहिए कि पीछे न छूटें; उससे ज्यादा को मैं जाल मानता हूँ। पहले मैं तिमाही में एक बार समीक्षा करता था, लेकिन AI के बाद अब हफ्ते में 1~2 दिन tools सुधारने जैसे meta-work में जा रहे हैं, और उम्मीद है कि संबंधित tools standardize होने पर यह कम होगा
अगर tool expert की छवि बहुत मजबूत हो जाए, तो न सिर्फ असली मूल्य वाले काम छूट सकते हैं बल्कि लोग आपको किसी गुप्त productivity मंत्र वाले व्यक्ति की तरह देखने लगते हैं। अगर फर्क उम्मीद जितना न निकले, तो आपकी दूसरी समझ पर भी भरोसा कम हो सकता है
जितना कम समय मैं कंप्यूटर के सामने रहा, उतना ज्यादा काम निपटाया, और monitors को 3 से 1 करने पर productivity काफ़ी बढ़ गई। सब्ज़ियाँ काटते हुए या घास काटते हुए मैं ज़्यादातर समस्याएँ हल कर लेता हूँ; चमकदार तकनीक के सामने बैठे रहने से निर्णय तेज़ या बेहतर नहीं हो जाते
client की dev team से बेहतर परिणाम देने की वजह भी यही है कि मैं full-time employee नहीं हूँ, इसलिए रुककर धीरे-धीरे सोच सकता हूँ। Teams की status light हरी बनाए रखने का दबाव जैसी productivity theater बहुत-सी संस्थाओं में मूर्खतापूर्ण फैसले पैदा करती है
productivity के अस्तित्व के कारण पर सोचते-सोचते मैं इस परिकल्पना पर पहुँचा कि यह दर्द कम करने की कोशिश है। programmer productivity समेत कई performance optimizations अक्सर problem domain की अस्पष्टता, organizational politics, अनिश्चितता, और failure risk जैसे दर्दों से बचने का engineer का आश्रय बन जाते हैं
लेकिन वास्तविक समस्याएँ हल करनी हों तो user workflow को उबाऊ लगने लायक बारीकी से देखना पड़ता है, साझा रणनीति को स्पष्ट रूप से प्रस्तावित करना पड़ता है ताकि दूसरे लोग सहयोग करें, यानी वास्तविकता का सामना करना पड़ता है। दर्द का महिमामंडन करने की ज़रूरत नहीं, लेकिन अच्छे परिणामों में खिलाड़ी जैसी ट्रेनिंग अंतर्निहित होती है, और मैदान में ज़रूरी दर्द को संभालने की क्षमता विकसित करनी पड़ती है
मूल बात यह है कि क्या उसे पहचानना आसान है। चमकदार टूल्स को कोई भी देखकर प्रभावित हो सकता है, लेकिन खाली editor या skeleton code में किसी शानदार नए product·feature को पहचानने वाले लोग बहुत कम होते हैं। इसलिए नज़र आने वाले टूल्स पर ध्यान जाता है, जबकि कठिन और अस्पष्ट “क्या बनाया जाए” को नज़रअंदाज़ कर दिया जाता है
टूल्स पर मैं Marie Kondo वाला मानदंड लागू करता हूँ। अगर उसे इस्तेमाल करने में आनंद नहीं आता और वह जीवन आसान नहीं बनाता, तो उसे छोड़ देता हूँ; अगर बनाता है, तो रखता हूँ
2004 में, ज्यादातर junior developers वाली एक छोटी टीम को बेहतरीन और व्यापक Java training मिली। training से पहले IntelliJ और Eclipse settings को लेकर गहरे जुनून और तीखी बहसें होती थीं, लेकिन trainer ने हैरान करते हुए सलाह दी कि केवल बुनियादी JDK tools और Notepad इस्तेमाल करो
मकसद यह था कि हमें भीतर क्या हो रहा है, यह सीखने दिया जाए, और उनका कहना था कि productivity में शायद बहुत बड़ा फर्क भी नहीं होगा
environment optimization पर आसक्ति का कारण यह है कि केंद्रित प्रयास और इनाम का रिश्ता दिखने वाला, ठोस और भौतिक होता है। इसके उलट abstract learning ऐसी नहीं होती। chair optimize करने जैसी चीज़ों से ज्यादा learning tasks हैं, इसलिए अच्छा होगा अगर abstract learning को भी और ठोस महसूस कराने का कोई तरीका हो
यह productivity की नहीं, बल्कि खिलौनों के साथ खेलने के मज़े की बात है