ನಾನು ನನ್ನ ಮೊದಲ ವೆಬ್ಸೈಟ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಕುಳಿತಾಗ, ಆ ಉತ್ಸಾಹ ನಿಜವಾಗಿಯೂ ಅದ್ಭುತವಾಗಿತ್ತು. ಕೋಡಿಂಗ್ ಕಲಿಯುವುದೇ ಕಷ್ಟದ ಕೆಲಸ ಎಂದು ನಾನು ಭಾವಿಸಿದ್ದೆ—ಟ್ಯಾಗ್ಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದು, ಫಂಕ್ಷನ್ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು, ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಸರಿಯಾಗಿ ಬರೆಯುವುದು ಇವೆಲ್ಲವೂ. ನಾನು ತಪ್ಪಾಗಿದ್ದೆ. ಕೋಡ್ ಬರೆಯುವುದು ಸುಲಭದ ಕೆಲಸವಾಗಿತ್ತು. ನಿಜವಾದ ಸವಾಲು ಎಂದರೆ ಆ ಸಾಲುಗಳನ್ನು ಜನರು ಗೊಂದಲ ಅಥವಾ ಹತಾಶೆಯಿಲ್ಲದೆ ಬಳಸಬಹುದಾದ ವಸ್ತುವಾಗಿ ಪರಿವರ್ತಿಸುವುದು. ನಿಮ್ಮ 'stack' ಬಗ್ಗೆ ತಲೆಕೆಡಿಸಿಕೊಳ್ಳದ ಮನುಷ್ಯರಿಗಾಗಿ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವುದೇ ಅಭಿವೃದ್ಧಿಯ ಮುಖ್ಯ ಉದ್ದೇಶವೇ ಹೊರತು, ಏಕಾಂಗಿಯಾಗಿ ಟೈಪ್ ಮಾಡುವುದಲ್ಲ ಎಂದು ಆ ಮೊದಲ ಪ್ರಾಜೆಕ್ಟ್ ನನಗೆ ಕಲಿಸಿತು. ನಾನು ಮಾಡಿದ ತಪ್ಪುಗಳಿಂದಾಗಿ ನನಗೆ ಸಮಯ, ನಿದ್ದೆ ಮತ್ತು ಆರಂಭಿಕ ಬಳಕೆದಾರರನ್ನು ಕಳೆದುಕೊಳ್ಳಬೇಕಾಯಿತು. ಅವುಗಳಲ್ಲಿ ಐದು ತಪ್ಪುಗಳು ಅತಿ ಹೆಚ್ಚು ಗಮನ ಸೆಳೆದವು.
ಬಿಡುಗಡೆ ಮಾಡುವ ಮೊದಲು ಪರಿಪೂರ್ಣತೆಯನ್ನು ಹುಡುಕುವುದು
ನಾನು ಯಾವುದನ್ನಾದರೂ ಪರಿಪೂರ್ಣ ಎಂದು ಕರೆಯುವ ಹಕ್ಕನ್ನು ಪಡೆಯುವ ಮೊದಲೇ ಪರಿಪೂರ್ಣತೆಯ ಬಲೆಯಲ್ಲಿ ಸಿಲುಕಿಕೊಂಡೆ. ನಾನು ಇಡೀ ಮಧ್ಯಾಹ್ನಗಳನ್ನು ಹೆಕ್ಸ್ ಕೋಡ್ಗಳನ್ನು (hex codes) ಬದಲಾಯಿಸಲು, border-radius ಮೌಲ್ಯಗಳನ್ನು ಎಂಟು ಪಿಕ್ಸೆಲ್ನಿಂದ ಹತ್ತು ಪಿಕ್ಸೆಲ್ಗೆ ಬದಲಾಯಿಸಲು ಮತ್ತು ಒಂದು ಭೇಟಿ ನೀಡುವ ವ್ಯಕ್ತಿ ಪುಟವನ್ನು ನೋಡುವ ಮೊದಲೇ ಹೆಡ್ಲೈನ್ ಕಾಪಿಯನ್ನು ಐದು ಬಾರಿ ಮರುಬರೆಯಲು ವ್ಯರ್ಥ ಮಾಡಿದೆ. ನಾನು ಕೆಲಸವನ್ನು ಸುಧಾರಿಸುತ್ತಿದ್ದೇನೆ ಎಂದು ನನಗೇ ಹೇಳಿಕೊಳ್ಳುತ್ತಿದ್ದೆ, ಆದರೆ ವಾಸ್ತವದಲ್ಲಿ ನಾನು ಗುಣಮಟ್ಟದ ನೆಪದಲ್ಲಿ ಕೆಲಸವನ್ನು ಮುಂದೂಡುತ್ತಿದ್ದೆ. ಪರಿಣಾಮವೇನು? ನಾನು ಮೂರು ವಾರಗಳ ವಿಳಂಬವಾಗಿ ಅದನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ. ಅಂತಿಮವಾಗಿ ಸೈಟ್ ಲೈವ್ ಆದಾಗ, ನಾನು ಎಷ್ಟು ಕಷ್ಟಪಟ್ಟು ಸಿದ್ಧಪಡಿಸಿದ್ದ ಬಟನ್ ಕರ್ವ್ ಬಗ್ಗೆ ಒಬ್ಬ ಬಳಕೆದಾರರೂ ಕಾಮೆಂಟ್ ಮಾಡಲಿಲ್ಲ. ಫಾರ್ಮ್ ಕ್ರ್ಯಾಶ್ ಆಗದೆ ಸಬ್ಮಿಟ್ ಆಗುತ್ತದೆಯೇ ಎಂಬುದು ಅವರಿಗೆ ಮುಖ್ಯವಾಗಿತ್ತು.
ಕಲಿತ ಪಾಠವೇನೆಂದರೆ: ಮೊದಲು ನಿಮ್ಮ ಕೆಲಸವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿ. ನಿಮಗೆ ಸಿಗದ ಪ್ರತಿಕ್ರಿಯೆಯ (feedback) ಆಧಾರದ ಮೇಲೆ ನೀವು ಸುಧಾರಣೆಗಳನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ರಚನೆಯನ್ನು ಭದ್ರವಾಗಿರಿಸಿ, ಮುಖ್ಯ ಕಾರ್ಯಗಳು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿವೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಅದನ್ನು ಲೈವ್ ಮಾಡಿ. ಸುಧಾರಣೆಗಳು ಎರಡನೇ ಆವೃತ್ತಿಗೆ (version two) ಸೇರಿದ್ದವೇ ಹೊರತು ಮೊದಲ ಆವೃತ್ತಿಗೆ (version zero) ಅಲ್ಲ. ಯಾವುದು ನಿಜವಾಗಿಯೂ ಕೆಟ್ಟಿದೆ ಮತ್ತು ಯಾವುದು ಕೇವಲ ನಿಮ್ಮ ಕಲ್ಪನೆಯಲ್ಲಿ ಅಪೂರ್ಣವಾಗಿದೆ ಎಂಬುದನ್ನು ನಿಮ್ಮ ಬಳಕೆದಾರರೇ ನಿಮಗೆ ತಿಳಿಸುತ್ತಾರೆ.
ಅತಿ ಬೇಗನೆ ಅತಿಯಾದದ್ದನ್ನು ನಿರ್ಮಿಸುವುದು
ನನ್ನ ಪ್ರಾಜೆಕ್ಟ್ ಪುಸ್ತಕದ ಶಿಫಾರಸುಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಒಂದು ಸರಳ ಸಾಧನವಾಗಿ ಪ್ರಾರಂಭವಾಯಿತು. ಅಷ್ಟೇ ನನ್ನ ಉದ್ದೇಶವಾಗಿತ್ತು. ಎರಡನೇ ವಾರದ ವೇಳೆಗೆ, ನಾನು ಬಳಕೆದಾರರ ಲಾಗಿನ್ ಸಿಸ್ಟಮ್, ಡೈನಾಮಿಕ್ ರೇಟಿಂಗ್ ಗ್ರಾಫ್, ನೆಸ್ಟೆಡ್ ಕಾಮೆಂಟ್ ಸೆಕ್ಷನ್, ಡಾರ್ಕ್-ಮೋಡ್ ಟಾಗಲ್ ಮತ್ತು ಇಮೇಲ್ ಡೈಜೆಸ್ಟ್ ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿದ್ದೆ. ಅವುಗಳಲ್ಲಿ ಯಾವುದೂ ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲಿಲ್ಲ. ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯು ಅರ್ಧದಷ್ಟು ಸಮಯ ವಿಫಲವಾಗುತ್ತಿತ್ತು. ಗ್ರಾಫ್ನಲ್ಲಿ ತೋರಿಸಲು ಯಾವುದೇ ನೈಜ ಡೇಟಾ ಇರಲಿಲ್ಲ. ಕಾಮೆಂಟ್ ಸೆಕ್ಷನ್ನಲ್ಲಿ ಒಂದೇ ಕಾಮೆಂಟ್ ಪದೇ ಪದೇ ಬರುವಂತ 있었다. ಈ ಮಧ್ಯೆ, ಸೈಟ್ ಅಸ್ತಿತ್ವಕ್ಕೆ ಕಾರಣವಾದ ಮೂಲ ಪುಸ್ತಕದ ಪಟ್ಟಿಯ ವೈಶಿಷ್ಟ್ಯವು (book-listing feature), ಅರೆಬರೆ ಕೆಲಸದ ಮತ್ತು ಕೆಟ್ಟ ವೈಶಿಷ್ಟ್ಯಗಳ ರಾಶಿಯ ಅಡಿಯಲ್ಲಿ ಹೂತುಹೋಗಿತ್ತು, ಇದು ಹೋಮ್ ಪೇಜ್ಗೆ ಬರುವ ಯಾರಿಗಾದರೂ ಗೊಂದಲ ಉಂಟುಮಾಡುತ್ತಿತ್ತು.
ಒಂದು ಸಮಸ್ಯೆಯನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಪರಿಹರಿಸುವ ಸರಳ ಸೈಟ್, ಹತ್ತು ಕೆಲಸಗಳನ್ನು ಕಳಪೆಯಾಗಿ ಮಾಡುವ ಸಂಕೀರ್ಣ ಸೈಟ್ ಅನ್ನು ಯಾವಾಗಲೂ ಸೋಲಿಸುತ್ತದೆ. ನೀವು ಇನ್ನೊಂದು ಸಾಲು ಕೋಡ್ ಬರೆಯುವ ಮೊದಲು, ನಿಮ್ಮ ಉತ್ಪನ್ನವು ಬಳಕೆದಾರರಿಗಾಗಿ ಮಾಡುವ ಒಂದು ಕೆಲಸವನ್ನು ನಿರ್ಧರಿಸಿ. ಅದನ್ನು ನಿರ್ಮಿಸಿ. ಪರೀಕ್ಷಿಸಿ. ಅದು ನಂಬಲರ್ಹವಾಗುವವರೆಗೆ ಅದನ್ನು ಸುಧಾರಿಸಿ. ಬಳಕೆದಾರರು ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಅಥವಾ ಸೋಶಿಯಲ್ ಫೀಡ್ ಕೇಳಿದರೆ, ಆಗ ನೀವು ಅದನ್ನು ಸೇರಿಸಬಹುದು. ಅಲ್ಲಿಯವರೆಗೆ, ಕೇವಲ ಒಂದು ಚಾಕು ಬೇಕಾದ ಜಾಗದಲ್ಲಿ ಸ್ವಿಸ್ ಆರ್ಮಿ ನೈಫ್ (Swiss Army knife) ತಯಾರಿಸುವ ಆಸೆಯನ್ನು ತಡೆಯಿರಿ.
ನೋಟದ ಹಿಂದಿರುವ ಅನುಭವವನ್ನು ನಿರ್ಲಕ್ಷಿಸುವುದು
ನಾನು ಸುಂದರವಾದ ಫಾಂಟ್ಗಳು ಮತ್ತು ಸ್ಟೈಲಿಶ್ ಕಲರ್ ಪ್ಯಾಲೆಟ್ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಗಂಟೆಗಟ್ಟಲೆ ಸಮಯ ವ್ಯಯಿಸಿದೆ. ಹೀರೋ ಸೆಕ್ಷನ್ನ (hero section) ಬ್ಯಾಕ್ಗ್ರೌಂಡ್ ಗ್ರೇಡಿಯಂಟ್ ಬಗ್ಗೆ ನಾನು ಅತಿಯಾಗಿ ತಲೆಕೆಡಿಸಿಕೊಳ್ಳುತ್ತಿದ್ದೆ. ನಂತರ ಸೈಟ್ ಬಳಸುವ ಅನುಭವ ಹೇಗಿದೆ ಎಂಬುದನ್ನು ನಾನು ನಿರ್ಲಕ್ಷಿಸಿದೆ. ಕಂಪ್ರೆಷನ್ ಇಲ್ಲದ ಫುಲ್-ರೆಸಲ್ಯೂಶನ್ PNG ಫೈಲ್ಗಳನ್ನು ಬಳಸಿದ್ದರಿಂದ ಪುಟಗಳು ಲೋಡ್ ಆಗಲು ತುಂಬಾ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದ್ದವು. ನ್ಯಾವಿಗೇಷನ್ ಲೇಬಲ್ಗಳು ನೋಡಲು ಚೆನ್ನಾಗಿದ್ದರೂ, ಲಿಂಕ್ ಎಲ್ಲಿಗೆ ಕರೆದೊಯ್ಯುತ್ತದೆ ಎಂದು ಜನರು ಊಹಿಸುವಂತೆ ಮಾಡುವ ರೀತಿಯಲ್ಲಿ ವಿಚಿತ್ರ ಪದಗಳನ್ನು ಹೊಂದಿದ್ದವು. ಬಟನ್ಗಳು ತೆಳುವಾಗಿದ್ದವು ಮತ್ತು ಸ್ಟೈಲಿಶ್ ಆಗಿದ್ದವು, ಆದರೆ ಫೋನ್ ಪರದೆಯ ಮೇಲೆ ಟ್ಯಾಪ್ ಮಾಡಲು ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದ್ದವು.
ವಿನ್ಯಾಸ (visual design) ಮತ್ತು ಬಳಕೆದಾರರ ಅನುಭವ (user experience) ಒಂದೇ ಅಲ್ಲ ಎಂಬ ಕಠಿಣ ಪಾಠವನ್ನು ನಾನು ಕಲಿತೆ. ಬ್ಯಾನರ್ ಚಿತ್ರಕ್ಕಾಗಿ ಭೇಟಿ ನೀಡುವವರು ಹಲವಾರು ಸೆಕೆಂಡುಗಳ ಕಾಲ ಕಾಯಬೇಕಾದರೆ ಅಥವಾ ಎರಡು ಕ್ಲಿಕ್ಗಳ ಒಳಗೆ ನಿಮ್ಮನ್ನು ಹೇಗೆ ಸಂಪರ್ಕಿಸಬೇಕು ಎಂದು ತಿಳಿಯದಿದ್ದರೆ, ಸುಂದರವಾದ ಇಂಟರ್ಫೇಸ್ ಕೂಡ ವಿಫಲವಾಗುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಸಂವಹನವನ್ನೂ ಸರಳವಾಗಿಸಿ. ನ್ಯಾವಿಗೇಷನ್ ಅನ್ನು ಸರಳ ಭಾಷೆಯಲ್ಲಿ ನೀಡಿ. ನಿಮ್ಮ ಅಸೆಟ್ಗಳನ್ನು (assets) ಕಂಪ್ರೆಸ್ ಮಾಡಿ. ಟ್ಯಾಪ್ ಮಾಡುವ ಗುರಿಗಳು (tap targets) ಸಾಕಷ್ಟು ದೊಡ್ಡದಾಗಿವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. ವೇಗ ಮತ್ತು ಸ್ಪಷ್ಟತೆ ಎಂಬುದು ಕೊನೆಯಲ್ಲಿ ಸೇರಿಸುವ ಬೋನಸ್ಗಳಲ್ಲ; ಅವು ಉಳಿದೆಲ್ಲವೂ ನಿಂತಿರುವ ಅಡಿಪಾಯಗಳಾಗಿವೆ.
ಕೇವಲ ನನ್ನ ಸ್ವಂತ ಯಂತ್ರದಲ್ಲಿ ಪರೀಕ್ಷಿಸುವುದು
ನಾನು ಇಡೀ ಸೈಟ್ ಅನ್ನು ಒಂದೇ ಲ್ಯಾಪ್ಟಾಪ್ನಲ್ಲಿ, ಒಂದೇ ಬ್ರೌಸರ್ನಲ್ಲಿ ಮತ್ತು ಒಂದೇ ಸ್ಕ್ರೀನ್ ರೆಸಲ್ಯೂಶನ್ನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ. ನನ್ನ ಯಂತ್ರದಲ್ಲಿ ಎಲ್ಲವೂ ಪರಿಪೂರ್ಣವಾಗಿ ಕಾಣುತ್ತಿತ್ತು. ನಂತರ ಒಬ್ಬ ಗೆಳತಿ ಅದನ್ನು ತನ್ನ iPhone ನಲ್ಲಿ ತೆರೆದಳು. ಬಟನ್ಗಳು ಒಂದರ ಮೇಲೊಂದು ಬಂದವು. ಪಠ್ಯವು ತನ್ನ ಕಂಟೇನರ್ನಿಂದ ಹೊರಬಂದಿತು. ಇನ್ನೊಬ್ಬ ಗೆಳೆಯ Mac ನಲ್ಲಿ Safari ಬಳಸಿದಾಗ, ಇಡೀ CSS ಗ್ರಿಡ್ ಲೇಔಟ್ ಓದಲು ಸಾಧ್ಯವಾಗದಂತೆ ಕುಸಿದುಹೋಯಿತು. ಅದು ನನಗಿದ್ದರೆ ಎಲ್ಲರಿಗೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ನಾನು ಮೌನವಾಗಿ ಭಾವಿಸಿದ್ದೆ. ಆ ಭಾವನೆಯು ನನಗೆ ಒಂದು ವಾರಾಂತ್ಯದ ಅವಸರದ ತಿದ್ದುಪಡಿಗಳು (hotfixes) ಮತ್ತು ಮುಜುಗರದ ಕ್ಷಮೆಯಾಚನೆಗಳನ್ನು ತಂದುಕೊಟ್ಟಿತು.
ನನ್ನ ತಪ್ಪನ್ನು ನೀವು ಮಾಡಬೇಡಿ. ನೀವು ಪ್ರಕಟಿಸುವ ಮೊದಲು, ನಿಮ್ಮ ಸೈಟ್ ಅನ್ನು Chrome, Firefox, Safari, ಮತ್ತು Edge ನಲ್ಲಿ ಪರೀಕ್ಷಿಸಿ. ವಿವಿಧ ಅಗಲದ ಫೋನ್ಗಳು, ಟ್ಯಾಬ್ಲೆಟ್ಗಳು ಮತ್ತು ಲ್ಯಾಪ್ಟಾಪ್ಗಳನ್ನು ಅನುಕರಿಸಲು ನಿಮ್ಮ ಬ್ರೌಸರ್ನ ಡೆವಲಪರ್ ಟೂಲ್ಗಳನ್ನು ಬಳಸಿ. ಪ್ರತಿಯೊಂದು ಲಿಂಕ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. ಪ್ರತಿಯೊಂದು ಫಾರ್ಮ್ ಅನ್ನು ಸಬ್ಮಿಟ್ ಮಾಡಿ. ವಿಂಡೋವನ್ನು ವಿವಿಧ ಗಾತ್ರಗಳಿಗೆ ಬದಲಾಯಿಸಿ ನೋಡಿ. ಪರೀಕ್ಷೆಯ ಸಮಯದಲ್ಲಿ ನೀವು ಪತ್ತೆಹಚ್ಚುವ ಬಗ್ಗಳು (bugs), ಬಳಕೆದಾರರು ಲೈವ್ ಸೈಟ್ನಲ್ಲಿ ಪತ್ತೆಹಚ್ಚುವ ಬಗ್ಗಳಿಗಿಂತ ಬಹಳ ಕಡಿಮೆ ವೆಚ್ಚದವು.
ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ವೈಯಕ್ತಿಕ ದಾಳಿಯಂತೆ ಪರಿಗಣಿಸುವುದು
ಯೋಜನೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು ನನಗೆ ಆತಂಕವನ್ನು ಉಂಟುಮಾಡಿತು. ಜನರು ಅದನ್ನು ಇಷ್ಟಪಡದಿದ್ದರೆ ಏನಾಗಬಹುದು? ನನ್ನ ಸಹೋದ್ಯೋಗಿಯೊಬ್ಬರು ನಾನು ಸಮಯ ವ್ಯಯಿಸಿದ ಒಂದು ವೈಶಿಷ್ಟ್ಯವನ್ನು ಕೈಬಿಡಲು ಸೂಚಿಸಿದಾಗ
