ಬಗ್ (Bug) vs ಫೀಚರ್ (Feature): ತಪ್ಪನ್ನ ಒಪ್ಪಿಕೊಳ್ಳೋದು ಒಂದು ಕಲೆ
ಹೇ ತಮ್ಮಾ, ನೀನು ಹಗಲು ರಾತ್ರಿ ಕುಳಿತು ಒಂದು ಅದ್ಭುತವಾದ ಕೋಡ್ ಬರೀತೀಯಾ, ಅಚ್ಚುಕಟ್ಟಾಗಿ ಸಬ್ಮಿಟ್ ಮಾಡ್ತೀಯಾ. ಆದ್ರೆ ಯಾವುದೋ ಒಂದು ಸಣ್ಣ ತಪ್ಪಿನಿಂದ ನಿನ್ನ ಆಪ್ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತೆ ಅಥವಾ ಯಾವುದೋ ಬಟನ್ ಕೆಲಸ ಮಾಡಲ್ಲ. ಆಗ ನೀನು ಅದನ್ನ 'ಬಗ್' (Bug) ಅಂತ ಕರೀತೀಯಾ ಅಲ್ವಾ? ಆದರೆ ಸಾಫ್ಟ್ವೇರ್ ಇಂಡಸ್ಟ್ರಿಯಲ್ಲಿ ಒಂದು ವಿಚಿತ್ರವಾದ ಸಂಪ್ರದಾಯ ಇದೆ. ನೀನು ಮಾಡಿದ ತಪ್ಪನ್ನೇ ಒಂದು ಹೊಸ ಅನುಕೂಲ ಅಂದ್ರೆ 'ಫೀಚರ್' (Feature) ಅಂತ ನಂಬಿಸೋದು ಒಂದು ದೊಡ್ಡ ಕಲೆ. ಇವತ್ತು ನಾವು ಈ ಬಗ್ ಮತ್ತು ಫೀಚರ್ ನಡುವಿನ ಆ ಮೋಜಿನ ಕಥೆ ಮತ್ತು ನಿನ್ನ ಕೋಡ್ನಲ್ಲಿರೋ ಆ ಕಿರಿಕಿರಿ ಹುಳಗಳನ್ನ ಹೇಗೆ ಹ್ಯಾಂಡಲ್ ಮಾಡಬೇಕು ಅನ್ನೋದನ್ನ ಮಾತಾಡೋಣ.
ಸಾಫ್ಟ್ವೇರ್ ಲೋಕದಲ್ಲಿ 'ಬಗ್' ಅನ್ನೋ ಪದಕ್ಕೆ ತುಂಬಾನೇ ಹಳೆಯ ಇತಿಹಾಸ ಇದೆ ಗುರು. ನಿನಗೆ ಅನಿಸಿರಬಹುದು ಯಾವುದೋ ಸಾಫ್ಟ್ವೇರ್ ಎರರ್ಗೆ ಯಾಕೆ ಬಗ್ ಅಂದ್ರೆ ಹುಳ ಅಂತ ಹೆಸರಿಟ್ಟರು ಅಂತ. ಇದರ ಹಿಂದೆ ಒಂದು ನಿಜವಾದ ಘಟನೆ ಇದೆ. 1947ರಲ್ಲಿ ಹಾರ್ವರ್ಡ್ ವಿಶ್ವವಿದ್ಯಾಲಯದ ಮಾರ್ಕ್ II ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಒಂದು ಸಮಸ್ಯೆ ಕಾಣಿಸಿಕೊಂಡಿತ್ತು. ಅಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದ ಗ್ರೇಸ್ ಹಾಪರ್ ಎಂಬ ಪ್ರಸಿದ್ಧ ಕಂಪ್ಯೂಟರ್ ಸೈಂಟಿಸ್ಟ್, ಆ ಬೃಹತ್ ಮಿಷನ್ನ ಒಳಗಡೆ ಒಂದು ನಿಜವಾದ ಪತಂಗ (Moth) ಸಿಲುಕಿಕೊಂಡಿದ್ದನ್ನ ಪತ್ತೆ ಹಚ್ಚಿದ್ರು. ಆ ಹುಳದಿಂದಾಗಿಯೇ ಕಂಪ್ಯೂಟರ್ ಹ್ಯಾಂಗ್ ಆಗಿತ್ತು. ಅವರು ಆ ಹುಳವನ್ನ ಹೊರಗೆ ತೆಗೆದು ತಮ್ಮ ಡೈರಿಯಲ್ಲಿ ಅಂಟಿಸಿ "ಪ್ರಪಂಚದ ಮೊದಲ ಬಗ್ ಪತ್ತೆಯಾಗಿದೆ" ಅಂತ ಬರೆದಿದ್ದರು. ಅಂದಿನಿಂದ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ ಬರೋ ಪ್ರತಿಯೊಂದು ತಪ್ಪಿಗೂ 'ಬಗ್' ಅನ್ನೋ ಹೆಸರೇ ಅಂಟಿಕೊಂಡಿತು.
ಇನ್ನು ಡೆವಲಪರ್ಸ್ಗಳ ಪಾಲಿನ ಅತಿ ದೊಡ್ಡ ಕಾಮಿಡಿ ಅಂದ್ರೆ "It's not a bug, it's a feature!" ಅನ್ನೋ ಡೈಲಾಗ್. ಯೋಚನೆ ಮಾಡು, ನೀನು ಒಂದು ಗೇಮ್ ಮಾಡಿದ್ದೀಯಾ ಅಂತ ಅಂದುಕೋ. ಆ ಗೇಮ್ನಲ್ಲಿ ಹೀರೋ ನಡೆಯುವಾಗ ಸಡನ್ ಆಗಿ ಹಾರುತ್ತಿದ್ದಾನೆ, ಆದ್ರೆ ನೀನು ಆ ರೀತಿ ಕೋಡ್ ಬರೆದಿಲ್ಲ. ಈಗ ಇದನ್ನ ನೀನು ಬಗ್ ಅಂತ ಒಪ್ಪಿಕೊಂಡರೆ ನಿನ್ನ ಇಮೇಜ್ ಹಾಳಾಗಬಹುದು. ಅಂತಹ ಸಮಯದಲ್ಲಿ ನೀನು ಸ್ಮಾರ್ಟ್ ಆಗಿ "ಇದು ಬಗ್ ಅಲ್ಲ ಗುರು, ನಾನು ನಮ್ಮ ಹೀರೋಗೆ ಒಂದು ಸೀಕ್ರೆಟ್ ಪವರ್ ಕೊಟ್ಟಿದ್ದೀನಿ, ಅದೇ ಈ ಜಂಪ್ ಫೀಚರ್" ಅಂತ ಹೇಳಿಬಿಡ್ತೀಯಾ. ಹೀಗೆ ತಪ್ಪನ್ನೇ ಒಂದು ಸೌಲಭ್ಯವಾಗಿ ಬದಲಿಸೋದು ಐಟಿ ಲೋಕದ ಒಂದು ರನ್ನಿಂಗ್ ಜೋಕ್ ಆಗಿದೆ.
ಆದರೆ ತಮ್ಮಾ, ಹಿರಿಯಣ್ಣನಾಗಿ ನಾನು ನಿನಗೆ ಹೇಳೋದು ಅಂದ್ರೆ, ತಪ್ಪನ್ನ ಒಪ್ಪಿಕೊಳ್ಳೋದು ಒಬ್ಬ ಒಳ್ಳೆ ಇಂಜಿನಿಯರ್ ಲಕ್ಷಣ. ಬಗ್ ಅನ್ನೋದು ನಿನ್ನ ಸಾಮರ್ಥ್ಯದ ಕೊರತೆಯಲ್ಲ, ಅದು ನಿನ್ನ ಕಲಿಕೆಯ ಒಂದು ಭಾಗ ಅಷ್ಟೇ. ನೀನು ಬರೆದ ಕೋಡ್ನಲ್ಲಿ ಬಗ್ ಇಲ್ಲ ಅಂದ್ರೆ ನೀನು ಪರ್ಫೆಕ್ಟ್ ಅಂತ ಅರ್ಥವಲ್ಲ, ಬದಲಿಗೆ ನೀನು ಇನ್ನು ಸರಿಯಾಗಿ ಟೆಸ್ಟ್ ಮಾಡಿಲ್ಲ ಅಂತ ಅರ್ಥ. ಪ್ರಪಂಚದ ಅತಿ ದೊಡ್ಡ ಸಾಫ್ಟ್ವೇರ್ ಕಂಪನಿಗಳಾದ ಗೂಗಲ್ ಅಥವಾ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಕೂಡ ದಿನಾಲೂ ನೂರಾರು ಬಗ್ಗಳನ್ನ ಫಿಕ್ಸ್ ಮಾಡ್ತಾರೆ. ಹಾಗಾಗಿ ನಿನ್ನ ಕೋಡ್ನಲ್ಲಿ ಎರರ್ ಬಂದ್ರೆ ಬೇಜಾರು ಮಾಡ್ಕೋಬೇಡ, ಅದನ್ನ ಸರಿಪಡಿಸೋ ಚಾಲೆಂಜ್ ತಗೋ.
ಡಿಬಗ್ಗಿಂಗ್ (Debugging) ಅಂದ್ರೆ ಏನೋ ದೊಡ್ಡ ಪರ್ವತ ಅಗೆಯೋ ಕೆಲಸ ಅಲ್ಲ ತಮ್ಮಾ, ಅದೊಂದು ಅಪ್ಪಟ ಡಿಟೆಕ್ಟಿವ್ ಅಥವಾ ಪತ್ತೇದಾರಿ ಕೆಲಸ ಇದ್ದ ಹಾಗೆ. ನೀನು ಶರ್ಲಾಕ್ ಹೋಮ್ಸ್ ತರ ನಿನ್ನ ಕೋಡ್ನ ಪ್ರತಿ ಸಾಲನ್ನೂ ಜಾಲಾಡಬೇಕು. ಈ ಎರರ್ ಎಲ್ಲಿಂದ ಶುರುವಾಯ್ತು? ನಾನು ಯಾವ ವೇರಿಯೇಬಲ್ ತಪ್ಪು ಮಾಡಿದೆ? ಅಂತ ಹುಡುಕುತ್ತಾ ಹೋದಾಗ ನಿನಗೆ ಸಿಗೋ ಆ ಒಂದು "ಅಹಾ!" ಮೊಮೆಂಟ್ ಇದೆಯಲ್ಲ, ಅದು ಯಾವುದೋ ಪ್ರಶಸ್ತಿ ಬಂದಷ್ಟೇ ಖುಷಿ ಕೊಡುತ್ತೆ. ಡಿಬಗ್ಗಿಂಗ್ ಅಂದ್ರೆ ಕೇವಲ ತಪ್ಪನ್ನ ಸರಿಪಡಿಸೋದಲ್ಲ, ಅದು ನಿನ್ನ ಕೋಡ್ನ ಮೇಲೆ ನಿನಗೆ ಇನ್ನು ಹೆಚ್ಚಿನ ಹಿಡಿತ ತಂದುಕೊಡುವ ಒಂದು ಪ್ರಕ್ರಿಯೆ.

