Searching...
हिन्दी
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
More Joel on Software

More Joel on Software

Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and ... or Ill Luck, Work with Them in Some Capacity
द्वारा Joel Spolsky 2008 320 पृष्ठ
4.05
546 रेटिंग्स
सुनें
Try Full Access for 7 Days
Unlock listening & more!
Continue

मुख्य निष्कर्ष

1. बेहतरीन डेवलपर्स को ढूँढना और बनाए रखना सक्रिय भर्ती और विशिष्ट माहौल की मांग करता है।

बेहतरीन सॉफ्टवेयर डेवलपर्स, वास्तव में हर क्षेत्र के श्रेष्ठ लोग, आमतौर पर बाजार में उपलब्ध नहीं होते।

भर्ती सक्रिय होती है। चूंकि शीर्ष डेवलपर्स सार्वजनिक जॉब बोर्ड्स पर नौकरी की तलाश कम ही करते हैं, इसलिए कंपनियों को उन्हें सक्रिय रूप से खोजने की जरूरत होती है। इसके लिए संबंधित सम्मेलनों में जाना, इंटर्नशिप के माध्यम से प्रतिभा की पहचान करना और कंपनी या उसके उत्पादों के इर्द-गिर्द एक समुदाय बनाना आवश्यक है ताकि समान सोच वाले लोग आकर्षित हों। केवल बड़े, सामान्य जॉब साइट्स पर निर्भर रहना उचित नहीं क्योंकि वहां अयोग्य उम्मीदवारों की संख्या अधिक होती है।

कार्यस्थल का महत्व। वेतन के अलावा, बेहतरीन डेवलपर्स विशिष्ट परिस्थितियों की तलाश करते हैं। वे ध्यान केंद्रित करने के लिए निजी ऑफिस, उच्च गुणवत्ता वाले उपकरण (मॉनिटर, कुर्सियाँ), बुद्धिमान और सहयोगी सहकर्मियों के साथ सामाजिक माहौल, और अपने काम में स्वतंत्रता और स्वायत्तता को महत्व देते हैं। डेवलपर्स का सम्मान करना और उन्हें "सितारों" की तरह ट्रीट करना उनकी आकर्षण और स्थिरता के लिए बेहद जरूरी है।

पैसे बाद में आते हैं। प्रतिस्पर्धी वेतन उचित है, लेकिन शीर्ष प्रतिभा के लिए यह मुख्य प्रेरक नहीं होता। यदि डेवलपर्स वेतन की शिकायत करते हैं, तो यह अक्सर नौकरी के अन्य पहलुओं जैसे सम्मान की कमी, खराब कार्य परिस्थितियाँ या राजनीतिक असंतोष का संकेत होता है। केवल उच्च वेतन खराब माहौल की भरपाई नहीं कर सकता।

2. सॉफ्टवेयर प्रबंधन केवल आदेश या प्रोत्साहन से नहीं, बल्कि पहचान और साझा जानकारी से होता है।

यहाँ लक्ष्य यह है कि लोग उन लक्ष्यों के साथ पहचान बनाएं जिन्हें आप हासिल करना चाहते हैं।

आदेश और नियंत्रण विफल होता है। सैन्य शैली का प्रबंधन, जहाँ नेता आदेश देते हैं, उच्च तकनीकी टीमों में कारगर नहीं होता। प्रबंधकों के पास अक्सर व्यक्तिगत योगदानकर्ताओं के पास मौजूद तकनीकी जानकारी नहीं होती, जिससे निर्णय खराब होते हैं। यह तरीका बुद्धिमान, स्वायत्त डेवलपर्स को अलग कर देता है जो कार्य के पीछे 'क्यों' समझना पसंद करते हैं।

आर्थिक प्रोत्साहन उल्टा असर करता है। केवल वित्तीय प्रोत्साहन (विशिष्ट मेट्रिक्स के लिए बोनस) के माध्यम से प्रबंधन करना हानिकारक होता है। यह आंतरिक प्रेरणा को कमजोर बाहरी प्रेरणा से बदल देता है और लोगों को मेट्रिक के लिए सिस्टम को गेम करने के लिए प्रोत्साहित करता है, न कि वांछित परिणाम के लिए। यह प्रबंधन की जिम्मेदारी से मुंह मोड़ना है जो प्रभावी सिस्टम बनाने और लोगों को प्रशिक्षित करने की होती है।

