फेसबुक के मोबाइल ऐप विकास प्रक्रिया पर एक नज़र

लेखक: Laura McKinney
निर्माण की तारीख: 4 अप्रैल 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
[रोवेब विकास] मोबाइल ऐप विकास प्रक्रिया
वीडियो: [रोवेब विकास] मोबाइल ऐप विकास प्रक्रिया

विषय


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

कार्यालय सिर्फ वही हैं जो आप फेसबुक की छवि से उम्मीद करते हैं, हालांकि सामाजिक नेटवर्क के स्तर से बहुत अधिक नहीं। यह एक ऐसी जगह है जहाँ गंभीर काम हो जाता है, लेकिन फिर भी एक ट्रेंडी, विचित्र और शांत वातावरण होता है। कर्मचारी जहां भी चुनते हैं, वहां काम करने के लिए लैपटॉप ले जा सकते हैं, पोस्टर बनाने के लिए एक मुद्रण कक्ष है (सिर्फ इसलिए), दीवारों में से कई पर कलाकृति, और एक विशाल निंजा कछुए - मुझे कभी भी इसका जवाब नहीं मिला।

ओह, और खाना अविश्वसनीय है। मैं चीनी नव वर्ष के दौरान वहां था और मेरे पास था विभिन्न शूकर के उदर का मांस। अच्छा समय।


हालाँकि, मैं वहाँ सजावट और व्यंजनों का आनंद लेने के लिए नहीं था, मैं मोबाइल पर फेसबुक के बारे में जानने के लिए वहाँ था। अधिक विशेष रूप से: कैसे पृथ्वी पर आप भी इस परियोजना को बनाए रखने के बारे में जाने के लिए इस बड़े और महत्वाकांक्षी? फेसबुक बैकएंड दो बिलियन से अधिक लोगों की सेवा करता है, और अकेले एंड्रॉइड ऐप हर हफ्ते एक नया संस्करण जारी करता है।

आप इस तरह की महत्वाकांक्षी संख्या के साथ किसी ऐप को कैसे प्रबंधित करते हैं

मैंने फेसबुक के अपने टेलिप्रेज़ेंस सिस्टम के माध्यम से ताल केल्नर के साथ बात की। ताल एक तकनीकी कार्यक्रम प्रबंधक है, जो तेल अवीव इंजीनियरिंग कार्यालय में स्थित रिलीज़ इंजीनियरिंग टीम का प्रभारी है। किरकिरा विवरण साझा करने के लिए वह अधिक खुश थी।

ताल और उसकी टीम ने पहली बार फेसबुक के अपने लाइट वर्जन को iOS पर अपलोड किया है

मैंने जो सीखा वह एक डेवलपर परिप्रेक्ष्य और एक उपयोगकर्ता के रूप में दोनों के लिए बहुत आकर्षक था। यहाँ मुझे पता चला है


फेसबुक पर प्रोजेक्ट मैनेजमेंट - व्हाई स्क्रम> वाटरफॉल

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

परियोजना प्रबंधन के लिए अधिक आधुनिक दृष्टिकोण के बजाय फेसबुक जैसी कंपनियां "स्क्रैम" कहलाती हैं

महत्वपूर्ण रूप से, इस दृष्टिकोण में आप अगले चरण को शुरू नहीं करते हैं जब तक कि पिछला चरण पूरा नहीं हो जाता है। सिस्टम निर्माण से उत्पन्न होता है, जहां कुछ चरण अक्सर पिछले चरण पर भरोसा करते हैं: दीवार बनाने से पहले आपको ईंटों को स्रोत करने की आवश्यकता होती है!

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

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

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

संगठन के भीतर कहीं से भी कोई भी एक नई सुविधा के लिए एक विचार सुझा सकता है

मैं यह सुनकर बहुत प्रभावित हुआ कि संगठन के भीतर कहीं से भी कोई व्यक्ति एक नई सुविधा के लिए एक सुझाव दे सकता है, और फिर उस पर काम कर सकता है, अगर वह आगे बढ़ता है। कभी-कभी यह अपने अलग ऐप में भी विकसित हो सकता है! फेसबुक कुछ लोगों (या एक व्यक्ति) के ऊपर से नीचे लागू दृष्टि की तुलना में एक सहयोगी परियोजना है जिसे अक्सर इसके रूप में चित्रित किया जाता है।

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

फेसबुक आम तौर पर नए विचारों और स्टार्टअप का बहुत समर्थन करता है। यहां तक ​​कि इसके पास एलडीएन एलएबी नामक एक पहल है जो नए विचारों और व्यवसायों को समर्थन देने के लिए समर्पित है।

संतुलन ढूँढना

ताल की अपनी स्लाइड्स से लिया गया

बेशक, अभी भी हमेशा एक सीमा होने वाली है जब यह आता है कि एक कंपनी क्या संभाल सकती है। इस कोड के साथ हमेशा सुधार की गुंजाइश रहती है, लेकिन एक समय ऐसा भी आता है जब संस्करण को "अच्छा पर्याप्त" माना जाता है।

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

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

संस्करण नियंत्रण और बाजीगरी परिवर्तन

