ಶುಕ್ರವಾರ, ಮಾರ್ಚ್ 28, 2014

ರಿಕ್ವೈರ್‌ಮೆಂಟ್ಸ್ ಇಂಜಿನಿಯರಿಂಗ್

ಟಿ. ಜಿ. ಶ್ರೀನಿಧಿ

ತಂತ್ರಾಂಶ ಸಿದ್ಧಪಡಿಸಲು ಹೊರಡುವವರ ಮುಂದಿನ ಅತಿದೊಡ್ಡ ಸವಾಲು ಯಾವುದು ಎಂದು ಕೇಳಿದರೆ ಅದಕ್ಕೆ ನಿಮ್ಮ ಉತ್ತರ ಏನಿರಬಹುದು? ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿನ ಪರಿಣತಿಯೆ? ಸಾಫ್ಟ್‌ವೇರ್ ಇಂಜಿನಿಯರಿಂಗ್ ಜ್ಞಾನವೆ? ಅಥವಾ ತಪ್ಪುಗಳಾಗದಂತೆ ಎಚ್ಚರವಹಿಸಬೇಕಾದ ಅಗತ್ಯವೆ?

ಇವೆಲ್ಲವೂ ಸವಾಲುಗಳೇ ನಿಜ. ಆದರೆ ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳನ್ನು ಸರಿಯಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದಿದೆಯಲ್ಲ, ಆ ಕೆಲಸ ಇವೆಲ್ಲವುದಕ್ಕಿಂತ ಅದೆಷ್ಟೋ ಪಾಲು ಹೆಚ್ಚು ಕಷ್ಟಕರವಾದದ್ದು.

ಮೇಲ್ನೋಟಕ್ಕೆ ಈ ಕೆಲಸ ಅಷ್ಟೇನೂ ಕ್ಲಿಷ್ಟವೆಂದು ತೋರುವುದಿಲ್ಲ. ತಂತ್ರಾಂಶದ ಅಗತ್ಯವಿರುವುದು ಬಳಕೆದಾರರಿಗೆ; ಆ ತಂತ್ರಾಂಶ ಏನು ಮಾಡಬೇಕು, ಅದರ ಕಾರ್ಯಾಚರಣೆ ಹೇಗಿರಬೇಕು ಎಂದೆಲ್ಲ ತಿಳಿದಿರಬೇಕಾದ್ದೂ ಅವರಿಗೇ. ಅಷ್ಟನ್ನು ಅವರು ಹೇಳಿದರೆ ಅದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನಾವೇಕೆ ಕಷ್ಟಪಡಬೇಕು?

ತಂತ್ರಾಂಶ ಬೇಕಿರುವುದು ಬಳಕೆದಾರರಿಗೇ ಆದರೂ ಆ ತಂತ್ರಾಂಶದ ಬಗ್ಗೆ ಅವರಿಗೆ ಸ್ಪಷ್ಟ ಕಲ್ಪನೆಯಿರುವುದು ಅಪರೂಪ. ಹಾಗೊಮ್ಮೆ ತಮ್ಮ ಅಗತ್ಯಗಳ ಕುರಿತು ಸ್ಪಷ್ಟ ಕಲ್ಪನೆ ಇದ್ದರೂ ಅದನ್ನು ನಿಖರವಾಗಿ ತಂತ್ರಜ್ಞಾನದ ಭಾಷೆಯಲ್ಲಿ ಹೇಳುವುದು ಇನ್ನೂ ಅಪರೂಪ. ಅಲ್ಲದೆ ತಂತ್ರಾಂಶ ರಚನೆಯ ಕೆಲಸ ಶುರುವಾದ ಮೇಲೆ ಅದು ಮುಗಿಯುವಷ್ಟರಲ್ಲಿ ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳು ಬದಲಾಗುವುದೂ ಉಂಟು.

ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡುವವರಿಗೆ ತಂತ್ರಾಂಶ ಏನುಮಾಡಬೇಕು ಎನ್ನುವುದೇ ಸರಿಯಾಗಿ ತಿಳಿಯದಿದ್ದರೆ ಅವರು ಬರೆಯುವುದಾದರೂ ಏನನ್ನು?

ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳನ್ನು (ರಿಕ್ವೈರ್‌ಮೆಂಟ್ಸ್) ಸರಿಯಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಕಷ್ಟವಷ್ಟೇ ಅಲ್ಲ, ಬಹಳ ಮಹತ್ವದ ಕೆಲಸವೂ ಹೌದು. ಇದಕ್ಕಾಗಿಯೇ ಸಾಫ್ಟ್‌ವೇರ್ ಇಂಜಿನಿಯರಿಂಗ್ ಪರಿಕಲ್ಪನೆಯಲ್ಲಿ ಈ ಕೆಲಸಕ್ಕೆ ಹೆಚ್ಚಿನ ಪ್ರಾಮುಖ್ಯ. ಸಾಫ್ಟ್‌ವೇರ್ ಇಂಜಿನಿಯರಿಂಗ್‌ನಲ್ಲಿ 'ರಿಕ್ವೈರ್‌ಮೆಂಟ್ಸ್ ಇಂಜಿನಿಯರಿಂಗ್' ಎಂಬ ಪ್ರತ್ಯೇಕ ವಿಭಾಗ ರೂಪುಗೊಂಡಿರುವುದಕ್ಕೂ ಇದೇ ಕಾರಣ.

