सामान्यतया, क्या सभी कार्यात्मक भागों को बनाना बेहतर है या पहले यूआई काम कर रहा है - या दोनों का मिश्रण?


47

सामान्यतया, क्या सभी कार्यात्मक भागों को बनाना बेहतर है या पहले यूआई काम कर रहा है - या दोनों का मिश्रण?

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

हम सभी प्रबंधनीय टुकड़ों में काम करना जानते हैं, लेकिन सवाल यह है कि क्या UI को प्रबंधनीय टुकड़ों में शामिल किया गया है जो मुझे लगता है।

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

इस विशेष प्रश्न में उदाहरण अनुप्रयोग है यहाँ के साथ साथ ब्लॉग और मूल व्यावसायिक उत्पाद

जवाबों:


85

कई व्यापार उपयोगकर्ताओं और ग्राहकों के बीच एक सामान्य धारणा है कि जब यह पूरा दिखता है , तो यह लगभग पूरा हो जाता है। जैसा कि आप जानते हैं, यह सच्चाई से बहुत दूर है। एक अच्छा लग सकता है, लेकिन कोई बैकएंड नहीं है और कुछ उपयोगकर्ताओं को लगता है कि यह अच्छा लग रहा है 80% काम है, न कि 20% ( या अन्य 80% )।

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

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

'एक पहले और दूसरे' के साथ सबसे खराब स्थिति यह है कि जब आप दूसरे हिस्से में पहुंचते हैं, तो आप पाते हैं कि यह डिजाइन बिल्कुल भी फिट नहीं है।

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

जोएल ने द आइसबर्ग सीक्रेट, रिवील्ड में इस बारे में लिखा है :

महत्वपूर्ण कोरोलरी दो। यदि आप एक गैर-प्रोग्रामर स्क्रीन दिखाते हैं जिसमें एक उपयोगकर्ता इंटरफ़ेस है जो 100% सुंदर है, तो वे सोचेंगे कि कार्यक्रम लगभग हो चुका है।

जो लोग प्रोग्रामर नहीं हैं, वे केवल स्क्रीन को देख रहे हैं और कुछ पिक्सेल देख रहे हैं। और अगर पिक्सल जैसा दिखता है तो वे एक प्रोग्राम बनाते हैं जो कुछ करता है, वे सोचते हैं "ओह, गोश, वास्तव में काम करने के लिए कितना कठिन हो सकता है?"

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

यह फिर से ब्लॉग पोस्ट में दोहराया जाता है कि डेमो लुक को पूरा न करें जिसमें यह सहायक ग्राफ है:

यह कैसे किया जाता है यह कैसा दिखता है

ध्यान दें कि दो विकल्प आम तौर पर 'यूआई करवाएं' को दर्शाते हैं (और फिर उम्मीद यह है कि आप जल्द ही हो जाएंगे) और 'बैकएंड हो गया' (और फिर ग्राहक आपके बारे में चिंतित है कि आपको समय सीमा याद आ रही है)।

कैसे किया गया 'कुछ दिखता है' कैसा होना चाहिए।

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

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


जो लोग जावा स्विंग दुनिया में इसके साथ लड़ रहे हैं, उनके लिए नैपकिन नामक एक लुक और फील है, जो इसे बनाता है ताकि यूआई पूरा न दिखे (भले ही यह हो)।

कुंजी यहाँ यह इतना बनाने के लिए है कि यह नहीं करता है देखो किया। UI का पूर्ण रूप से दिखना कई व्यावसायिक उपयोगकर्ताओं के लिए एक संकेत है कि आवेदन पूरा हो गया है (भले ही इसके कुछ स्थिर पृष्ठ इसके पीछे कोई तर्क हो या एक इंटरफ़ेस बिल्डर में निर्मित कुछ)।


आगे पढ़ने (और लेख से लिंक):


7
लगता है कि आप किसी तरह की चुस्त कार्यप्रणाली का प्रस्ताव दे रहे हैं ... :)
अलेक्जेंडर

7
@Alexander Agile इस मामले में मदद करता है, लेकिन आवश्यक नहीं है। झरना हो सकता है (डिलीवर करने योग्य) मील के पत्थर और ग्राहक इसे देखकर बहुत निराश हो सकते हैं "ऐसा लगता है, क्यों 3 और मील के पत्थर हैं जो सिर्फ लंबे समय तक ले जाते हैं?" एफडब्ल्यूआईडब्ल्यू, मेरे पास ऐसे उदाहरण हैं जहां व्यापार उपयोगकर्ता ने सोचा कि यह तकनीकी डिजाइन (झरना की दुकान) में स्क्रीन शॉट + एमएस पेंट के कारण अच्छा था।

3
यदि आप उस वीडियो का विशेषज्ञ उत्तर नहीं देखते हैं, तो यह यहाँ है: youtu.be/B7MIJP90biM
ragol

3
मैं अपने प्रोग्रामिंग कैरियर के थोक के लिए यूआई को डिजाइन कर रहा हूं और न ही मेरे पास एक ग्राहक है जो एक प्रोटोटाइप यूआई का मतलब था कि सॉफ्टवेयर 'लगभग किया गया था'। यह मुझे लगता है कि वायरफ्रेम यूआई के प्रस्तुतकर्ता ऐसा नहीं कर रहे हैं कि वायरफ्रेम को सामने बताकर कोई अच्छा काम नहीं हो रहा है अगर ग्राहक किसी तरह से यह सोचकर भ्रमित हो जाते हैं कि परियोजना लगभग पूरी हो चुकी है।
ग्राहम

