जेव्हा मी माझी पहिली वेबसाइट बनवण्यासाठी बसलो, तेव्हा तो उत्साह खरा होता. मला वाटले की कोडिंग शिकणे हा कठीण भाग असेल—टॅग्स पाठ करणे, फंक्शन्स समजून घेणे, सिंटॅक्स अचूक करणे. पण मी चुकीचा होतो. कोड लिहिणे हा सोपा भाग ठरला. खरी आव्हाने ती ओळी अशा गोष्टीत रूपांतरित करणे होते, जी लोक गोंधळ किंवा वैताग न येता सहज वापरू शकतील. त्या पहिल्या प्रोजेक्टने मला शिकवले की डेव्हलपमेंट म्हणजे केवळ एकाकीपणे टाईप करणे नसून, तुमच्या 'stack' ची पर्वा न करणाऱ्या मानवांसाठी समस्या सोडवणे आहे. मी अशा चुका केल्या ज्याचा मला वेळ, झोप आणि सुरुवातीचे युजर्स गमावा लागला. त्यापैकी पाच चुका सर्वात वेगळ्या ठरल्या.

Chasing Perfection Before Shipping

मी परिपूर्णतेच्या जाळ्यात अशा वेळी अडकलो होतो, जेव्हा मला काहीही 'परफेक्ट' म्हणण्याचा अधिकारही मिळालेला नव्हता. मी संपूर्ण दुपार फक्त हेक्स कोड्स (hex codes) बदलण्यात, बॉर्डर-रेडियस (border-radius) व्हॅल्यूज आठ पिक्सेलवरून दहा पिक्सेलवर आणि पुन्हा मागे करण्यात, आणि एकही व्हिजिटर पेज पाहण्यापूर्वी हेडलाईन कॉपी पाच वेळा पुन्हा लिहिण्यात घालवली. मी स्वतःला सांगितले की मी काम सुधारत आहे, पण प्रत्यक्षात मी गुणवत्तेच्या नावाखाली काम पुढे ढकलत (procrastinating) होतो. परिणाम? मी तीन आठवडे उशिरा लाँच केले. जेव्हा साइट शेवटी लाईव्ह झाली, तेव्हा मी ज्या बटण कर्व्हसाठी (button curve) इतकी मेहनत घेतली होती, त्यावर एकाही युजरने कमेंट केली नाही. त्यांना फक्त हे महत्त्वाचे होते की फॉर्म क्रॅश न होता सबमिट होतोय की नाही.

धडा लक्षात राहिला: तुमचे काम आधी लाँच करा. तुम्हाला मिळालेल्या फीडबॅकशिवाय तुम्ही त्यात सुधारणा करू शकत नाही. स्ट्रक्चर भक्कम करा, मुख्य मार्ग (core path) व्यवस्थित काम करतोय याची खात्री करा आणि ते लाईव्ह करा. सुधारणा ही 'version two' साठी असते, 'version zero' साठी नाही. काय खरोखर बिघडले आहे आणि काय फक्त तुम्हाला अपूर्ण वाटते आहे, हे तुमचे युजर्स तुम्हाला सांगतील.

Building Too Much Too Soon

माझा प्रोजेक्ट पुस्तकांच्या शिफारसी शेअर करण्यासाठी एक साधे साधन म्हणून सुरू झाला होता. तेवढेच त्याचे उद्दिष्ट होते. पण दुसऱ्या आठवड्यापर्यंत, मी युजर लॉगिन सिस्टम, डायनॅमिक रेटिंग ग्राफ, नेस्टेड कमेंट सेक्शन, डार्क-मोड टॉगल आणि ईमेल डायजेस्टचे आराखडे तयार केले होते. त्यापैकी काहीही नीट चालत नव्हते. लॉगिन फ्लो अर्ध्या वेळा बिघडत असे. ग्राफमध्ये दाखवण्यासाठी कोणतेही वास्तविक डेटा नव्हते. कमेंट सेक्शनमध्ये डुप्लिकेट कमेंट्स येत होत्या. दरम्यान, मूलभूत बुक-लिस्टिंग फीचर—ज्यासाठी ही साइट होतीच—ते अर्धवट आणि खराब झालेल्या इतर फीचर्सच्या ढिगाऱ्याखाली दबले गेले होते, ज्यामुळे होमपेजवर येणाऱ्या कोणालाही गोंधळ उडत असे.