ನಾವು ಸಿದ್ಧಪಡಿಸುವ ತಂತ್ರಾಂಶ ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳಿಗೆ ಹೊಂದುವಂತಿರಬೇಕಾದರೆ ಏನೆಲ್ಲ ಮಾಡಬೇಕು ಎನ್ನುವ ಕುರಿತು ಇಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಮಾರ್ಗಸೂಚಿಗಳಿರುತ್ತವೆ. ತಂತ್ರಾಂಶ ಯಾವ ಉದ್ದೇಶಕ್ಕಾಗಿ ಬಳಕೆಯಾಗುತ್ತದೆ, ಬೇರೆಬೇರೆ ಬಳಕೆದಾರರು ಅದನ್ನು ಹೇಗೆ ಬಳಸುತ್ತಾರೆ, ಅದರಿಂದಾಗಿ ಬಳಕೆದಾರರ ವ್ಯವಹಾರದ ಮೇಲೆ ಉಂಟಾಗುವ ಪರಿಣಾಮ ಏನು - ಇತ್ಯಾದಿಗಳನ್ನೆಲ್ಲ ಅರಿತುಕೊಳ್ಳಲು ರಿಕ್ವೈರ್‌ಮೆಂಟ್ಸ್ ಇಂಜಿನಿಯರಿಂಗ್ ನೆರವಾಗುತ್ತದೆ.

ಹಾಗೆ ನೋಡಿದರೆ ತಂತ್ರಾಂಶ ರಚನೆ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಮೊದಲಿಗೆ ಶುರುವಾಗುವುದೇ ಇದು. ತಂತ್ರಾಂಶ ರಚನೆಯಿಂದ ನಾವು ಏನನ್ನು ಸಾಧಿಸಲು ಹೊರಟಿದ್ದೇವೆ, ನಮ್ಮ ತಂತ್ರಾಂಶ ನಿರ್ದಿಷ್ಟವಾಗಿ ಪರಿಹರಿಸಬೇಕಾದ ಸಮಸ್ಯೆಗಳು ಯಾವುವು ಎನ್ನುವುದನ್ನೆಲ್ಲ ಈ ಹಂತದಲ್ಲಿ ಗುರುತಿಸಿ ದಾಖಲಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ. ಆನಂತರ ಬರುವ ಕೆಲಸ ಬಳಕೆದಾರರಿಗೆ ತಂತ್ರಾಂಶದಿಂದ ಏನೆಲ್ಲ ಬೇಕು ಎನ್ನುವುದರ ಕುರಿತು ವಿವರ ಸಂಗ್ರಹಣೆ. ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳನ್ನು ಪಟ್ಟಿಮಾಡುವಾಗ ಅವುಗಳಲ್ಲಿ ಅತ್ಯಂತ ಮುಖ್ಯವಾದವು ಯಾವುವು, ಮಿಕ್ಕ ಎಲ್ಲಕ್ಕಿಂತ ಮೊದಲು ದೊರಕಬೇಕಾದ ಸೌಲಭ್ಯಗಳು ಯಾವುವು, "ಇದೂ ಸಾಧ್ಯವಾದರೆ ಸಂತೋಷ" ಎನ್ನುವಂತಹ ಅಗತ್ಯಗಳು ಯಾವುವು - ಎನ್ನುವುದನ್ನೆಲ್ಲ ಅರಿತುಕೊಳ್ಳಲಾಗುತ್ತದೆ. ಇದಿಷ್ಟೂ ಕೆಲಸದಲ್ಲಿ ತಂತ್ರಾಂಶ ಸಿದ್ಧಪಡಿಸುವವರ ಜೊತೆಗೆ ಬಳಕೆದಾರರ ಪ್ರತಿನಿಧಿಗಳೆಲ್ಲರೂ ಪಾಲ್ಗೊಳ್ಳುವುದರಿಂದ ಅವರ ಎಲ್ಲ ಅಗತ್ಯಗಳನ್ನೂ ಅರಿತು ದಾಖಲಿಸಿಕೊಳ್ಳುವುದು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