2
नैपकिन एल एंड एफ के लिए +1। वह निश्चित रूप से मेरे भविष्य में होगा। :)
कैथी

27

यह निर्भर करता है: आपको अपनी कार्यक्षमता के सबसे महत्वपूर्ण टुकड़े के चारों ओर एक तंग फीडबैक लूप की आवश्यकता है

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

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

वहाँ के बीच में एक फ़ज़ी ग्रे क्षेत्र है जहाँ आपको सबसे अच्छा संयोजन कैसे तय करना है और अपने कोड (स्वचालित परीक्षण? यूआई? मैंने व्यक्तिगत रूप से दोनों चरम और सब कुछ बीच में किया है, और उस स्पेक्ट्रम पर होने के लिए सही जगह तय करना है जो मुझे सबसे कठिन चीजों में से एक है जो मुझे तय करना है और मैं जिस प्रकार की चीज़ का निर्माण कर रहा हूं उस पर 100% निर्भर है।


2
यानी जोखिम और / या विफलता की संभावना को कम करने के लिए जोखिम वाले और सबसे महत्वपूर्ण घटकों को सामने से पहचानें और संबोधित करें। चाहे वे घटक यूआई, व्यापार तर्क, आदि ... या सबसे अधिक संभावना है, सभी विभिन्न घटकों के कुछ संयोजन।
अलेक्जेंडर

1
यह वास्तव में ऐसा लगता है जैसे आप मेरे लिए प्रोटोटाइप के बारे में बात कर रहे हैं, क्योंकि यदि आप अभी भी डिजाइनों को फेंक रहे हैं, तो यही है कि आपको क्या करना चाहिए - वास्तविक कोड नहीं।
हारून

8

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

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

संक्षेप में, हाँ, यूआई कार्य बिल्कुल हिस्सा है और कार्यात्मक कार्य की एक इकाई का पार्सल है, अगर आपके पास यूआई है।

कुछ छोटे से शुरू होता है जो काम करता है, और सॉफ्टवेयर की एक पूरी सामग्री देने के लिए अपनी कार्यक्षमता को बढ़ाता है।


+1 हमेशा किसी चीज़ का एक टुकड़ा होना आवश्यक है।
जेन्स जी जूल 27'14

@ जेन्स: "हमेशा किसी चीज़ का एक टुकड़ा होना आवश्यक होता है" यह एक सरसों है। सबसे अच्छा है कि केवल सॉफ्टवेयर अनुप्रयोगों के अल्पसंख्यक पर लागू होता है। वास्तविक दुनिया में, केवल आवश्यक नौकरी का हिस्सा करने वाले अनुप्रयोग थोड़े से उपयोगी नहीं होते हैं।
डंक

वही तुम्हारे अनुभव हैं। मेरे पास अलग हैं। मील के पत्थर और वास्तविक ग्राहकों के साथ बड़ी, वास्तविक दुनिया की परियोजनाएं शामिल हैं।
JensG

1
@ डंक: ऐसा एप्लिकेशन जो नौकरी का कोई हिस्सा नहीं करता है, वह उस एप्लिकेशन की तुलना में कम उपयोगी है जो नौकरी का हिस्सा है। हालाँकि, मैं उस एप्लिकेशन के बारे में बात नहीं कर रहा हूँ जो "किया गया" है; मैं उस आदेश के बारे में बात कर रहा हूं जो एक आवेदन का निर्माण करना चाहिए। मेरा अनुभव JensG के अनुरूप है: हमेशा उस सप्ताह जो आपने प्रदर्शित किया था, उसके आधार पर एक बीटा को काटने में सक्षम होने और ग्राहकों को तुरंत जहाज करने से ग्राहकों को अधिक खुशी मिलती है।
कीथ बी

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

3

मैं कार्यक्षमता और यूआई (और प्रतिक्रिया या परीक्षण अनुभव ASAP) दोनों का मिश्रण बनाने की सलाह दूंगा।

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


2

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

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


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

2

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

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

हालांकि खबरदार, यह मूर्ख नहीं है। कुछ मुद्दों को देखने के लिए आपको थोड़ी दूरदर्शिता की आवश्यकता है। उदाहरण के लिए, आपको समझदार तरीके से डेटा प्रदर्शित करने के लिए UI घटकों पर शोध करने की आवश्यकता हो सकती है।


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

आह, मेरे "ग्राहक" मेरे ठीक बगल में बैठे हैं, और मेरे पास मैदान में एक पृष्ठभूमि है जो मुझे एक अच्छा विचार देता है कि मुझे क्या चाहिए। मूल रूप से हम हमेशा अंतिम उत्पाद, यूआई वार के करीब होते हैं, और मुझे हमेशा प्रतिक्रिया मिल सकती है। मैं एक लंबी प्रतिक्रिया पाश होने की समस्या पर विचार नहीं किया था। मुझे लगता है कि डोमेन ज्ञान महत्वपूर्ण है।
कार्लोस

0

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


0

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

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


0

निर्भर करता है। आपकी आवश्यकताओं को कितनी अच्छी तरह परिभाषित किया गया है? UI कितनी प्रणाली का सामना कर रहा है?

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

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

तब आपके पास अपने स्प्रिंट होते हैं और कुछ समय में UI और कार्यात्मक दोनों पहलुओं को विकसित करने वाले ग्राहक के साथ निरंतर संचार होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.