इन अद्यतनों और कोड में परिवर्तनों को संभालने के लिए, Facebook अपने स्वयं के संशोधित संस्करण का उपयोग करता है। इसके बजाय बहुत व्यापक रूप से उपयोग किए जाने वाले Git, जो जाहिरा तौर पर कंपनी के उद्देश्यों के लिए बड़े पैमाने पर नहीं था। Phabricator GitHub के समतुल्य है, और बहुत सारे प्लगइन्स का उपयोग करके स्ट्रीमलाइन वर्कफ़्लो की मदद करने के लिए और कभी-कभी बस चीज़ों को थोड़ा और मज़ेदार बनाने के लिए उपयोग करता है (Facebook को इसके मेमेस स्पष्ट रूप से पसंद हैं)।

गैर-प्रोग्रामर के लिए वहाँ, मर्क्यूरियल, जैसे गिट, एक संस्करण नियंत्रण प्रणाली है। यह बड़ी संख्या में लोगों को सॉफ़्टवेयर के एक टुकड़े पर काम करने और मुख्य ऐप संस्करण को खतरे में डाले बिना परिवर्तन और सुधार करने की अनुमति देता है, जिसे "मास्टर शाखा" कहा जाता है। ये उपकरण कोड संघर्षों को रोकने और प्रयोग की अनुमति देने में मदद करते हैं। केवल एक बार एक परीक्षण शाखा पर एक बदलाव को अच्छी तरह से मंजूरी दे दी गई है तो यह मास्टर के लिए प्रतिबद्ध होगा।

सोचिए अगर किसी गरीब प्रोग्रामर ने एक टाइपो बना दिया जो पूरे कोड को तोड़ देता है और केवल एक संस्करण है! वह हर किसी के लिए एक बुरा दिन होगा।

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

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

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

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

समय में पकड़ने कीड़े

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

उस अंत तक, टीम सी 1, सी 2 और सी 3 के रूप में संदर्भित किए गए सॉफ्टवेयर परीक्षण को स्तरों में विभाजित करती है।

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

स्वयंसेवक जो खुद को आगे रखने के लिए आगे बढ़ते हैं, "ट्री हगर्स" (क्योंकि शाखाएं) नाम से आगे बढ़ते हैं, और अपनी नियमित नौकरियों के शीर्ष पर ऐसा करते हैं।

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

जल्दी से रिपोर्टिंग बग के लिए उनके निपटान में परीक्षकों के पास कुछ अद्वितीय और दिलचस्प उपकरण भी हैं। एक "रागेशके" है, जहां केवल निराशा में डिवाइस को हिलाना Google मैप्स की तरह एक बग रिपोर्ट को सक्षम करेगा।

जल्दी से रिपोर्टिंग बग के लिए उनके निपटान में परीक्षकों के पास कुछ अद्वितीय और दिलचस्प उपकरण भी हैं

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

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

स्वचालन और बल गुणन के लिए शक्तिशाली उपकरण

इस पूरी प्रक्रिया को जल्द से जल्द और सुचारू रखने के लिए, फेसबुक बड़ी संख्या में विभिन्न उपकरणों का उपयोग करता है। हमने पहले ही देखा है कि कंपनी Phabricator और Sapienz का उपयोग कैसे करती है, लेकिन इसमें अन्य चरणों के लिए अन्य उपकरण और प्लगइन्स हैं।

पिकनिक नामक एक उपकरण त्वरित और आसान समीक्षा के लिए सभी अनुरोधों (कर्मचारियों द्वारा किए गए परिवर्तन) को एक स्थान पर इकट्ठा करता है।

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

जब परीक्षण किसी को ठीक करने के लिए एक त्रुटि फेंकता है, तो नागबॉट नामक एक बॉट उन जिम्मेदार लोगों को सूचित करता है और धीरे से उन्हें काम पूरा करने में मदद करता है

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

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

बेशक फेसबुक अपने ऐप के प्रत्येक नए संस्करण को प्ले स्टोर, ऐप स्टोर, अमेज़ॅन और बाकी सभी पर अपलोड करने में समय बर्बाद करने वाला नहीं है। इसके लिए एक ऐप भी है जिसे मोबाइल पुश ट्रेन कहा जाता है।

विचार बंद करना

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

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

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

यह सरल लगता है, लेकिन जैसा कि आप देख सकते हैं इसमें बहुत सारी कताई प्लेटें शामिल हैं। यहां तक ​​कि प्रक्रिया में उपयोग किए जाने वाले सभी उपकरणों को बनाए रखना अपने आप में एक परियोजना है!

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

अगली बार जब कोई नया अपडेट आपके किसी बड़े ऐप के लिए रोल आउट हो जाता है, तो इसे प्राप्त करने के लिए किए गए सभी काम और संगठन के लिए एक विचार को छोड़ दें।

OnePlu 7T Pro McLaren Edition डालें। गया विस्तृत पैकेजिंग है। इसके बजाय आपको तुरंत पहचाने जाने वाले पपीता ऑरेंज कलरवे के साथ एक स्ट्रिप-टू-द-हड्डियां, कार्बन फाइबर-स्टाइल बॉक्स मिलता है। एक डिवाइस के ...

वनप्लस 7T प्रो संभवत: कल लंदन में लॉन्च होगा। कंपनी ने आधिकारिक तौर पर अभी तक डिवाइस का खुलासा नहीं किया है, लेकिन उस प्रतिष्ठित रोमानियाई रिटेल साइट EvoMag को 4T रोमानियाई लेई (~ $ 925) में बिक्री के...

आपको अनुशंसित