𝗪𝗵𝘆 𝗠𝗼𝘀𝘁 𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗜𝘀 𝗕𝘂𝗶𝗹𝘁 𝗕𝗮𝗰𝗸𝘄𝗮𝗿𝗱𝘀 ਜ਼ਿਆਦਾਤਰ ਸਾਫਟਵੇਅਰ ਉਲਟੇ ਤਰੀਕੇ ਨਾਲ ਕਿਉਂ ਬਣਾਏ ਜਾਂਦੇ ਹਨ
ਜ਼ਿਆਦਾਤਰ ਸਾਫਟਵੇਅਰ ਉਲਟੇ ਤਰੀਕੇ ਨਾਲ ਬਣਾਏ ਜਾਂਦੇ ਹਨ।
ਇਹ ਇਸ ਲਈ ਹੁੰਦਾ ਹੈ ਕਿਉਂਕਿ ਲੋਕ ਗਲਤ ਚੀਜ਼ਾਂ ਨੂੰ ਮਾਨਤਾ ਦਿੰਦੇ ਹਨ।
ਫੀਚਰਸ (Features) ਵੱਲ ਧਿਆਨ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਆਰਕੀਟੈਕਚਰ (Architecture) ਵੱਲ ਨਹੀਂ। ਐਲਾਨਾਂ ਵੱਲ ਧਿਆਨ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਡਾਕੂਮੈਂਟੇਸ਼ਨ (Documentation) ਵੱਲ ਨਹੀਂ। ਨਵੀਆਂ ਸਮਰੱਥਾਵਾਂ ਵੱਲ ਧਿਆਨ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਰੱਖ-ਰਖਾਅ (Maintenance) ਵੱਲ ਨਹੀਂ।
ਟੀਮਾਂ ਦਿਖਾਈ ਦੇਣ ਵਾਲੇ ਹਿੱਸਿਆਂ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਦੀਆਂ ਹਨ। ਉਹ ਨੀਂਹ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਦਿੰਦੀਆਂ ਹਨ।
ਸਾਫਟਵੇਅਰ ਨਾਲ ਸਬੰਧਤ ਆਮ ਸਵਾਲ ਗਲਤ ਪੜਾਅ 'ਤੇ ਕੇਂਦਰਿਤ ਹੁੰਦੇ ਹਨ:
- ਸਾਨੂੰ ਕਿਹੜੇ ਫੀਚਰਸ ਬਣਾਉਣੇ ਚਾਹੀਦੇ ਹਨ?
- ਡੈਸ਼ਬੋਰਡ ਕਿਹੋ ਜਿਹਾ ਦਿਖਣਾ ਚਾਹੀਦਾ ਹੈ?
- ਸਾਨੂੰ ਕਿਹੜੀਆਂ ਇੰਟੀਗ੍ਰੇਸ਼ਨਾਂ (integrations) ਦਾ ਸਮਰਥਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ?
- ਅਸੀਂ ਅੱਗੇ ਕੀ ਐਲਾਨ ਕਰ ਸਕਦੇ ਹਾਂ?
ਇਹ ਸਵਾਲ ਬਹੁਤ ਜਲਦੀ ਪੁੱਛੇ ਜਾਂਦੇ ਹਨ। ਫੀਚਰਸ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਨੂੰ ਸਿਸਟਮ ਨੂੰ ਸਮਝਣਾ ਚਾਹੀਦਾ ਹੈ।
ਇੱਕ ਘਰ ਬਣਾਉਣ ਬਾਰੇ ਸੋਚੋ। ਤੁਸੀਂ ਰੰਗਾਂ ਨਾਲ ਸ਼ੁਰੂਆਤ ਨਹੀਂ ਕਰਦੇ। ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਦੇ ਹੋ:
- ਨੀਂਹ
- ਢਾਂਚਾ
- ਪਲੰਬਿੰਗ
- ਬਿਜਲੀ ਦਾ ਸਿਸਟਮ
ਦਿਖਾਈ ਦੇਣ ਵਾਲੇ ਵੇਰਵੇ ਅਦਿੱਖ ਸਿਸਟਮਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। ਸਾਫਟਵੇਅਰ ਵੀ ਇਸੇ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦਾ ਹੈ।
ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਆਰਕੀਟੈਕਚਰ ਨਹੀਂ। ਫੀਚਰਸ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ। ਉਹਨਾਂ ਨੂੰ ਸਪੋਰਟ ਕਰਨ ਵਾਲੇ ਸਿਸਟਮ ਨਹੀਂ।
ਸਿਸਟਮ ਇਹ ਤੈਅ ਕਰਦੇ ਹਨ ਕਿ ਸਾਫਟਵੇਅਰ ਸਫਲ ਹੋਵੇਗਾ ਜਾਂ ਨਹੀਂ।
ਫੀਚਰਸ ਵਿਅਕਤੀਗਤ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹਨ। ਸਿਸਟਮ ਸਮੱਸਿਆਵਾਂ ਦੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹਨ। ਫੀਚਰਸ ਕਾਰਜਸ਼ੀਲਤਾ ਪੈਦਾ ਕਰਦੇ ਹਨ। ਸਿਸਟਮ ਇਕਸਾਰਤਾ ਪੈਦਾ ਕਰਦੇ ਹਨ।
ਜੇਕਰ ਫੀਚਰਸ 'ਤੇ ਧਿਆਨ ਦਿੱਤਾ ਜਾਵੇ ਤਾਂ ਗੁੰਝਲਤਾ ਵਧਦੀ ਹੈ। ਜੇਕਰ ਸਿਸਟਮਾਂ 'ਤੇ ਧਿਆਨ ਦਿੱਤਾ ਜਾਵੇ ਤਾਂ ਗੁੰਝਲਤਾ ਸੰਗਠਿਤ ਹੋ ਜਾਂਦੀ ਹੈ।
ਡਾਕੂਮੈਂਟੇਸ਼ਨ ਸੱਚਾਈ ਨੂੰ ਸਾਹਮਣੇ ਲਿਆਉਂਦੀ ਹੈ। ਇੱਕ ਚੰਗੀ ਤਰ੍ਹਾਂ ਡਿਜ਼ਾਈਨ ਕੀਤੇ ਗਏ ਸਿਸਟਮ ਦੀ ਡਾਕੂਮੈਂਟੇਸ਼ਨ ਸਪਸ਼ਟ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਮਾੜੇ ਤਰੀਕੇ ਨਾਲ ਡਿਜ਼ਾਈਨ ਕੀਤੇ ਗਏ ਸਿਸਟਮ ਨੂੰ ਲੰਬੀਆਂ ਅਤੇ ਗੁੰਝਲਦਾਰ ਵਿਆਖਿਆਵਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਜੇਕਰ ਕਿਸੇ ਵਰਕਫਲੋ (workflow) ਲਈ ਕਈ ਪੰਨਿਆਂ ਦੇ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਸ਼ਾਇਦ ਸਮੱਸਿਆ ਵਰਕਫਲੋ ਵਿੱਚ ਹੀ ਹੈ।
ਯੂਜ਼ਰਸ ਵਿਅਕਤੀਗਤ ਫੀਚਰਸ ਦਾ ਅਨੁਭਵ ਨਹੀਂ ਕਰਦੇ। ਉਹ ਸਿਸਟਮਾਂ ਦਾ ਅਨੁਭਵ ਕਰਦੇ ਹਨ।
ਯੂਜ਼ਰਸ ਇਹ ਨਹੀਂ ਦੇਖਦੇ:
- ਅਥੈਂਟੀਕੇਸ਼ਨ (Authentication)
- APIs
- ਡਾਟਾਬੇਸ ਕੁਏਰੀਆਂ (Database queries)
- ਡਿਪਲਾਈਮੈਂਟ ਪਾਈਪਲਾਈਨਾਂ (Deployment pipelines)
ਯੂਜ਼ਰਸ ਅਨੁਭਵ ਕਰਦੇ ਹਨ:
- ਭਰੋਸੇਯੋਗਤਾ (Reliability)
- ਰਫ਼ਤਾਰ (Speed)
- ਸਾਦਗੀ (Simplicity)
- ਆਤਮ-ਵਿਸ਼ਵਾਸ (Confidence)
ਇਹ ਅਹਿਸਾਸ ਪੂਰੇ ਸਿਸਟਮ ਤੋਂ ਆਉਂਦੇ ਹਨ।
ਉਲਟੇ ਤਰੀਕੇ ਨਾਲ ਬਣਾਉਣਾ ਸਮਝਣਾ ਆਸਾਨ ਹੈ। ਫੀਚਰਸ ਇੱਕ ਸਕ੍ਰੀਨਸ਼ੌਟ ਵਿੱਚ ਆ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ ਇੱਕ ਫੀਚਰ ਦਾ ਐਲਾਨ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਆਸਾਨੀ ਨਾਲ ਕਿਸੇ ਸਿਸਟਮ ਦਾ ਐਲਾਨ ਨਹੀਂ ਕਰ ਸਕਦੇ।
ਅਦਿੱਖ ਕੰਮ ਸਭ ਤੋਂ ਵੱਧ ਮੁੱਲ ਪੈਦਾ ਕਰਦਾ ਹੈ।
ਮੈਂ ਆਪਣਾ ਨਜ਼ਰੀਆ ਬਦਲ ਲਿਆ। ਮੈਂ ਇਹ ਪੁੱਛਣਾ ਬੰਦ ਕਰ ਦਿੱਤਾ ਕਿ ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਕਿਹੜੇ ਫੀਚਰਸ ਦੀ ਲੋੜ ਹੈ। ਮੈਂ ਇਹ ਪੁੱਛਣਾ ਸ਼ੁਰੂ ਕਰ ਦਿੱਤਾ ਹੈ ਕਿ ਮੈਂ ਕਿਹੜਾ ਸਿਸਟਮ ਬਣਾ ਰਿਹਾ ਹਾਂ।
ਇੱਕ ਸਿਸਟਮ ਸੀਮਾਵਾਂ (constraints) ਬਣਾਉਂਦਾ ਹੈ। ਇੱਕ ਸਿਸਟਮ ਤਰਜੀਹਾਂ ਬਣਾਉਂਦਾ ਹੈ। ਇੱਕ ਸਿਸਟਮ ਦਿਸ਼ਾ ਬਣਾਉਂਦਾ ਹੈ।
ਜਦੋਂ ਨੀਂਹ ਮੌਜੂਦ ਹੁੰਦੀ ਹੈ ਤਾਂ ਫੀਚਰਸ ਬਣਾਉਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।
ਸਫਲ ਉਤਪਾਦਾਂ ਵਿੱਚ ਸਿਰਫ਼ ਬਹੁਤ ਸਾਰੇ ਫੀਚਰਸ ਹੀ ਨਹੀਂ ਹੁੰਦੇ। ਉਹਨਾਂ ਵਿੱਚ ਵਿਚਾਰਸ਼ੀਲ ਸਿਸਟਮ ਹੁੰਦੇ ਹਨ। ਵਰਕਫਲੋ ਕੁਦਰਤੀ ਮਹਿਸੂਸ ਹੁੰਦੇ ਹਨ। ਅਨੁਭਵ ਜਾਣਬੁੱਝ ਕੇ ਤਿਆਰ ਕੀਤਾ ਹੋਇਆ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ।
ਦਿੱਖਾਈ ਦੇਣ ਵਾਲੇ ਹਿੱਸਿਆਂ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਨਾ ਬੰਦ ਕਰੋ। ਪਹਿਲਾਂ ਸਿਸਟਮ ਬਣਾਓ। ਫੀਚਰਾਂ ਨੂੰ ਇਸ ਵਿੱਚੋਂ ਉੱਭਰਨ ਦਿਓ।
ਸਰੋਤ: https://dev.to/stinklewinks/why-most-software-is-built-backwards-46i