ಡಿಬಗ್ಗಿಂಗ್ ಮಾಡುವಾಗ ನಿನಗೆ ತಾಳ್ಮೆ ತುಂಬಾನೇ ಮುಖ್ಯ. ಕೆಲವೊಮ್ಮೆ ಒಂದು ಸಣ್ಣ ಸೆಮಿಕೋಲನ್ (;) ಮರೆತಿದ್ದಕ್ಕೆ ನಿನ್ನ ಇಡೀ ಸಾಫ್ಟ್ವೇರ್ ರನ್ ಆಗದೆ ಇರಬಹುದು. ಇಂತಹ ಸಮಯದಲ್ಲಿ ಕೋಪ ಮಾಡಿಕೊಂಡು ಲ್ಯಾಪ್ಟಾಪ್ ಪಕ್ಕಕ್ಕಿಡಬೇಡ. ಪ್ರಿಂಟ್ ಸ್ಟೇಟ್ಮೆಂಟ್ ಬಳಸಿ ಅಥವಾ ಡಿಬಗ್ಗರ್ ಟೂಲ್ಸ್ ಬಳಸಿ ನಿನ್ನ ಕೋಡ್ನ ಒಂದೊಂದೇ ಹೆಜ್ಜೆಯನ್ನ ಗಮನಿಸು. ಡಿಬಗ್ಗಿಂಗ್ ಅಂದ್ರೆ ಕೇವಲ ಕೋಡ್ ಸರಿ ಮಾಡೋದಲ್ಲ, ನಿನ್ನ ಮೈಂಡ್ ಸೆಟ್ ಅನ್ನು ಸರಿ ಮಾಡಿಕೊಳ್ಳೋದು. ನೀನು ಎಷ್ಟು ಶಾಂತವಾಗಿ ಇರ್ತೀಯೋ ಅಷ್ಟು ಬೇಗ ನಿನಗೆ ಆ ಬಗ್ ಕಾಣಿಸುತ್ತೆ.
ಒಬ್ಬ ಸ್ಮಾರ್ಟ್ ಡೆವಲಪರ್ ಆಗಬೇಕು ಅಂದ್ರೆ ಮೊದಲು 'ಎಡ್ಜ್ ಕೇಸಸ್' (Edge Cases) ಬಗ್ಗೆ ಯೋಚನೆ ಮಾಡೋದನ್ನ ಕಲಿ. ಅಂದ್ರೆ ಯೂಸರ್ ಎಲ್ಲೂ ಮಾಡದ ತಪ್ಪು ಮಾಡಿದ್ರೆ ನಿನ್ನ ಸಾಫ್ಟ್ವೇರ್ ಹೇಗೆ ರಿಯಾಕ್ಟ್ ಮಾಡುತ್ತೆ ಅಂತ ನೀನು ಮೊದಲೇ ಲೆಕ್ಕ ಹಾಕಬೇಕು. ಉದಾಹರಣೆಗೆ, ವಯಸ್ಸಿನ ಕಾಲಂನಲ್ಲಿ ಯಾರಾದರೂ ಹೆಸರನ್ನು ಟೈಪ್ ಮಾಡಿದ್ರೆ ನಿನ್ನ ಆಪ್ ಕ್ರ್ಯಾಶ್ ಆಗಬಾರದು. ಇಂತಹ ಸಣ್ಣ ಸಣ್ಣ ವಿಷಯಗಳನ್ನ ನೀನು ಮೊದಲೇ ಗಮನಿಸಿದ್ರೆ ನಿನ್ನ ಕೋಡ್ನಲ್ಲಿ ಬಗ್ ಬರೋ ಚಾನ್ಸಸ್ ತುಂಬಾನೇ ಕಡಿಮೆ ಇರುತ್ತೆ. ಬಗ್ ಬರೋಕಿಂತ ಮೊದಲೇ ಅದನ್ನ ತಡೆಯೋದೇ ಅಸಲಿ ಬುದ್ಧಿವಂತಿಕೆ.
ಕೆಲವೊಮ್ಮೆ ದೊಡ್ಡ ದೊಡ್ಡ ಬಗ್ಗಳೇ ನಿನ್ನನ್ನ ಹೊಸ ಐಡಿಯಾಗಳ ಕಡೆ ಕರ್ಕೊಂಡು ಹೋಗಬಹುದು. ಪ್ರಪಂಚದ ಎಷ್ಟೋ ಫೇಮಸ್ ಇನ್ವೆನ್ಶನ್ಗಳು ಇಂತಹ ಸಣ್ಣ ಎಡವಟ್ಟುಗಳಿಂದಲೇ ಹುಟ್ಟಿಕೊಂಡಿರೋದು. ನಿನ್ನ ಕೋಡ್ನಲ್ಲಿ ಬರೋ ಒಂದು ವಿಚಿತ್ರ ಬಿಹೇವಿಯರ್ ನಿನಗೆ ಹೊಸತೊಂದು ಫೀಚರ್ ಕ್ರಿಯೇಟ್ ಮಾಡೋಕೆ ಸ್ಪೂರ್ತಿ ಕೊಡಬಹುದು. ಆದರೆ ಅದನ್ನ ಫೀಚರ್ ಅಂತ ಕರೆಯೋ ಮುನ್ನ ಅದು ಯೂಸರ್ಗೆ ನಿಜವಾಗಿಯೂ ಹೆಲ್ಪ್ ಆಗುತ್ತಾ ಅಂತ ಚೆಕ್ ಮಾಡು. ಬರೀ ನಿನ್ನ ತಪ್ಪನ್ನ ಮುಚ್ಚಿ ಹಾಕೋಕೆ ಅದನ್ನ ಫೀಚರ್ ಅಂತ ಹೆಸರಿಡಬೇಡ.
ಯೂಸರ್ಸ್ ನಿನ್ನ ಬಗ್ ಬಗ್ಗೆ ಕಂಪ್ಲೇಂಟ್ ಮಾಡಿದ್ರೆ ಅವರಿಗೆ ಥ್ಯಾಂಕ್ಸ್ ಹೇಳೋದು ಕಲಿ. ಯಾಕಂದ್ರೆ ಅವರು ನಿನಗೆ ನಿನ್ನ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಇನ್ನು ಚೆನ್ನಾಗಿ ಮಾಡೋಕೆ ಒಂದು ಚಾನ್ಸ್ ಕೊಟ್ಟಿದ್ದಾರೆ ಅಂತ ಅರ್ಥ. ಬಗ್ ರಿಪೋರ್ಟಿಂಗ್ ಅನ್ನೋದು ಒಂದು ಗಿಫ್ಟ್ ಇದ್ದ ಹಾಗೆ. ಐಟಿ ಕಂಪನಿಗಳಲ್ಲಿ 'ಬಗ್ ಬೌಂಟಿ' (Bug Bounty) ಅಂತ ಒಂದು ಪ್ರೋಗ್ರಾಮ್ ಇರುತ್ತೆ. ಅಲ್ಲಿ ಯಾರಾದರೂ ಬೇರೆಯವರು ಬಂದು ನಿನ್ನ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿರೋ ತಪ್ಪನ್ನ ಹುಡುಕಿ ಕೊಟ್ಟರೆ ಕಂಪನಿ ಅವರಿಗೆ ಲಕ್ಷಾಂತರ ರೂಪಾಯಿ ಬಹುಮಾನ ಕೊಡುತ್ತೆ. ಅಂದ್ರೆ ನೋಡು ಬಗ್ ಹುಡುಕೋದು ಕೂಡ ಎಷ್ಟು ದೊಡ್ಡ ಕೆರಿಯರ್ ಆಗಬಹುದು ಅಂತ.
ಬಗ್ ಇಲ್ಲದ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನೋದು ಒಂದು ಸುಳ್ಳು ಕನಸು ಅಷ್ಟೇ. ಸಾಫ್ಟ್ವೇರ್ ಅಂದ ಮೇಲೆ ಅಲ್ಲಿ ಎಡವಟ್ಟುಗಳು ಇದ್ದೇ ಇರುತ್ತವೆ. ನೀನು ಮಾಡಬೇಕಿರೋದು ಇಷ್ಟೇ, ಆ ತಪ್ಪನ್ನ ಮರ್ಯಾದೆಯಿಂದ ಒಪ್ಪಿಕೋ ಮತ್ತು ಅದನ್ನ ಆದಷ್ಟು ಬೇಗ ಸರಿಪಡಿಸು. ಇದು ನಿನ್ನ ಪ್ರೊಫೆಷನಲಿಸಂ ಅನ್ನು ತೋರಿಸುತ್ತೆ. ಬಗ್ ವರ್ಸಸ್ ಫೀಚರ್ ಎಂಬ ಈ ಮೋಜಿನಾಟ ನಿನ್ನ ಕೆರಿಯರ್ನ ಉದ್ದಕ್ಕೂ ಇರುತ್ತೆ. ಈ ಆಟವನ್ನ ಎಂಜಾಯ್ ಮಾಡೋದನ್ನ ಕಲಿ. ನಿನ್ನ ಕೋಡ್ನಲ್ಲಿರೋ ಹುಳಗಳನ್ನ ಪ್ರೀತಿಯಿಂದ ಹೊರಗೆ ಹಾಕು, ಆಗಲೇ ನಿನ್ನ ಸಾಫ್ಟ್ವೇರ್ ಒಂದು ಪರ್ಫೆಕ್ಟ್ ಡೈಮಂಡ್ ತರ ಹೊಳೆಯುತ್ತೆ.
ನಿನ್ನ ಕೋಡಿಂಗ್ ಲೈಫ್ನಲ್ಲಿ ನೀನು ಕಂಡ ಅತಿ ವಿಚಿತ್ರವಾದ ಅಥವಾ ಅತಿ ದೊಡ್ಡ ಬಗ್ ಯಾವುದು? ಅದನ್ನ ಸರಿಪಡಿಸೋಕೆ ನಿನಗೆ ಎಷ್ಟು ಟೈಮ್ ಬೇಕಾಯ್ತು ಅಂತ ಕೆಳಗೆ ಕಾಮೆಂಟ್ ಮಾಡಿ ತಿಳಿಸು ಗುರು! ಈ ಮೋಜಿನ ಮಾಹಿತಿ ನಿನ್ನ ಫ್ರೆಂಡ್ಸ್ಗೂ ಹೆಲ್ಪ್ ಆಗಲಿ ಅಂತ ಶೇರ್ ಮಾಡೋದನ್ನ ಮರಿಬೇಡ ತಮ್ಮಾ.
0 ಕಾಮೆಂಟ್ಗಳು
ಇನ್ನೂ ಯಾವುದೇ ಕಾಮೆಂಟ್ಗಳಿಲ್ಲ.
ಕಾಮೆಂಟ್ ಮಾಡಿ
ಚಂದಾದಾರರಾಗಿ
ಬ್ರೇಕಿಂಗ್ ನ್ಯೂಸ್, ಟ್ರೆಂಡಿಂಗ್ ಸ್ಟೋರಿ ಆಳವಾದ ವಿಶ್ಲೇಷಣೆಗಳನ್ನು ನಿರಂತರವಾಗಿ ಪಡೆಯಲು ಉಚಿತವಾಗಿ ಚಂದಾದಾರರಾಗಿ.