पहचान और जानकारी सशक्त बनाती है। सबसे प्रभावी तरीका पहचान प्रबंधन है, जो टीम के भीतर साझा उद्देश्य और निष्ठा की भावना को बढ़ावा देता है (जैसे परिवार)। प्रबंधकों को आवश्यक जानकारी (जैसे वित्तीय लक्ष्य, बाजार संदर्भ) साझा करनी चाहिए ताकि व्यक्ति सूचित निर्णय ले सकें जो संगठन के उद्देश्यों के अनुरूप हों, भले ही परिस्थितियाँ बदल जाएं।

3. एक मजबूत तकनीकी आधार, जिसमें "कठिन" अवधारणाएँ शामिल हैं, वास्तव में सक्षम प्रोग्रामरों के लिए अनिवार्य है।

पॉइंटर्स और रेकर्शन के लिए तर्क करने की क्षमता, अमूर्त सोच और एक साथ कई स्तरों पर समस्या को देखने की योग्यता चाहिए।

जावा स्कूल्स कम पड़ते हैं। केवल जावा और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग पर केंद्रित विश्वविद्यालय छात्रों को आवश्यक कौशल नहीं दे पाते। पॉइंटर्स (अक्सर C में सिखाए जाते हैं) और रेकर्शन (फंक्शनल प्रोग्रामिंग) जैसी अवधारणाएँ पारंपरिक रूप से "छंटनी" वाली होती हैं जो मानसिक चुस्ती विकसित करती हैं। इनके बिना ऑपरेटिंग सिस्टम जैसे निम्न-स्तरीय सिस्टम या पैरेलल प्रोसेसिंग जैसे उच्च-स्तरीय अमूर्तताओं को समझना मुश्किल होता है।

सिंटैक्स से परे। C या स्कीम जैसी भाषाएँ सीखने का मूल्य केवल उन भाषाओं को जानना नहीं, बल्कि वे मस्तिष्क को जिस तरह प्रशिक्षित करती हैं, उसमें है। ये प्रोग्रामरों को मेमोरी प्रबंधन, प्रदर्शन और विभिन्न अमूर्तता स्तरों के बारे में सोचने के लिए मजबूर करती हैं। यह मानसिक लचीलापन मजबूत सॉफ्टवेयर आर्किटेक्चर डिजाइन करने और जटिल समस्याओं से निपटने के लिए आवश्यक है।

नवाचार पर प्रभाव। इन मूल अवधारणाओं की कमी नवाचार में बाधा डाल सकती है। उदाहरण के लिए, Google के स्केलेबिलिटी के लिए मूलभूत MapReduce एल्गोरिदम सीधे फंक्शनल प्रोग्रामिंग अवधारणाओं (Map और Reduce) से प्रेरित है। जिन कंपनियों के डेवलपर्स के पास यह पृष्ठभूमि नहीं है, वे ऐसे पैरेडाइम्स को समझने या आविष्कार करने में संघर्ष कर सकते हैं।

4. सॉफ्टवेयर विकास कंप्यूटर विज्ञान से अलग एक कला है, जो व्यावहारिक कौशल और स्पष्ट संचार की मांग करती है।

तकनीकी विषयों पर स्पष्ट रूप से लिख पाने की क्षमता एक साधारण योगदानकर्ता प्रोग्रामर और एक नेता के बीच का अंतर है।

CS बनाम विकास। कंप्यूटर विज्ञान की डिग्री सैद्धांतिक आधार प्रदान करती है, लेकिन स्वचालित रूप से सॉफ्टवेयर विकास नहीं सिखाती। व्यावहारिक, प्रोग्रामिंग-केंद्रित पाठ्यक्रम वास्तविक कोडिंग अनुभव के लिए आवश्यक हैं। कई प्रतिष्ठित विश्वविद्यालय सिद्धांत को प्राथमिकता देते हैं, व्यावहारिक कौशल कहीं और सीखना पड़ता है।

लेखन का महत्व। स्पष्ट रूप से लिखने और संवाद करने की क्षमता प्रोग्रामरों के लिए अत्यंत महत्वपूर्ण है। यह प्रचार-प्रसार (जैसे लिनस टॉर्वाल्ड्स का लिनक्स के साथ), संगठन के भीतर प्रभावी संवाद, स्पष्ट विनिर्देश और दस्तावेज़ीकरण, और सहयोग को सक्षम बनाता है। जो प्रोग्रामर अच्छी तरह लिखते हैं, वे अधिक प्रभावशाली और व्यवसाय के लिए मूल्यवान होते हैं।