एक साधी साइट जी एक समस्या स्वच्छपणे सोडवते, ती दहा गोष्टी अकार्यक्षमतेने करणाऱ्या जटिल साइटपेक्षा नेहमीच चांगली असेल. कोडची दुसरी ओळ लिहिण्यापूर्वी, तुमचे उत्पादन युजरसाठी कोणते एक काम करते ते निश्चित करा. तेच बनवा. त्याची चाचणी घ्या. ते विश्वसनीय होईपर्यंत त्यावर काम करा. जर युजर्सनी डॅशबोर्ड किंवा सोशल फीडची मागणी केली, तर तुम्ही ते नंतर जोडू शकता. तोपर्यंत, जेव्हा फक्त एका धारदार चाकूची गरज असते, तेव्हा 'Swiss Army knife' बनवण्याची इच्छा रोखून धरा.

Ignoring the Experience Behind the Looks

मी सुंदर फॉन्ट्स आणि स्टायलिश कलर पॅलेट निवडण्यात तासनतास घालवले. मी हिरो सेक्शनच्या (hero section) बॅकग्राउंड ग्रेडियंटवर खूप वेळ खर्च केला. त्यानंतर मी साइट वापरताना प्रत्यक्षात कशी वाटते, याकडे दुर्लक्ष केले. पेजेस लोड व्हायला खूप वेळ लागत होता कारण मी कॉम्प्रेशनशिवाय फुल-रिझोल्यूशन PNG फाइल्स वापरल्या होत्या. नेव्हिगेशन लेबल्समध्ये असे शब्द वापरले होते जे दिसायला चांगले होते पण लिंक कुठे नेईल याचा अंदाज लोकांना लावावा लागत असे. बटणे पातळ आणि स्टायलिश होती पण फोनच्या स्क्रीनवर टॅप करण्यासाठी ती खूप लहान होती.

व्हिज्युअल डिझाइन आणि युजर एक्सपिरियन्स (user experience) हे एकमेकांना पर्याय नाहीत, हे मला कडू अनुभवातून समजले. जर व्हिजिटर्सना बॅनर इमेजसाठी काही सेकंद वाट पाहावी लागली किंवा त्यांना दोन क्लिकमध्ये तुमच्यापर्यंत कसे पोहोचायचे हे समजले नाही, तर एक सुंदर इंटरफेसही अपयशी ठरतो. प्रत्येक इंटरॅक्शन सोपे ठेवा. नेव्हिगेशनसाठी साधी भाषा वापरा. तुमच्या ॲसेट्सचे (assets) कॉम्प्रेशन करा. टॅप टार्गेट्स (tap targets) पुरेसे मोठे आहेत का ते तपासा. वेग आणि स्पष्टता हे शेवटी जोडले जाणारे बोनस नाहीत; ते पाया आहेत ज्यावर सर्व काही अवलंबून असते.

Testing Only on My Own Machine

मी संपूर्ण साइट एकाच लॅपटॉपवर, एकाच ब्राउझरमध्ये आणि एकाच स्क्रीन रिझोल्यूशनवर विकसित केली. माझ्या मशीनवर सर्व काही निर्दोष दिसत होते. मग एका मैत्रिणीने ती तिच्या iPhone वर उघडली. बटणे एकमेकांवर येत होती. मजकूर कंटेनरच्या बाहेर जात होता. दुसऱ्या एका मित्राने Mac वर Safari वापरली आणि संपूर्ण CSS ग्रिड लेआउट विस्कळीत होऊन वाचता न येण्यासारखा झाला. मी मनातल्या मनात असे मानले होते की जर ते माझ्यासाठी काम करत असेल, तर ते सर्वांसाठी काम करेल. या गृहितकामुळे मला एक पूर्ण वीकेंड घाईघाईने चुका सुधारण्यात (hotfixes) आणि माफी मागण्यात घालवावा लागला.

माझी चूक पुन्हा करू नका. पब्लिश करण्यापूर्वी, तुमची साइट Chrome, Firefox, Safari आणि Edge मध्ये तपासा. विविध रुंदीचे फोन, टॅब्लेट आणि लॅपटॉप सिम्युलेट करण्यासाठी तुमच्या ब्राउझरचे डेव्हलपर टूल्स वापरा. प्रत्येक लिंकवर क्लिक करा. प्रत्येक फॉर्म सबमिट करा. विंडोचा आकार बदलून पहा. टेस्टिंगमध्ये सापडलेले बग्स (bugs) प्रोडक्शनमध्ये युजर्सना सापडणाऱ्या बग्सपेक्षा खूप स्वस्त पडतात.

Treating Feedback Like a Personal Attack

प्रकल्प शेअर करताना मला खूप अस्वस्थ वाटत होते. जर लोकांना ते आवडले नाही तर? जेव्हा एका सहकाऱ्याने मी खर्च केलेल्या एका feature ला काढून टाकण्याचा सल्ला दिला...