ಬಳಕೆದಾರರು ಹೇಳಿದ್ದನ್ನೆಲ್ಲ ದಾಖಲಿಸಿಕೊಂಡಮೇಲೆ ಅವರ ಅಗತ್ಯಗಳನ್ನು ಊರ್ಜಿತಗೊಳಿಸುವ (ವ್ಯಾಲಿಡೇಶನ್) ಕೆಲಸವೂ ನಡೆಯುತ್ತದೆ. ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳಲ್ಲಿ ಎಲ್ಲಾದರೂ ಅಸ್ಪಷ್ಟತೆ ಇದೆಯೇ, ಯಾವುದಾದರೂ ಎರಡು ಅಗತ್ಯಗಳಲ್ಲಿ ಪರಸ್ಪರ ವೈರುಧ್ಯವಿದೆಯೇ ಎನ್ನುವಂತಹ ಅಂಶಗಳನ್ನೆಲ್ಲ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಪರಿಶೀಲಿಸಿ ಅಗತ್ಯ ಸ್ಪಷ್ಟನೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ.

ದಾಖಲಿಸಿಕೊಂಡ ಅಷ್ಟೂ ವಿಷಯಗಳನ್ನು ಒಂದು ಕಡತದಲ್ಲಿ ಅಡಕಗೊಳಿಸಿ ಬಳಕೆದಾರರೊಡನೆ ಹಂಚಿಕೊಳ್ಳುವುದು, ಮತ್ತು ಅದರಲ್ಲಿರುವ ಅಂಶಗಳಿಗೆ ಅವರ ಒಪ್ಪಿಗೆ ಪಡೆದುಕೊಳ್ಳುವುದು ರಿಕ್ವೈರ್‌ಮೆಂಟ್ಸ್ ಇಂಜಿನಿಯರಿಂಗ್ ಹಂತದ ಕೊನೆಯ ಚಟುವಟಿಕೆ. ಈ ಕಡತದಲ್ಲಿರುವ ಮಾಹಿತಿಯಲ್ಲಿ ಹಲವು ವಿಧಗಳಿರಬಹುದು: ತಂತ್ರಾಂಶದಲ್ಲಿ ಏನಿರುತ್ತದೆ - ಏನಿರುವುದಿಲ್ಲ ಎನ್ನುವುದರ ಪಟ್ಟಿ, ವಿವಿಧ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಬಳಕೆದಾರರು ನೀಡುವ ಮಾಹಿತಿಗೆ ಅನುಗುಣವಾಗಿ ತಂತ್ರಾಂಶ ಹೇಗೆ ಕೆಲಸಮಾಡುತ್ತದೆ ಎನ್ನುವುದರ ವಿವರ - ಹೀಗೆ.

ಹೀಗೆ ಒಂದೆಡೆ ದಾಖಲಿಸಿ ಬಳಕೆದಾರರ ಒಪ್ಪಿಗೆ ಪಡೆದುಕೊಂಡಮೇಲೆ ತಂತ್ರಾಂಶ ಸಿದ್ಧವಾಗುವುದರೊಳಗಾಗಿ ಅವರ ಅಗತ್ಯಗಳು ಬದಲಾಗಬಾರದು ಎಂದೇನೂ ಇಲ್ಲ. ಹಾಗಾಗಿ ತಂತ್ರಾಂಶ ರಚನೆ ಪ್ರಕ್ರಿಯೆ ನಡೆಯುತ್ತಿದ್ದಾಗ ಅದರ ಸ್ವರೂಪದಲ್ಲಿ ಬದಲಾವಣೆಯಾಗಬೇಕು ಎನ್ನುವಂತ ಸನ್ನಿವೇಶ ಸೃಷ್ಟಿಯಾಗುವುದೂ ಅಪರೂಪವಲ್ಲ. ಆದರೆ ಇಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ ತಂತ್ರಾಂಶ ರಚಿಸುವವರು ಹಾಗೂ ಬಳಕೆದಾರರು ಇಬ್ಬರೂ ಪಾಲಿಸಬೇಕಾದ ನಿಯಮಗಳನ್ನೂ (ಉದಾ: ಯಾವ ರೀತಿಯ ಬದಲಾವಣೆಗಳನ್ನು ಕೇಳುವಂತಿಲ್ಲ, ಯಾವ ಬದಲಾವಣೆಗಳನ್ನು ಹೆಚ್ಚಿನ ಸಮಸ್ಯೆಯಿಲ್ಲದೆ ಮಾಡಬಹುದು ಇತ್ಯಾದಿ) ರಿಕ್ವೈರ್‌ಮೆಂಟ್ಸ್ ಇಂಜಿನಿಯರಿಂಗ್ ಹಂತದಲ್ಲೇ ನಿರ್ಧರಿಸಿಕೊಳ್ಳುವುದು ಉತ್ತಮ.

ಮಾರ್ಚ್ ೨೮, ೨೦೧೪ರ ಉದಯವಾಣಿಯಲ್ಲಿ ಪ್ರಕಟವಾದ ಲೇಖನ

ಕಾಮೆಂಟ್‌ಗಳಿಲ್ಲ:

badge