इन-हाउस जॉब्स की चुनौतियाँ। कई प्रोग्रामिंग नौकरियाँ गैर-सॉफ्टवेयर कंपनियों के लिए "इन-हाउस सॉफ्टवेयर" से जुड़ी होती हैं। ये भूमिकाएँ अक्सर संतोषजनक नहीं होतीं क्योंकि:

  • काम अक्सर त्वरित होता है, न कि सुरुचिपूर्ण।
  • परियोजनाएँ "पर्याप्त अच्छा" होने पर रुक जाती हैं, जिससे सुधार की गुंजाइश कम होती है।
  • प्रोग्रामरों की स्थिति मुख्य व्यवसाय कर्मचारियों की तुलना में कम होती है।
    जहाँ सॉफ्टवेयर ही व्यवसाय है, वहाँ उत्पाद कंपनियाँ डेवलपर्स को शिल्प कौशल में गर्व और करियर उन्नति के अधिक अवसर देती हैं।

5. सफल सॉफ्टवेयर डिज़ाइन उपयोगिता से परे सामाजिक गतिशीलता और भावनात्मक जुड़ाव को भी समेटता है।

एक ऐसा एप्लिकेशन जो वास्तव में कुछ बेहतरीन करता है जिसे लोग करना चाहते हैं, भले ही वह उपयोग में कठिन हो, फिर भी सफल हो सकता है।

उपयोगिता आवश्यक है, पर्याप्त नहीं। सॉफ्टवेयर को उपयोग में आसान बनाना महत्वपूर्ण है, लेकिन सफलता के लिए यह अकेला कारण नहीं है। ऐसे उत्पाद जो मजबूत जरूरत को पूरा करते हैं या आकर्षक फीचर्स देते हैं, खराब उपयोगिता के बावजूद सफल हो सकते हैं (जैसे प्रारंभिक नैपस्टर, टेक्स्ट मैसेजिंग)। इसके विपरीत, अत्यंत उपयोगी सॉफ्टवेयर जो समस्या हल नहीं करता, विफल होगा।

सामाजिक इंटरफ़ेस डिज़ाइन। मानव-मानव संवाद को मध्यस्थता करने वाले सॉफ्टवेयर (जैसे सोशल नेटवर्क, फोरम) के लिए "सामाजिक इंटरफ़ेस" महत्वपूर्ण है। यह इस बात का डिज़ाइन है कि सॉफ्टवेयर उपयोगकर्ता व्यवहार और समुदाय की गतिशीलता को कैसे प्रभावित करता है। यह समाज की सफलता में मदद करता है, भले ही इसका मतलब व्यक्तिगत उपयोगकर्ताओं पर कुछ प्रतिबंध लगाना हो (जैसे स्पैम स्वीकार्यता को नकली बनाना)।

भावनात्मक अपील मायने रखती है। बेहतरीन सॉफ्टवेयर अक्सर उपयोगकर्ताओं के साथ भावनात्मक रूप से जुड़ता है। इसमें शामिल हैं:

  • सौंदर्य और आकर्षण (जैसे iPod का डिज़ाइन)
  • हास्य और व्यक्तित्व (जैसे Winamp की वेबसाइट की कॉपी)
  • उपयोगकर्ताओं को नियंत्रण में महसूस कराना (जैसे iPod का स्क्रॉल व्हील फीडबैक)
    ये तत्व अक्सर शीर्ष प्रतिभा का परिणाम होते हैं और औसत टीमों के लिए दोहराना मुश्किल होते हैं, जिससे स्थायी प्रतिस्पर्धात्मक लाभ बनता है।

6. कठिन, "जटिल" समस्याओं को हल करना वास्तविक व्यावसायिक मूल्य और प्रतिस्पर्धात्मक लाभ का स्रोत है।

बाजार जटिल समस्याओं के समाधान के लिए भुगतान करता है, आसान समस्याओं के लिए नहीं।

मूल्य कठिनाई से आता है। हर काम में एक चुनौतीपूर्ण, अप्रिय मूल समस्या ("मक") होती है। इन कठिन समस्याओं को हल करने की क्षमता को बाजार पुरस्कृत करता है ("पैसा")। आसान समस्याओं पर आधारित व्यवसायों को प्रवेश बाधाओं का सामना करना पड़ता है और प्रतिस्पर्धा तीव्र होती है।

सरल हमेशा मूल्यवान नहीं। सरल, उपयोग में आसान एप्लिकेशन आकर्षक होते हैं, लेकिन यदि वे उपयोगकर्ता या व्यवसाय के लिए महत्वपूर्ण अंतर्निहित जटिलता को हल नहीं करते, तो उनका गहरा मूल्य नहीं होता। जो कंपनियाँ सभी "जटिल" पहलुओं से बचती हैं (जैसे विभिन्न वातावरणों में इंस्टॉल करने योग्य सॉफ्टवेयर का समर्थन), वे अपने बाजार और राजस्व की संभावनाओं को सीमित कर सकती हैं।

