ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿ ಬದಲಾಗಿದೆ. ಉತ್ತಮ ಇಂಜಿನಿಯರಿಂಗ್ ಬದಲಾಗಿಲ್ಲ.
ಹತ್ತು ವರ್ಷಗಳ ಹಿಂದಿನಂತಲ್ಲದೆ ಈಗ ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿ ವಿಭಿನ್ನವಾಗಿ ಕಾಣುತ್ತಿದೆ. ನೀವು ಉತ್ಪನ್ನಗಳನ್ನು ವೇಗವಾಗಿ ನಿರ್ಮಿಸುತ್ತೀರಿ. ನೀವು ಹೆಚ್ಚು ಕ್ಲೌಡ್ ಸೇವೆಗಳನ್ನು ಬಳಸುತ್ತೀರಿ. ಈಗ ನಿಮ್ಮ ದೈನಂದಿನ ಕೆಲಸದ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ AI ಹಾಸುಹೊಕ್ಕಾಗಿದೆ.
ಪರಿಸರ ಬದಲಾಗಿದೆ, ಆದರೆ ಇಂಜಿನಿಯರಿಂಗ್ನ ಮೂಲ ತತ್ವಗಳು ಹಾಗೆಯೇ ಉಳಿದಿವೆ. ಕೋಡ್ ಓದಲು ಸುಲಭವಾಗಿರಬೇಕು (readable), ಸುರಕ್ಷಿತವಾಗಿರಬೇಕು ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿರಬೇಕು.
ಒಬ್ಬ ಇಂಜಿನಿಯರ್ ಆಗಿ ನಿಮಗೇನು ಬದಲಾವಣೆಯಾಗಿದೆ?
ಉತ್ತಮ ಕೋಡ್ ಎಂದರೆ ಇಂದಿಗೂ ಅದೇ ಅರ್ಥ. ಕೋಡ್ಬೇಸ್ (codebase) ಮುನ್ಸೂಚನೆ ನೀಡಲು ಸಾಧ್ಯವಾಗುವಂತಿರಬೇಕು ಮತ್ತು ಬದಲಾಯಿಸಲು ಸುಲಭವಾಗಿರಬೇಕು. ನೀವು ಪ್ರತಿ ಬಾರಿ ಹೊಸ ಫೀಚರ್ ಅನ್ನು ಸೇರಿಸಿದಾಗಲೂ ಅದನ್ನು ನಿರ್ವಹಿಸುವುದು ಕಷ್ಟವಾಗಬಾರದು. ಇಲ್ಲಿ AI ಒಂದು ಹೊಸ ಹಂತವನ್ನು ಸೇರಿಸುತ್ತದೆ. AI ಅನೇಕ ಪರಿಶೀಲನೆಗಳು ಮತ್ತು ಎಡ್ಜ್ ಕೇಸ್ಗಳೊಂದಿಗೆ (edge cases) ಕೋಡ್ ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಇದು ಕೆಲವೊಮ್ಮೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಆದರೆ ಇತರ ಸಮಯದಲ್ಲಿ, ಇದು ಕೋಡ್ ಅನ್ನು ಅತಿಯಾದ ಸಂಕೀರ್ಣವಾಗಿಸುತ್ತದೆ. AI ಸೃಷ್ಟಿಸಿದ ಕೋಡ್ ಸರಳವಾಗಿರಲು ಮತ್ತು ನಿಮ್ಮ ಆರ್ಕಿಟೆಕ್ಚರ್ಗೆ ಹೊಂದಿಕೆಯಾಗಲು ನೀವು ಅದನ್ನು ಪರಿಶೀಲಿಸುವುದು ಅತ್ಯಗತ್ಯ.
ಮಾರುಕಟ್ಟೆಗೆ ತಲುಪುವ ಸಮಯ (Time-to-market) ಈಗ ಬಹಳ ಕಡಿಮೆಯಾಗಿದೆ. ಹತ್ತು ವರ್ಷಗಳ ಹಿಂದೆ, ಒಂದು ಉತ್ಪನ್ನವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ತಿಂಗಳುಗಟ್ಟಲೆ ಬೇಕಾಗುತ್ತಿತ್ತು. ಇಂದು, ನೀವು ಕೆಲವೇ ದಿನಗಳಲ್ಲಿ ಒಂದು ವರ್ಷನ್ ಅನ್ನು ನಿರ್ಮಿಸಬಹುದು. AI, ಕ್ಲೌಡ್ ಸೇವೆಗಳು ಮತ್ತು APIs ಇದನ್ನು ವೇಗಗೊಳಿಸುತ್ತವೆ. ಆದರೆ ವೇಗದ ವಿತರಣೆಯು ಹೆಚ್ಚಿನ ಅಪಾಯವನ್ನು ತರುತ್ತದೆ. ಉತ್ಪನ್ನ ಬಿಡುಗಡೆಯಾದ ನಂತರ ನೀವು ಅದರ ಸ್ಥಿರತೆ (stability), ಭದ್ರತೆ (security) ಮತ್ತು ಸ್ಕೇಲೆಬಿಲಿಟಿ (scalability) ಬಗ್ಗೆ ಹೆಚ್ಚು ಗಮನಹರಿಸಬೇಕು.
ನಿಮ್ಮ ಆದ್ಯತೆಗಳು ಈಗ ವಿಸ್ತಾರವಾಗಿವೆ. ಹಿಂದೆ, ನೀವು ಕೋಡ್ ಬರೆಯುವ ಮತ್ತು ಫೀಚರ್ಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವ ಕಡೆಗೆ ಗಮನ ಹರಿಸುತ್ತಿದ್ದರು. ಈಗ, ನೀವು ಹೆಚ್ಚಿನ ಕ್ಷೇತ್ರಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ:
- Scalability
- Integrations
- Data management
- Cloud infrastructure
- AI implementation
- Security
- System stability
ಒಂದು ಫೀಚರ್ ಎಂದರೆ ಈಗ ಕೇವಲ ಕೋಡ್ ಮಾತ್ರವಲ್ಲ. ಅದು ಕ್ಲೌಡ್ ವೆಚ್ಚಗಳು, ಡೇಟಾ ಹರಿವು ಮತ್ತು ಥರ್ಡ್-ಪಾರ್ಟಿ ಸೇವೆಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ.
ತಂತ್ರಜ್ಞಾನದ ಆಯ್ಕೆಗಳು ಅಗತ್ಯತೆಗಳನ್ನು ಅನುಸರಿಸಬೇಕೇ ಹೊರತು ಟ್ರೆಂಡ್ಗಳನ್ನಲ್ಲ. ತಂಡಗಳು ತಮಗೆ ಚೆನ್ನಾಗಿ ತಿಳಿದಿರುವ ಪರಿಕರಗಳನ್ನು (tools) ಆರಿಸಿಕೊಳ್ಳುತ್ತಿದ್ದವು. ಈಗ, ನೀವು ವೇಗ, AI ಸಿದ್ಧತೆ ಮತ್ತು ಕ್ಲೌಡ್ ಬೆಂಬಲವನ್ನೂ ಗಮನಿಸುತ್ತೀರಿ. ಹೊಸ ಫ್ರೇಮ್ವರ್ಕ್ಗಳು ವೇಗವಾಗಿ ಬೆಳೆಯುತ್ತಿವೆ ಏಕೆಂದರೆ AI ಅವುಗಳ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಓದಬಲ್ಲದು. ಆದಾಗ್ಯೂ, ಈ ಪರಿಕರಗಳಲ್ಲಿ ಪಕ್ವವಾದ ಘಟಕಗಳು (mature components) ಅಥವಾ ಸಾಬೀತಾದ ಭದ್ರತೆಯ ಕೊರತೆ ಇರಬಹುದು.
AI ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ಜನರು ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತಾರೆ. AI ಒಂದು ದೊಡ್ಡ ಬದಲಾವಣೆ. ಆದರೆ ಆರ್ಕಿಟೆಕ್ಚರ್ಗೆ ಟ್ರೇಡ್-ಆಫ್ಗಳು (trade-offs), ದೀರ್ಘಾವಧಿಯ ಅಪಾಯಗಳು ಮತ್ತು ಒಂದು ಉತ್ಪನ್ನವು ಹೇಗೆ ಬೆಳೆಯುತ್ತದೆ ಎಂಬುದರ ತಿಳುವಳಿಕೆ ಅಗತ್ಯವಿದೆ. ಅನುಭವಿ ಇಂಜಿನಿಯರ್ಗಳು ಮತ್ತು ಆರ್ಕಿಟೆಕ್ಟ್ಗಳು ಇಂದಿಗೂ ಈ ಪ್ರಕ್ರಿಯೆಯ ಅತ್ಯಂತ ಪ್ರಮುಖ ಭಾಗವಾಗಿದ್ದಾರೆ.
ಮುಖ್ಯ ಪ್ರಶ್ನೆಯೇ ಬದಲಾಗಿದೆ. ಹತ್ತು ವರ್ಷಗಳ ಹಿಂದೆ, ನೀವು ಕೇಳುತ್ತಿದ್ದಿರಿ: "ನಾವು ಹೇಗೆ ವೇಗವಾಗಿ ನಿರ್ಮಿಸಬಹುದು ಮತ್ತು ಬಿಡುಗಡೆ ಮಾಡಬಹುದು?" ಇಂದು, ನೀವು ಕೇಳುತ್ತೀರಿ: "ಅಸ್ಥಿರವಾದ, ದುಬಾರಿ ಅಥವಾ ಅಸುರಕ್ಷಿತ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸೃಷ್ಟಿಸದೆ ನಾವು ಹೇಗೆ ವೇಗವಾಗಿ ಬಿಡುಗಡೆ ಮಾಡಬಹುದು?"
ವೇಗ ಮುಖ್ಯವಾಗಿದೆ. ಆದರೆ ವೇಗವೊಂದೇ ಸಾಕಾಗುವುದಿಲ್ಲ.
Source: https://dev.to/techbarsw/software-development-changed-good-engineering-didnt-2g7
Optional learning community: https://t.me/GyaanSetuAi