डिज़ाइन एक जटिल समस्या है। सुरुचिपूर्ण और अत्यंत उपयोगी सॉफ्टवेयर बनाना स्वयं एक कठिन चुनौती है। इसके लिए महत्वपूर्ण प्रतिभा और प्रयास की आवश्यकता होती है, जो एक स्थायी प्रतिस्पर्धात्मक लाभ का स्रोत बनता है जिसे प्रतियोगी आसानी से नकल नहीं कर सकते, भले ही सतह सरल दिखे। लगातार नई, कठिन समस्याओं को हल करना व्यवसाय को बढ़ने और बाजार का विस्तार करने देता है।

7. यथार्थवादी समय-सारिणी, डेटा से सूचित, स्कोप प्रबंधन और सफल उत्पाद वितरण के लिए आवश्यक है।

आप अपने समय को उन चीज़ों पर खर्च करना चाहते हैं जो सबसे अधिक मूल्य देती हैं। और यह जानना जरूरी है कि आपकी मेहनत की कीमत क्या होगी, इसके बिना आप सही योजना नहीं बना सकते।

डेवलपर्स समय-सारिणी से बचते हैं। प्रोग्रामर अक्सर समय-सारिणी बनाना पसंद नहीं करते, इसे अवास्तविक या बोझिल मानते हैं। हालांकि, समय-सारिणी फीचर प्राथमिकता और संसाधन आवंटन के लिए सूचित निर्णय लेने के लिए आवश्यक है। इनके बिना परियोजनाएँ अक्सर विलंबित हो जाती हैं।

साक्ष्य-आधारित समय-सारिणी (EBS)। एक विश्वसनीय तरीका है काम को छोटे कार्यों (16 घंटे से कम) में विभाजित करना, वास्तविक समय (विच्छेद सहित) ट्रैक करना ताकि व्यक्तिगत "गति" (अनुमान/वास्तविक) निकाली जा सके, और इस ऐतिहासिक डेटा का उपयोग मोंटे कार्लो सिमुलेशन में संभावित शिपिंग तिथियों की भविष्यवाणी के लिए करना। यह व्यक्तिगत अनुमान पूर्वाग्रह और अप्रत्याशित कारकों को ध्यान में रखता है।

समय-सारिणी कटौती को मजबूर करती है। यथार्थवादी समय-सारिणी का एक मुख्य लाभ यह है कि यह दिखाती है जब योजनाबद्ध फीचर्स उपलब्ध समय से अधिक हो जाते हैं। इससे आवश्यक फीचर कटौती होती है, जिससे सबसे मूल्यवान फीचर्स को प्राथमिकता मिलती है और उत्पाद जल्दी रिलीज़ होता है। समय दबाव के कारण कटे फीचर्स अक्सर कम महत्वपूर्ण होते हैं।

8. मौजूदा कोड को पुनर्गठित करना और सुधारना आमतौर पर नए सिरे से शुरू करने से बेहतर होता है।

एक कमज़ोर कंपनी, शायद एक्सप्रेस-पैकेज-डिलीवरी व्यवसाय से आई कोई, कोड को फेंक कर नया शुरू करने का फैसला कर सकती है।

कोड पुनर्लेखन जोखिम भरा है। जब मौजूदा कोड गड़बड़ या वर्तमान उद्देश्य के लिए उपयुक्त न हो, तो नया कोड बेस शुरू करना आकर्षक लगता है। लेकिन यह आमतौर पर गलत होता है क्योंकि यह संचित ज्ञान (बग फिक्स सहित) को खो देता है और अनुमान से कहीं अधिक समय लेता है, अक्सर शिप नहीं होता या नई समस्याएँ लाता है।

सफाई प्रभावी है। बेहतर तरीका है मौजूदा कोड बेस को "साफ़" या पुनर्गठित करना। इसका मतलब है छोटे, तार्किक परिवर्तन करना ताकि आंतरिक संरचना, पठनीयता और रखरखाव में सुधार हो, बिना नए फीचर्स जोड़े या मौजूदा कार्यक्षमता को तोड़े। यह प्रक्रिया क्रमिक और पूर्वानुमेय हो सकती है।

पुनर्गठन के लाभ। कोड की सफाई, यहां तक कि लाइन दर लाइन, नए फीचर्स जोड़ना आसान बनाती है, नए बग्स के आने की संभावना कम करती है (क्योंकि जटिल लॉजिक को फिर से नहीं लिखा जा रहा), और मौजूदा कोड में निहित मूल्यवान ज्ञान को संरक्षित करती है। यह स्वस्थ कोड बेस के लिए अधिक कुशल और कम जोखिम भरा रास्ता है।

9. सॉफ्टवेयर की कीमत निर्धारण में बाजार की गतिशीलता, ग्राहक मूल्य और दीर्घकालिक रणनीति को समझना आवश्यक है।

सबसे बड़ी गलती जो सॉफ्टवेयर कंपनियाँ करती हैं, वह है बहुत कम चार्ज करना, जिससे उन्हें पर्याप्त आय नहीं मिलती और वे बंद हो जाती हैं। उससे भी बड़ी गलती, हाँ, सबसे बड़ी गलती से भी बड़ी, है बहुत अधिक चार्ज करना, जिससे ग्राहक नहीं मिलते और वे बंद हो जाती हैं।

मांग वक्र नीचे की ओर झुका होता है। सामान्यतः, जितनी अधिक कीमत होगी, उतने कम ग्राहक खरीदेंगे। लक्ष्य मात्र इकाइयों की बिक्री अधिकतम करना नहीं, बल्कि...

[त्रुटि: उत्तर अधूरा है]

अंतिम अपडेट:

Want to read the full book?

समीक्षाएं

4.05 में से 5
औसत 546 Goodreads और Amazon से रेटिंग्स.

मोर जोएल ऑन सॉफ्टवेयर जोएल स्पोलस्की द्वारा लिखे गए ब्लॉग पोस्टों का संग्रह है, जो सॉफ्टवेयर विकास और व्यवसाय के विभिन्न पहलुओं को समेटे हुए है। पाठक स्पोलस्की की चतुराई, गहरी समझ और स्पष्ट लेखन शैली की खूब सराहना करते हैं। यह पुस्तक प्रोग्रामिंग, प्रबंधन और सॉफ्टवेयर उद्योग से जुड़ी महत्वपूर्ण सलाह प्रदान करती है। हालांकि कुछ सामग्री पुरानी हो सकती है, फिर भी कई सिद्धांत आज भी प्रासंगिक बने हुए हैं। समीक्षकों ने इस पुस्तक को आनंददायक और ज्ञानवर्धक पाया, खासकर उन लोगों के लिए जो सॉफ्टवेयर विकास या उद्यमिता में हैं। कुछ आलोचकों ने पिछली रचनाओं से दोहराव और पुरानी जानकारी की ओर इशारा किया है, लेकिन कुल मिलाकर, यह पुस्तक अपनी व्यावहारिक बुद्धिमत्ता और रोचक विषय-वस्तु के लिए अच्छी तरह स्वीकार की गई है।

Your rating:
4.46
30 रेटिंग्स

लेखक के बारे में

जोएल स्पोल्स्की एक प्रसिद्ध सॉफ़्टवेयर डेवलपर, लेखक और उद्यमी हैं। उन्होंने फॉग क्रीक सॉफ़्टवेयर और स्टैक ओवरफ़्लो की स्थापना की, और अपने प्रभावशाली ब्लॉग "जोएल ऑन सॉफ़्टवेयर" के लिए जाने जाते हैं। स्पोल्स्की की लेखन शैली को उसकी स्पष्टता, हास्य और जटिल अवधारणाओं को सरल भाषा में समझाने की क्षमता के लिए सराहा जाता है। वे सॉफ़्टवेयर उद्योग में अपने व्यापक अनुभव, जिसमें माइक्रोसॉफ्ट में बिताया गया समय भी शामिल है, से प्रेरणा लेकर प्रोग्रामिंग, प्रबंधन और व्यावसायिक रणनीतियों पर गहन अंतर्दृष्टि प्रदान करते हैं। उनकी किताबें, जैसे "मोर जोएल ऑन सॉफ़्टवेयर," उनके लोकप्रिय ब्लॉग पोस्ट का संग्रह हैं, जो सॉफ़्टवेयर पेशेवरों और उद्यमियों दोनों के लिए व्यावहारिक सलाह और विचारोत्तेजक विचार प्रस्तुत करती हैं। उनके कार्य ने सॉफ़्टवेयर विकास समुदाय पर गहरा प्रभाव डाला है, जिससे वे इस क्षेत्र में एक सम्मानित व्यक्तित्व बन गए हैं।

Listen
Now playing
More Joel on Software
0:00
-0:00
Now playing
More Joel on Software
0:00
-0:00
1x
Voice
Speed
Dan
Andrew
Michelle
Lauren
1.0×
+
200 words per minute
Queue
Home
Swipe
Library
Get App
Create a free account to unlock:
Recommendations: Personalized for you
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
200,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Aug 3,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
200,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Start a 7-Day Free Trial
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...