ਘੱਟ ਫ੍ਰੇਮਵਰਕ ਵਰਤਣ ਨਾਲ ਸੰਦਰਭ-ਬਦਲਾਅ ਘਟਦਾ ਹੈ, ਓਨਬੋਰਡਿੰਗ ਸਾਦਾ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਸਾਂਝੇ ਟੂਲਿੰਗ ਮਜ਼ਬੂਤ ਹੁੰਦੀ ਹੈ—ਇਸ ਨਾਲ ਟੀਮਾਂ ਤੇਜ਼ੀ ਨਾਲ ਫੀਚਰ ਸ਼ਿਪ ਕਰ ਸਕਦੀਆਂ ਹਨ ਤੇ ਘੱਟ ਅਚਾਨਕੀਆਂ ਹੁੰਦੀਆਂ ਹਨ।

“ਘੱਟ ਫ੍ਰੇਮਵਰਕ” ਦਾ ਮਤਲਬ ਤੁਹਾਡੇ ਸਾਰੇ ਟੂਲ ਨੂੰ ਇੱਕ ਹੀ ਚੀਜ਼ ਤੇ ਸਮੇਟਣਾ ਨਹੀਂ ਹੈ। ਇਹ ਇਸ ਗੱਲ ਨੂੰ ਯਾਦ ਰੱਖਣ ਦਾ ਤਰੀਕਾ ਹੈ ਕਿ ਇੱਕੋ ਤਰ੍ਹਾਂ ਦੀ ਚੀਜ਼ ਬਣਾਉਣ ਦੇ ਤਰੀਕੇ ਘੱਟ ਹੋਣ—ਤਾਂ ਜੋ ਟੀਮਾਂ ਕੋਡ, ਹੁਨਰ, ਪੈਟਰਨ ਅਤੇ ਟੂਲਿੰਗ ਸਾਂਝੇ ਕਰ ਸਕਣ ਬਜਾਏ ਹਰ ਵਾਰੀ ਨਵੀਂ ਚੀਜ਼ ਬਣਾਉਣ ਦੇ।
ਫ੍ਰੇਮਵਰਕ ਫੈਲਾਅ ਉਹ ਹੈ ਜਦੋਂ ਇੱਕ ਅੰਗਠੀਕ ਢੰਗ ਨਾਲ ਇੱਕੋ ਜਿਹੇ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਕਈ ਇਨ-ਓਵਰਲੈਪਿੰਗ ਫ੍ਰੇਮਵਰਕ ਇਕੱਠੇ ਹੋ ਜਾਂਦੇ ਹਨ—ਅਕਸਰ ਅਧਿਗ੍ਰਹਣ, ਬਹੁਤ ਅਧਿਕ ਟੀਮ ਆਜ਼ਾਦੀ, ਜਾਂ "ਚਲ ਕੇ ਦੇਖੀਏ" ਫੈਸਲਿਆਂ ਵਜੋਂ ਜੋ ਕਦੇ ਰਿਟਾਇਰ ਨਹੀਂ ਹੁੰਦੇ।
ਆਮ ਉਦਾਹਰਣ:
ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਆਪਣੇ ਆਪ ਵਿੱਚ ਗਲਤ ਨਹੀਂ ਹੈ। ਸਮੱਸਿਆ ਉਸ ਵੇਲੇ ਆਉਂਦੀ ਹੈ ਜਦ ਵਿਆਪਕਤਾ ਤੁਹਾਡੀ ਸਮਰਥਾ ਤੋਂ ਵੱਧ ਹੋ ਜਾਵੇ ਕਿ ਤੁਸੀਂ ਸਾਰੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਸਪੋਰਟ ਕਰ ਸਕੋ।
Velocity ਦਾ ਮਤਲਬ ਸਿਰਫ "ਕਿੰਨੇ ਸਟੋਰੀ ਪੁਆਇੰਟ ਸਾਡੇ ਨੇ ਸਪਲਾਈ ਕੀਤੇ" ਨਹੀਂ ਹੁੰਦਾ। ਹਕੀਕਤ ਵਿੱਚ ਗਤੀ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਵੱਜਦੀ ਹੈ:
ਜਦ ਫ੍ਰੇਮਵਰਕ ਬਹੁਤ ਹੋ ਜਾਂਦੇ ਹਨ, ਇਹ ਮੈਟ੍ਰਿਕਸ ਅਕਸਰ ਖਰਾਬ ਹੋ ਜਾਂਦੇ ਹਨ ਕਿਉਂਕਿ ਹਰ ਬਦਲਾਅ ਨੂੰ ਵਧੇਰੇ ਸੰਦਰਭ, ਅਨੁਵਾਦ ਅਤੇ ਵਿਲੱਖਣ ਟੂਲਿੰਗ ਦੀ ਲੋੜ ਪੈਂਦੀ ਹੈ।
ਕਨਸਾਲਿਡੇਸ਼ਨ ਇਕ ਰਣਨੀਤੀ ਹੈ, ਸੂਖਮ ਠੋਸ ਨਿਯਮ ਨਹੀਂ। ਸਿਹਤਮੰਦ ਤਰੀਕਾ ਇਹ ਹੈ: ਇੱਕ ਛੋਟਾ ਸੈੱਟ ਚੁਣੋ ਜੋ ਅਜੇ ਤੁਹਾਡੇ ਲਈ ਫਿੱਟ ਬੈਠਦਾ ਹੋਵੇ, ਸਮੀਖਿਆ ਦੇ ਪੁਆਇੰਟ ਰੱਖੋ (ਉਦਾਹਰਣ ਲਈ ਸਾਲਾਨਾ), ਅਤੇ ਸਵਿੱਚਿੰਗ ਨੂੰ ਇਕ ਜਾਣਬੂਝ ਕੇ ਫੈਸਲਾ ਬਣਾਓ ਜਿਸ ਨਾਲ ਮਾਈਗ੍ਰੇਸ਼ਨ ਯੋਜਨਾ ਹੋਵੇ।
ਤੁਸੀਂ ਕੁਝ ਲੋਕਲ ਸੁਧਾਰ ਖੋ ਦਿੰਦੇ ਹੋ (ਟੀਮਾਂ ਆਪਣੇ ਮਨਪਸੰਦ ਟੂਲ ਚੁਣਉਂਦੀਆਂ) ਪਰ ਸਿਸਟਮ-ਸਤ੍ਹਰ ਦੇ ਲਾਭ ਮਿਲਦੇ ਹਨ (ਤੇਜ਼ ਓਨਬੋਰਡਿੰਗ, ਸਾਂਝੇ ਕੰਪੋਨੇਟ, ਸਧਾਰਨ CI/CD, ਅਤੇ ਘੱਟ ਐਜ-ਕੇਸ ਫੇਲਰ)। ਬਾਕੀ ਲੇਖ ਇਹ ਦੱਸਦਾ ਹੈ ਕਿ ਇਹ ਵਪਾਰ ਕਦੋਂ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ—ਅਤੇ ਕਦੋਂ ਨਹੀਂ।
ਟੀਮਾਂ ਆਮ ਤੌਰ 'ਤੇ "ਸਿਰਫ ਇੱਕ ਹੋਰ ਫ੍ਰੇਮਵਰਕ" ਅਪਣਾਉਂਦੀਆਂ ਹਨ ਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਲਾਗਤ ਫੌਰਾ ਨਹੀਂ ਮਹਿਸੂਸ ਹੁੰਦੀ। ਇਹ ਕਰ ‘ਟੈਕਸ’ ਛੋਟੇ-ਛੋਟੇ ਦੇਰਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦਾ—ਵਾਧੂ ਮੀਟਿੰਗਾਂ, ਲੰਬੇ PRs, ਨਕਲ ਕੀਤੇ কੰਫਿਗ—ਜੋ ਇਕਠੇ ਹੋ ਕੇ ਡਿਲਿਵਰੀ ਨੂੰ ਸੁਸਤ ਕਰ ਦਿੰਦੇ ਹਨ ਭਾਵੇਂ ਹਰ ਕੋਈ ਮਿਹਨਤ ਕਰ ਰਿਹਾ ਹੋਵੇ।
ਜਦ ਇੱਕੋ ਫੀਚਰ ਨੂੰ ਬਣਾਉਣ ਲਈ ਕਈ ਠੀਕ ਰਾਹ ਹੋਂਦੇ ਹਨ, ਤਾਂ ਇੰਜੀਨੀਅਰ ਚੁਣਨ ਵਿੱਚ ਸਮਾਂ ਖਰਚ ਕਰਦੇ ਹਨ ਨਾਂ ਕਿ ਬਣਾਉਣ ਵਿੱਚ। ਇਹ ਸਾਰੇ ਫੈਸਲੇ—ਕਿਹੜਾ ਰਾਊਟਿੰਗ, ਕਿਹੜਾ ਸਟੇਟ ਅਪ੍ਰੋਚ—ਹਜ਼ਾਰਾਂ ਟਿਕਟਾਂ 'ਤੇ ਦੁਹਰਾਏ ਜਾਣ ਤੇ ਦਿਨ ਖਾ ਜਾਂਦੇ ਹਨ।
ਮਿਕਸਡ ਸਟੈਕ ਨਾਲ ਸੁਧਾਰ ਇੱਕ ਨਾਲ ਨਹੀਂ ਫੈਲਦੇ। ਇੱਕ ਫ੍ਰੇਮਵਰਕ ਵਿੱਚ ਸਿੱਖਿਆ performance fix, accessibility pattern ਜਾਂ error-handling ਦੂਜੇ ਵਿੱਚ ਬਿਨਾ ਅਨੁਵਾਦ ਦੇ ਵਰਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ। ਇਸਦਾ ਨਤੀਜਾ ਇਹ ਹੈ ਕਿ ਇੱਕੋ ਹੀ ਬੱਗ ਮੁੜ ਮੁੜ ਆਉਂਦਾ ਹੈ—ਅਤੇ ਭਿੰਨ ਟੀਮਾਂ ਦੁਆਰਾ ਇੱਕੋ ਹੀ ਸਬਕ ਦੁਬਾਰਾ ਸਿੱਖਿਆ ਜਾਂਦਾ ਹੈ।
ਅਸਮਰਥਿਤ ਪੈਟਰਨ ਵਿਖੇ ਰਿਵਿਊ ਕਰਨ ਵਾਲਿਆਂ ਨੂੰ ਸੰਦਰਭ-ਬਦਲਣਾ ਪੈਂਦਾ ਹੈ। ਇੱਕ PR ਸਿਰਫ "ਕੀ ਇਹ ਸਹੀ ਹੈ?" ਨਹੀਂ ਹੋਂਦਾ—ਇਹ ਵੀ "ਇਸ ਫ੍ਰੇਮਵਰਕ ਵਿੱਚ ਇਹ ਕਿਵੇਂ ਕੀਤਾ ਜਾਵੇ?" ਬਣ ਜਾਂਦਾ ਹੈ। ਇਸ ਨਾਲ ਰਿਵਿਊ ਸਮਾਂ ਵੱਧਦਾ ਹੈ ਅਤੇ ਬੱਗਾਂ ਦੇ ਛੁੱਟਣ ਦੇ ਖਤਰੇ ਵੱਧਦੇ ਹਨ।
ਫ੍ਰੇਮਵਰਕ ਫੈਲਾਅ ਅਕਸਰ ਹੇਠਾਂ ਦਿੱਤੇ ਖੇਤਰਾਂ ਵਿੱਚ ਨਕਲ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ:
ਨਤੀਜੇ ਵਜੋਂ ਸਿਰਫ ਵਾਧੂ ਕੋਡ ਨਹੀਂ—ਇਹ ਵਾਧੂ ਮੇਨਟੇਨੈਂਸ ਹੈ। ਹਰ ਵਾਧੂ ਫ੍ਰੇਮਵਰਕ ਨਾਲ ਇੱਕ ਹੋਰ ਅੱਪਗਰੇਡ, ਸੁਰੱਖਿਆ ਪੈਚ ਅਤੇ "ਇੱਥੇ X ਕਿਵੇਂ ਕਰੀਏ?" ਵਾਲੀਆਂ ਗੱਲਾਂ ਆ ਜਾਂਦੀਆਂ ਹਨ।
ਗਤੀ ਸਿਰਫ ਕਿਸੇ ਦੀ ਲਿਖਣ ਦੀ ਤੇਜ਼ੀ ਬਾਰੇ ਨਹੀਂ—ਇਹ ਇਸ ਬਾਰੇ ਹੈ ਕਿ ਕੋਈ ਸਮੱਸਿਆ ਨੂੰ ਕਿੰਨੀ ਤੇਜ਼ੀ ਨਾਲ ਸਮਝਦਾ, ਸੁਰੱਖਿਅਤ ਬਦਲਾਅ ਕਰਦਾ, ਅਤੇ ਭਰੋਸੇ ਨਾਲ ship ਕਰਦਾ। ਫ੍ਰੇਮਵਰਕ ਫੈਲਾਅ ਜ਼ਹਨੀ ਭਾਰ ਵਧਾਉਂਦਾ ਹੈ: ਡਿਵੈਲਪਰ ਜ਼ਿਆਦਾ ਸਮਾਂ "ਇਸ ਐਪ ਵਿੱਚ ਚੀਜ਼ਾਂ ਕਿਵੇਂ ਹੁੰਦੀਆਂ ਹਨ" ਯਾਦ ਕਰਨ 'ਚ ਲਗਾਉਂਦੇ ਹਨ ਨਾਂ ਕਿ ਯੂਜ਼ਰ ਦੀ ਲੋੜ ਨੂੰ ਹੱਲ ਕਰਨ ਵਿੱਚ।
ਜਦ ਟੀਮਾ ਬਹੁਤ ਸਾਰੇ ਫ੍ਰੇਮਵਰਕ ਸੰਭਾਲਦੇ ਹਨ, ਹਰ ਟਾਸਕ ਵਿੱਚ ਇੱਕ ਲੁਕਿਆ ਹੋਇਆ ਵਾਰਮ-ਅਪ ਖ਼ਰਚ ਹੁੰਦਾ ਹੈ। ਤੁਸੀਂ ਮਾਨਸਿਕ ਤੌਰ 'ਤੇ ਵੱਖ-ਵੱਖ ਸਿੰਟੈਕਸ, ਰਿਵਾਜ ਅਤੇ ਟੂਲਿੰਗ ਵਿਚਕਾਰ ਸਵੈਪ ਕਰਦੇ ਹੋ। ਛੋਟੇ-ਛੋਟੇ ਫਰਕ—ਰਾਊਟਿੰਗ ਪੈਟਰਨ, ਸਟੇਟ ਡਿਫੌਲਟ, ਟੈਸਟ ਲਾਇਬ੍ਰੇਰੀਜ਼—ਘਣੇ ਘਾਵ ਬਣਾਉਂਦੇ ਹਨ।
ਇਹ ਘੜੀ ਰਿਵਿਊਜ਼ ਸੁਸਤ ਹੋਣ, "ਇੱਥੇ X ਕਿਵੇਂ ਕਰੀਏ?" ਦੇ ਸੁਨੇਹਿਆਂ ਵਿੱਚ ਵਾਧਾ, ਅਤੇ ਬਦਲਾਅ ਲਈ ਲੰਬਾ ਲੀਡ ਟਾਈਮ ਦੇ ਰੂਪ ਵਿੱਚ ਨਿਕਲਦਾ ਹੈ। ਹਫਤੇ ਵਿੱਚ ਇਹ ਇੱਕ ਵੱਡੀ ਦੇਰੀ ਨਹੀਂ ਹੁੰਦੀ; ਇਹ ਦਹାਡੀ ਵਿਖੇ ਹਜ਼ਾਰਾਂ ਛੋਟੇ-ਛੋਟੇ ਦੇਰਾਂ ਹੈ।
ਮਿਆਰੀਕਰਨ ਇੰਜੀਨੀਅਰ ਪ੍ਰੋਡਕਟੀਵਟੀ ਨੂੰ ਸੁਧਾਰਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਵਰਤਾਰਾ ਅਨੁਮਾਨਯੋਗ ਬਣਾਉਂਦਾ ਹੈ। ਬਿਨਾ ਇਸਦੇ, ਡੀਬੱਗਿੰਗ ਇੱਕ ਖੋਜ-ਮਿਸ਼ਨ ਬਣ ਜਾਂਦੀ ਹੈ:
ਨਤੀਜਾ: ਨਿਰਧਾਰਨ ਸਮਾਂ diagnosing 'ਚ ਵੱਧਦਾ ਹੈ, ਉਸੇ ਸਮੇਂ ਬਣਾਉਣ ਵਿੱਚ ਘੱਟ।
ਆਮ ਇੰਟੇਗਰੇਸ਼ਨ (auth, analytics, error reporting) ਥੋੜ੍ਹੇ ਬੋਰਿੰਗ ਮਾਨੇ ਜਾਣੇ ਚਾਹੀਦੇ ਹਨ। ਬਹੁਤ ਸਾਰੇ ਫ੍ਰੇਮਵਰਕ ਨਾਲ, ਹਰ ਇੰਟੇਗਰੇਸ਼ਨ ਲਈ ਕਸਟਮ glue ਕੋਡ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਹੈਂਡਲਿੰਗ ਦੀ ਲੋੜ ਪੈਂਦੀ ਹੈ—ਜੋ ਹੋਰ ਐਜ-ਕੇਸ ਅਤੇ ਸਾਇਲੈਂਟ ਟੁੱਟਣ ਦੇ ਤਰੀਕੇ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਨਾਲ ਓਪਰੇਸ਼ਨਲ ਓਹਦੈ ਬਢ਼ਦਾ ਹੈ ਅਤੇ ਆਨ-ਕਾਲ ਸਹਾਇਤਾ ਜ਼ਿਆਦਾ ਤਣਾਵ ਵਾਲੀ ਬਣ ਜਾਂਦੀ ਹੈ।
ਟੀਮ ਗਤੀ ਭਰੋਸੇਯੋਗ ਰੀਫੈਕਟੋਰਿੰਗ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ। ਜਦੋਂ ਘੱਟ ਲੋਕ ਹਰ ਕੋਡਬੇਸ ਨੂੰ ਠੀਕ ਤਰ੍ਹਾਂ سمجھਦੇ ਹਨ, ਇੰਜੀਨੀਅਰ ਢਾਂਚাগত ਸੁਧਾਰ ਕਰਨ ਤੋਂ ਹਿਚਕਦੇ ਹਨ। ਉਹ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਪੈਚ ਕਰਦੇ ਹਨ ਬਜਾਏ ਸਹੀ ਢੰਗ ਨਾਲ ਠੀਕ ਕਰਨ ਦੇ, ਜਿਸ ਨਾਲ ਜਟਿਲਤਾ ਵੱਧਦੀ ਹੈ ਅਤੇ ਜਜ਼ਬਾਤੀ ਭਾਰ ਉਚ੍ਹਾ ਰਹਿੰਦਾ ਹੈ।
ਘੱਟ ਫ੍ਰੇਮਵਰਕ ਸਖ਼ਤ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਨਹੀੰ ਮਿਟਾਉਂਦੇ—ਪਰ ਉਹ "ਅਸੀਂ ਕਿੱਥੋਂ ਸ਼ੁਰੂ ਕਰੀਏ?" ਵਾਲੀਆਂ ਘਟਨਾਵਾਂ ਘੱਟ ਕਰ ਦਿੰਦੇ ਹਨ ਜੋ ਸਮਾਂ ਅਤੇ ਧਿਆਨ ਖ਼ਰਚ ਕਰਦੀਆਂ ਹਨ।
ਫ੍ਰੇਮਵਰਕ ਫੈਲਾਅ ਸਿਰਫ ਫੀਚਰ ਡਿਲਿਵਰੀ ਨੂੰ ਸੁਸਤ ਨਹੀਂ ਕਰਦਾ—ਇਹ ਚੁਪਚਾਪ ਲੋਕਾਂ ਲਈ ਇਕੱਠੇ ਕੰਮ ਕਰਨਾ ਵੀ ਔਖਾ ਕਰ ਦਿੰਦਾ ਹੈ। ਜਦ ਹਰ ਟੀਮ ਦੀ ਆਪਣੀ "ਬਨਾਉਣ ਦੀ ਰੀਤ" ਹੋਵੇ, ਤਾਂ ਸੰਸਥਾ ਨੂੰ ਰੈਂਪ-ਅਪ ਸਮਾਂ, ਭਰਤੀ ਮੱਸਲਿਆਂ ਅਤੇ ਕਮਜ਼ੋਰ ਸਹਯੋਗ ਦਾ ਭੁਗਤਾਨ ਕਰਨਾ ਪੈਂਦਾ ਹੈ।
ਨਵੇਂ ਭਰਤੀ ਲੋਕਾਂ ਨੂੰ ਤੁਹਾਡੇ ਉਤਪਾਦ, ਗਾਹਕ ਅਤੇ ਵਰਕਫਲੋ ਸਿੱਖਣੇ ਪੈਂਦੇ ਹਨ। ਜੇ ਉਹਨਾਂ ਨੂੰ ਯੋਗਦਾਨ ਦੇਣ ਲਈ ਕਈ ਫ੍ਰੇਮਵਰਕ ਵੀ ਸਿੱਖਣੇ ਪੈਂ, ਤਾਂ ਓਨਬੋਰਡਿੰਗ ਸਮਾਂ ਵੱਧ ਜਾਂਦਾ—ਖ਼ਾਸ ਕਰਕੇ ਜਦ "ਅਸੀਂ ਕਿਵੇਂ ਬਣਾਉਂਦੇ ਹਾਂ" ਟੀਮ-ਵਾਰ ਵੱਖਰਾ ਹੋਵੇ।
ਦੋਹਰਾਈ ਦੀ ਥਾਂ, ਜਦ ਉਹ ਦੁਹਰਾਈ ਰਾਹੀਂ ਭਰੋਸਾ ਬਣਾਉਂਦੇ ("ਇਹ ਅਸੀਂ ਪੇਜਾਂ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਬਣਾਉਂਦੇ ਹਾਂ", "ਇਹ ਅਸੀਂ ਡੇਟਾ ਫੈਚ ਕਰਦੇ ਹਾਂ", "ਇਹ ਅਸੀਂ ਟੈਸਟ ਕਰਦੇ ਹਾਂ"), ਉਹ ਆਜ਼ਾਦੀ ਨਾਲ ਕੰਮ ਕਰ ਸਕਦੇ ਹਨ। ਬਾਰ-ਬਾਰ ਸੰਦਰਭ-ਬਦਲਾਵ ਨਾਲ ਉਨ੍ਹਾਂ ਨੂੰ ਹੋਰ ਉੱਤਰ ਦੀ ਲੋੜ ਪੈਂਦੀ ਹੈ, ਛੋਟੀਆਂ ਗਲਤੀਆਂ ਹੋਦੀਆਂ ਹਨ ਅਤੇ ਸਵਤੰਤਰ ਜ਼ਿੰਮੇਵਾਰੀ ਤੱਕ ਪਹੁੰਚ ਲੰਮੀ ਹੋ ਜਾਂਦੀ ਹੈ।
ਮੈਨਟਰਿੰਗ ਸਭ ਤੋਂ ਵਧੀਆ ਤਦ ਹੀ ਹੁੰਦੀ ਹੈ ਜਦ ਵੱਡੇ ਇੰਜੀਨੀਅਰ ਤੁਰੰਤ ਮੁੱਦਿਆਂ ਨੂੰ ਵੇਖ ਸਕਦੇ ਹਨ ਅਤੇ ਲਾਗੂ ਹੋਣ ਵਾਲੇ ਪੈਟਰਨ ਸਿਖਾ ਸਕਦੇ ਹਨ। ਬਹੁਤ ਸਾਰੇ ਫ੍ਰੇਮਵਰਕ ਨਾਲ, ਮੈਨਟਰਿੰਗ ਘੱਟ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੋ ਜਾਂਦੀ ਹੈ ਕਿਉਂਕਿ ਸੀਨੀਅਰ ਲੋਕ ਵੱਖ-ਵੱਖ ਸਟੈਕਾਂ 'ਚ ਫੈਲੇ ਹੁੰਦੇ ਹਨ।
ਨਤੀਜਾ:
ਛੋਟੇ ਸੈੱਟ ਵਾਲੇ ਸਾਂਝੇ ਫ੍ਰੇਮਵਰਕ ਸीनਿਅਰਾਂ ਨੂੰ ਬੜੀ ਪੁਸ਼ਤੀ ਨਾਲ ਮੈਨਟਰ ਕਰਨ ਯੋਗ ਬਣਾਉਂਦੇ ਹਨ: ਸਲਾਹ ਕਈ ਰਿਪੋਜ਼ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ ਅਤੇ ਜੂਨੀਅਰ ਜਿਹੜਾ ਸਿੱਖਿਆ ਹੈ ਉਹ ਤੁਰੰਤ ਦੁਹਰਾਉਂਦਾ ਹੈ।
ਜਦ ਲੰਬੀ ਲਿਸਟ "ਲਾਜ਼ਮੀ-ਹੂੰ" ਫ੍ਰੇਮਵਰਕ ਹੋਣ, ਭਰਤੀ ਅਤੇ ਇੰਟਰਵਿਊ ਔਖੇ ਹੋ ਜਾਂਦੇ ਹਨ। кандидੇਟ ਆਪ-ਅਪਨੈ-ਆਪ ਬਾਹਰ ਚਲੇ ਜਾਂਦੇ ਹਨ ("ਮੇਰੇ ਕੋਲ X, Y, Z ਦਾ ਤਜ਼ਰਬਾ ਨਹੀਂ") ਜਾਂ ਇੰਟਰਵਿਊ ਟੂਲ ਟ੍ਰਿਵੀਆ ਵੱਲ ਭਟਕ ਜਾਂਦੇ ਹਨ ਨਾਂ ਕਿ ਸਮੱਸਿਆ-ਹੱਲਣ।
ਇੱਕ ਮਿਆਰੀ ਸਟੈਕ ਨਾਲ, ਤੁਸੀਂfundamentals (product thinking, debugging, system design) ਲਈ ਭਰਤੀ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਫ੍ਰੇਮਵਰਕ ਖਾਸੀਆਂ ਨੂੰ ਇਕਸਾਰ ਢੰਗ ਨਾਲ ਓਨਬੋਰਡ ਕਰ ਸਕਦੇ ਹੋ।
ਪੇਅਰਿੰਗ, ਕੋਡ ਰਿਵਿਊ, ਅਤੇ ਘਟਨਾ ਸਮਰਥਨ ਜਦ ਸਾਂਝੇ ਪੈਟਰਨ ਹੁੰਦੇ ਹਨ ਤਾਂ ਬਿਹਤਰ ਕੰਮ ਕਰਦੇ ਹਨ। ਜਦ ਲੋਕ ਪ੍ਰੋਜੈਕਟ ਦੀ ਬਣਤਰ ਪਛਾਣ ਲੈਂਦੇ ਹਨ, ਉਹ ਭਰੋਸੇ ਨਾਲ ਯੋਗਦਾਨ ਦੇ ਸਕਦੇ ਹਨ, ਤੇਜ਼ੀ ਨਾਲ ਰਿਵਿਊ ਕਰ ਸਕਦੇ ਹਨ, ਅਤੇ ਤੁਰੰਤ ਮਦਦ ਲਈ ਦਾਖਲ ਹੋ ਸਕਦੇ ਹਨ।
ਕੁਝ ਫ੍ਰੇਮਵਰਕ ਨੂੰ ਮਿਆਰੀਕਰਨ ਸਭ ਫਰਕਾਂ ਨੂੰ ਖਤਮ ਨਹੀਂ ਕਰੇਗਾ, ਪਰ ਇਹ "ਕੋਈ ਵੀ ਇੰਜੀਨੀਅਰ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ" ਵਾਲੀ ਖੇਤਰ ਨੂੰ ਕਾਫੀ ਵਧਾ ਦਿੰਦਾ ਹੈ।
ਜਦ ਟੀਮਾਂ ਇੱਕ ਛੋਟੇ ਸੈੱਟ ਵਾਲੇ ਫ੍ਰੇਮਵਰਕ ਸਾਂਝੇ ਕਰਦੀਆਂ ਹਨ, ਤਦ ਦੁਹਰਾਉ ਉਪਲਬਧ ਨਹੀਂ ਰਹਿੰਦਾ—ਇਹ ਰੋਜ਼ਾਨਾ ਹੁੰਦਾ ਹੈ। ਉਹੀ ਬਿਲਡਿੰਗ ਬਲਾਕ ਕਈ ਪ੍ਰੋਡਕਟਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਲੋਕ ਘੱਟ ਸਮਾਂ ਮੁੜ-ਮੁੜ ਮੁੱਦੇ ਹੱਲ ਕਰਨ ਵਿੱਚ ਲਗਾਉਂਦੇ ਹਨ ਅਤੇ ਵੱਧ ਸਮਾਂ ship ਕਰਨ ਵਿੱਚ।
ਡਿਜ਼ਾਈਨ ਸਿਸਟਮ ਉਹਦੇ ਵੇਲੇ ਹੀ "ਅਸਲ" ਹੁੰਦਾ ਹੈ ਜਦ ਇਹ ਅਸਾਨੀ ਨਾਲ ਅਪਨਾਇਆ ਜਾ ਸਕੇ। ਘੱਟ ਸਟੈਕ ਨਾਲ, ਇੱਕ ਇਕੱਲਾ UI ਕੰਪੋਨੇਟ ਲਾਇਬ੍ਰੇਰੀ ਬਹੁਤ ਸਾਰੀਆਂ ਟੀਮਾਂ ਲਈ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ ਬਿਨਾਂ ਕਈ ਪੋਰਟਾਂ ਦੀ ਲੋੜ (React ਵਰਜਨ, Vue ਵਰਜਨ, "ਲੇਗੇਸੀ" ਵਰਜਨ)। ਇਸ ਦਾ ਮਤਲਬ:
ਹਰ ਫ੍ਰੇਮਵਰਕ ਵਿੱਚ ਵੱਖਰਾ ਸਟੈਕ ਹੋਣ ਕਾਰਨ ਟੀਮਾਂ ਅਕਸਰ ਉਹੀ ਯੂਟਿਲਿਟੀ ਦੁਬਾਰਾ ਬਣਾਉਂਦੀਆਂ ਹਨ—ਕਈ ਵਾਰ ਥੋੜ੍ਹਾ ਵੱਖਰਾ ਬਿਹੀਵਾਇਰ ਨਾਲ। ਮਿਆਰੀਕਰਨ ਨਾਲ ਇਹ ਸਾਂਝੇ ਪੈਕੇਜ ਰੱਖਣਾ ਅਸਾਨ ਹੁੰਦਾ ਹੈ:
"ਸਾਡਾ ਐਪ ਇਸ ਨੂੰ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਕਰਦਾ ਹੈ" ਦੀ ਥਾਂ, ਤੁਹਾਨੂੰ ਪੋਰਟੇਬਲ ਪੈਟਰਨ ਮਿਲਦੇ ਹਨ ਜਿਨ੍ਹਾਂ 'ਤੇ ਟੀਮ ਭਰੋਸਾ ਕਰ ਸਕਦੀ ਹੈ।
ਜੇ ਤੁਹਾਡਾ ਇਨਪੁਟ ਕੰਪੋਨੇਟ ਕੀ-ਬੋਰਡ ਵਰਤਾਰਾ, ਫੋਕਸ ਸਟੇਟ, ਅਤੇ ARIA ਐਟ੍ਰਿਬਿਊਟ ਪਹਿਲੋਂ ਹੀ ਸ਼ਾਮਿਲ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਹ ਸੁਧਾਰ ਸਾਰੇ ਪ੍ਰੋਡਕਟਾਂ ਵਿੱਚ ਆਪਣੇ-ਆਪ ਹੀ ਫੈਲ ਜਾਂਦੇ ਹਨ।
ਇਸੇ ਤਰ੍ਹਾਂ, ਸਾਂਝੇ ਲਿੰਟਿੰਗ, ਟੈਸਟਿੰਗ ਹੈਲਪਰ ਅਤੇ ਰਿਵਿਊ ਚੈਕਲਿਸਟ ਵੀ ਅਰਥਪੂਰਨ ਬਣ ਜਾਂਦੇ ਹਨ ਕਿਉਂਕਿ ਉਹ ਜ਼ਿਆਦਾਤਰ ਰਿਪੋਜ਼ 'ਤੇ ਲਾਗੂ ਹੁੰਦੇ ਹਨ।
ਹਰ ਫ੍ਰੇਮਵਰਕ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਗੁਣਾ ਕਰਦਾ ਹੈ: ਸੈੱਟਅਪ ਗਾਈਡ, ਕੰਪੋਨੇਟ ਵਰਤੋਂ, ਟੈਸਟਿੰਗ ਰਿਵਾਜ, ਡਿਪਲੌਯਮੈਂਟ ਨੋਟਿਸ। ਘੱਟ ਸਟੈਕ ਨਾਲ, ਡੌਕਸ ਜ਼ਿਆਦਾ ਸਪੱਸ਼ਟ ਅਤੇ ਪੂਰਨ ਬਣ ਜਾਂਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਉਹਨਾਂ ਨੂੰ ਵੱਧ ਲੋਕ ਰੱਖਦੇ ਹਨ ਅਤੇ ਵੱਧ ਵਰਤਦੇ ਹਨ।
ਨਤੀਜਾ: ਘੱਟ "ਖਾਸ ਮਾਮਲੇ" ਅਤੇ ਘੱਟ ਜਥੇਬੰਦੀ ਵਰਕਅਰਾਉਂਡ—ਖ਼ਾਸ ਕਰਕੇ ਨਵੇਂ ਜੁੜਨ ਵਾਲਿਆਂ ਲਈ ਜੋ ਅੰਦਰੂਨੀ ਪਲੇਅਬੁੱਕ ਪੜ੍ਹਦੇ ਹਨ।
ਗਤੀ ਸਿਰਫ ਇਹ ਨਹੀਂ ਕਿ ਇਕ ਡਿਵੈਲਪਰ ਕਿੰਨੀ ਤੁਰੰਤ ਕੋਡ ਲਿਖ ਸਕਦਾ ਹੈ। ਇਹ ਇਸ ਬਾਰੇ ਵੀ ਹੈ ਕਿ ਉਹ ਕੋਡ ਕਿੰਨੀ ਤੇਜ਼ੀ ਨਾਲ ਬਣ, ਟੈਸਟ, ਸ਼ਿਪ ਅਤੇ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਜਦ ਟੀਮਾਂ ਇੱਕ ਛੋਟੇ, ਸਹਿਮਤ ਸੈੱਟ ਵਾਲੇ ਫ੍ਰੇਮਵਰਕ ਵਰਤਦੀਆਂ ਹਨ, ਤਾਂ ਤੁਹਾਡੀ "ਉਤਪਾਦਨ ਮਸ਼ੀਨ" ਸਧਾਰਨ ਹੋ ਜਾਂਦੀ ਹੈ—ਅਤੇ ਅਹਿਸਾਸਯੋਗ ਤੌਰ 'ਤੇ ਤੇਜ਼।
ਫ੍ਰੇਮਵਰਕ ਫੈਲਾਅ ਅਕਸਰ ਹਰ ਰਿਪੋ ਲਈ ਖਾਸ ਪਾਈਪਲਾਈਨ ਲਾਜ਼ਮੀ ਕਰਦਾ ਹੈ: ਵੱਖ-ਵੱਖ ਬਿਲਡ ਕਮਾਂਡ, ਵੱਖ-ਵੱਖ ਟੈਸਟ ਰਨਰ, ਵੱਖ-ਵੱਖ ਕੰਟੇਨਰਾਈਜੇਸ਼ਨ ਕਦਮ, ਵੱਖ-ਵੱਖ ਕੈਸ਼ਿੰਗ ਰਣਨੀਤੀਆਂ। ਮਿਆਰੀਕਰਨ ਇਸ ਰੂਪ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ।
ਇਕਸਾਰ ਬਿਲਡ ਅਤੇ ਟੈਸਟ ਕਦਮ ਨਾਲ ਤੁਸੀਂ:
ਬਿਸਤ੍ਰਤ ਪਾਈਪਲਾਈਨਾਂ ਦੀ ਥਾਂ, ਤੁਸੀਂ ਕੁਝ ਚੁਣੀ ਹੋਈ ਵਧੀਆ ਪੈਟਰਨ ਰੱਖ ਸਕਦੇ ਹੋ ਜੋ ਜ਼ਿਆਦਾਤਰ ਪ੍ਰੋਜੈਕਟ ਹਲਕੇ ਸੋਧਾਂ ਨਾਲ ਅਪਣਾਹਿ ਸਕਦੇ ਹਨ।
ਵੱਖ-ਵੱਖ ਫ੍ਰੇਮਵਰਕ ਤੁਹਾਡੇ ਡਿਪੈਂਡੈਂਸੀ ਸਰਫੇਸ ਏਰੀਆ ਨੂੰ ਵਧਾਉਂਦੇ ਹਨ। ਇਹ ਵਲਨਰੇਬਿਲਿਟੀ ਅਡਵਾਈਜ਼ਰੀਜ਼ ਦੀ ਗਿਣਤੀ ਵਧਾਉਂਦਾ ਹੈ, ਅਪਡੇਟ ਕਿਸਮਾਂ ਵਿੱਚ ਵੱਖਰਾ ਤੇਜ਼ੀ, ਅਤੇ ਇਕ ਅਪਗਰੇਡ ਨਾਲ ਕੁਝ ਟੁੱਟਣ ਦੇ ਅਧਿਕ ਓਕਾਣੇ।
ਘੱਟ ਫ੍ਰੇਮਵਰਕ ਨਾਲ, ਤੁਸੀਂ ਇਹ ਨਿਯਮਤ ਕਰ ਸਕਦੇ ਹੋ:
ਇਸ ਨਾਲ ਸੁਰੱਖਿਆ ਦਾ ਕੰਮ ਰੁਟੀਨ ਮੇਂਟੇਨੈਂਸ ਵਰਗ ਬਣ ਜਾਂਦਾ ਹੈ ਨਾਂ ਕਿ ਅੱਗ-ਬੁਝਾਊ ਕਾਰਵਾਈ—ਖ਼ਾਸ ਕਰਕੇ ਜਦ ਕੋਈ ਉੱਚ-ਗੰਭੀਰਤਾ ਮੁੱਦਾ ਆਵੇ ਅਤੇ ਤੁਹਾਨੂੰ ਬਹੁਤ ਸਾਰੇ ਰਿਪੋਜ਼ 'ਤੇ ਤੇਜ਼ੀ ਨਾਲ ਪੈਚ ਕਰਨਾ ਪਏ।
ਲੌਗਿੰਗ, ਮੈਟਰਿਕਸ, ਅਤੇ ਟਰੇਸਿੰਗ ਸਭ ਤੋਂ ਵਧੀਆ ਤਦ ਹੀ ਹਨ ਜਦ ਇਹ ਇਕਸਾਰ ਹੋਵਨ। ਜੇ ਹਰ ਫ੍ਰੇਮਵਰਕ ਦਾ middleware ਸਟੈਕ, request ID ਰਿਵਾਜ, ਅਤੇ error boundary ਵੱਖ-ਵੱਖ ਹੋਵੇ, ਤਾਂ ਨਿਰੀਖਣ ਖੰਡ-ਖੰਡ ਹੋ ਜਾਂਦਾ ਹੈ।
ਘੱਟ ਸਟੈਕ ਨਾਲ ਤੁਸੀਂ ਆਮ ਡਿਫੌਲਟਾਂ (structured logs, ਸਾਂਝੇ dashboard, ਇੱਕਸਾਰ ਤਰੇਸ) 'ਤੇ ਮਿਲ ਸਕਦੇ ਹੋ ਤਾਂ ਟੀਮਾਂ "ਟੈਲੀਮੇਟਰੀ ਨੂੰ ਕੰਮ ਕਰਵਾ ਕਰਨ" ਵਿੱਚ ਘੱਟ ਸਮਾਂ ਲਗਾਉਂਦੀਆਂ ਹਨ ਅਤੇ ਜ਼ਿਆਦਾ ਸਮਾਂ ਇਸ ਨੂੰ ਭਰੋਸੇਯੋਗਤਾ ਸੁਧਾਰਣ ਵਿੱਚ ਵਰਤਦੀਆਂ ਹਨ।
ਲਿੰਟਰ, ਕੋਡ ਜੈਨਰੇਸ਼ਨ, ਟੈਮਪਲੇਟ, ਅਤੇ ਸਕੈਫੋਲਡਿੰਗ ਟੂਲ ਬਣਾਉਣਾ ਅਤੇ ਰੱਖਣਾ ਮਹਿੰਗਾ ਹੁੰਦਾ ਹੈ। ਜਦ ਇਹ ਬਹੁਤ ਸਾਰੀਆਂ ਟੀਮਾਂ ਵੱਲੋਂ ਘੱਟ ਸੋਧ ਨਾਲ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ, ਉਹ ਵਾਪਸੀ ਦਿੰਦੇ ਹਨ।
ਤੁਸੀਂ ਜਦ ਮਿਆਰੀਕਰਨ ਕਰਦੇ ਹੋ, ਪਲੇਟਫਾਰਮ ਜਾਂ ਐਨਬਲਮੈਂਟ ਕੰਮ ਸਕੇਲ ਕਰਦਾ ਹੈ: ਇੱਕ ਚੰਗਾ ਟੈਮਪਲੇਟ ਦਹਾਕੇ ਪ੍ਰੋਜੈਕਟ ਤੇਜ਼ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਕ ਸੈਟ ਕਨਵੇਂਸ਼ਨ ਰਿਵਿਊ ਚਾਈਕਲ ਘਟਾ ਸਕਦੀ ਹੈ।
ਉਦਾਹਰਨ ਵਜੋਂ: ਕੁਝ ਟੀਮਾਂ Koder.ai ਵਰਗੇ "vibe-coding" ਪਲੇਟਫਾਰਮ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ ਤਾਂ ਜੋ ਨਵੇਂ ਅੰਦਰੂਨੀ ਟੂਲਾਂ ਲਈ ਪੈਵਡ-ਰੋਡ ਸਟੈਕ ਲਾਗੂ ਹੋ ਜਾਵੇ—ਜਿਵੇਂ React ਫਰੰਟ-ਐਂਡ ਅਤੇ Go + PostgreSQL ਬੈਕਐਂਡ ਚੈਟ ਤੋਂ ਜਨਰੇਟ ਹੋਣ—ਤਾਂ ਜੋ ਆਉਟਪੁੱਟ ਸੰਗਠਨ ਦੇ ਡਿਫੌਲਟਸ ਨਾਲ ਕੁਦਰਤੀ ਤੌਰ 'ਤੇ ਫਿੱਟ ਹੋਏ ਰਹਿਣ (ਅਤੇ ਫਿਰ ਵੀ ਸਰੋਤ ਕੋਡ ਵਜੋਂ ਐਕਸਪੋਰਟ ਹੋ ਸਕਦੇ ਹਨ ਅਤੇ ਕਿਸੇ ਹੋਰ ਰਿਪੋ ਵਾਂਗ ਰੱਖੇ-ਸੰਭਾਲੇ ਜਾ ਸਕਦੇ ਹਨ)।
ਘੱਟ ਫ੍ਰੇਮਵਰਕ ਚੁਣਨ ਦਾ ਮਤਲਬ ਹਰ ਵੇਲੇ ਇੱਕ ਮਾਨਤਾ ਚੁਣਨਾ ਨਹੀਂ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਇੱਕ ਡਿਫੌਲਟ ਸਟੈਕ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨਾ ਅਤੇ ਮਨਮੇਟਾ, ਅਨੁਮোদਿਤ ਵਿਕਲਪਾਂ ਦਾ ਇੱਕ ਛੋਟਾ ਸੈੱਟ—ਤਾਂ ਜੋ ਟੀਮਾਂ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧ ਸਕਣ ਬਿਨਾਂ ਹਰ ਸਪ੍ਰਿੰਟ ਵਿੱਚ ਬੁਨਿਆਦੀ ਚੀਜ਼ਾਂ 'ਤੇ ਬਹਿਸ ਕਰਨ ਦੀ ਲੋੜ ਪੈਣ।
ਹਰ ਮੁੱਖ ਸਰਫੇਸ ਐਰੀਆ ਲਈ ਇੱਕ ਡਿਫੌਲਟ ਦਾ ਲੱਛਣ ਰੱਖੋ (ਉਦਾਹਰਣ: ਫਰੰਟ-ਐਂਡ, ਬੈਕਐਂਡ ਸੇਵਾਵਾਂ, ਮੋਬਾਈਲ, ਡੇਟਾ)। ਜੇ ਤੁਹਾਨੂੰ ਵਾਕਈ ਵਿਕਲਪਾਂ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਪ੍ਰਤੀ ਪਲੇਟਫਾਰਮ 1–2 ਤੱਕ ਸੀਮਤ ਕਰ ਦਿਓ। ਇੱਕ ਸਿਧਾ ਨਿਯਮ: ਜੇ ਇਕ ਨਵਾਂ ਪ੍ਰੋਜੈਕਟ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਡਿਫੌਲਟ ਨੂੰ ਬੈਠਣ ਬਿਨਾਂ ਕਿਸੇ ਮੀਟਿੰਗ ਦੇ ਚੁਣ ਸਕਣਾ ਚਾਹੀਦਾ ਹੈ।
ਇਹ ਸਭ ਤੋਂ ਵਧੀਆ ਤਦ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦ ਡਿਫੌਲਟ ਸਟੈਕ:
ਉਹ ਮਿਅਾਰ ਸਹਿਮਤ ਕਰੋ ਜੋ ਸਮਝਾਉਣ ਵਿੱਚ ਅਸਾਨ ਅਤੇ ਗੇਮ ਕਰਨ ਵਿੱਚ ਮੁਸ਼ਕਲ ਹੋਣ:
ਜੇ ਕੋਈ ਫ੍ਰੇਮਵਰਕ ਵਧੀਆ ਸਕੋਰ ਕਰਦਾ ਹੈ ਪਰ ਓਪਰੇਸ਼ਨਲ ਜਟਿਲਤਾ ਵਧਾਉਂਦਾ ਹੈ (ਬਿਲਡ ਸਮਾਂ, ਰਨਟਾਈਮ ਟਿਊਨਿੰਗ, ਘਟਨਾ ਪ੍ਰਤੀਕਿਰਿਆ), ਤਾਂ ਉਸਨੂੰ ਇੱਕ ਵਾਸ਼ਤਵਿਕ ਲਾਗਤ ਸਮਝੋ—ਕਦੇ ਬਾਅਦ ਵਿੱਚ।
ਇੱਕ ਛੋਟਾ ਗਰੁੱਪ ਬਣਾਓ (ਅਕਸਰ ਪਲੇਟਫਾਰਮ ਟੀਮ ਜਾਂ ਸੀਨੀਅਰ IC ਕੌਂਸਿਲ) ਜੋ ਬਿਨਾ ਲੰਮੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਛੋਟੀਆਂ ਛੋਟੀਆਂ ਛੂਟਾਂ ਨੂੰ ਮਨਜ਼ੂਰੀ ਦੇਵੇ। ਇਸਨੂੰ ਤੇਜ਼ ਰੱਖੋ:
ਮਿਆਰ, ਮਨਜ਼ੂਰ ਸੂਚੀ ਅਤੇ ਛੂਟ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਇੱਕ ਸਿੰਗਲ ਸੋਰਸ ਓਫ਼ ਟਰੂਥ 'ਚ ਰੱਖੋ (ਉਦਾਹਰਣ: /docs/engineering-standards) ਅਤੇ ਪ੍ਰੋਜੈਕਟ ਟੈਮਪਲੇਟ ਅਤੇ ਓਨਬੋਰਡਿੰਗ ਸਮੱਗਰੀ ਤੋਂ ਉਸਦਾ ਲਿੰਕ ਦਿਓ।
ਘੱਟ ਫ੍ਰੇਮਵਰਕ 'ਤੇ ਆਉਣਾ ਡ੍ਰਾਮੈਟਿਕ ਰੀਰਾਈਟ ਦੀ ਮੰਗ ਨਹੀਂ ਕਰਦਾ। ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਮਾਈਗ੍ਰੇਸ਼ਨ ਉਹ ਹਨ ਜੋ ਛੋਟੇ ਕਦਮਾਂ ਵਿੱਚ ਹੁੰਦੇ ਹਨ, ਮੁੱਲ shipping ਜਾਰੀ ਰੱਖਦੇ ਹਨ, ਅਤੇ ਹਰ ਰਿਲੀਜ਼ ਨਾਲ ਜੋਖਮ ਘਟਾਉਂਦੇ ਹਨ।
ਮਿਆਰੀ ਸਟੈਕ ਨੂੰ ਨਵੀਆਂ ਚੀਜ਼ਾਂ ਲਈ ਡਿਫੌਲਟ ਬਣਾਕੇ ਸ਼ੁਰੂ ਕਰੋ: ਨਵੇਂ ਐਪ, ਨਵੀਆਂ ਸੇਵਾਵਾਂ, ਨਵੀਆਂ UI ਸਤਹਾਂ, ਅਤੇ ਨਵੇਂ ਅੰਦਰੂਨੀ ਟੂਲ। ਇਸ ਨਾਲ ਫ੍ਰੇਮਵਰਕ ਫੈਲਾਅ ਤੇਜ਼ੀ ਨਾਲ ਰੁਕਦਾ ਹੈ ਬਿਨਾਂ ਲੈਗੇਸੀ ਸਿਸਟਮ ਨੂੰ ਛੂਹੇ।
ਜੇ ਕੋਈ ਲੈਗੇਸੀ ਐਪ ਸਥਿਰ ਹੈ ਅਤੇ ਮੁੱਲ ਦੇ ਰਹੀ ਹੈ, ਤਾਂ ਉਸਨੂੰ ਇਸ ਸਮੇਂ ਛੱਡ ਦਿਓ। ਫੋਰਸਡ ਰੀਰਾਈਟ ਆਮ ਤੌਰ 'ਤੇ ਲੰਬੀਆਂ ਰੋਕਾਂ, ਮਿਸਡ ਡੈਡਲਾਈਨ ਅਤੇ ਟੀਮ ਨੂੰ ਭਟਕਾਉਂਦੇ ਹਨ। ਇਸਦੀ ਥਾਂ, ਮਾਈਗ੍ਰੇਸ਼ਨ ਨੂੰ ਅਸਲੀ ਪ੍ਰੋਡਕਟ ਬਦਲਾਵਾਂ ਨਾਲ ਚਲਣ ਦਿਓ।
ਜਦ ਮੋਡਰਨਾਈਜ਼ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇ, ਤਦ ਕੁਦਰਤੀ ਬਾਊਂਡਰੀਆਂ 'ਤੇ ਮਾਈਗ੍ਰੇਟ ਕਰੋ:
ਵੇਵਹਾਰ ਸਾਦਾ ਹੈ: ਪੁਰਾਣਾ ਸਿਸਟਮ ਚੱਲਦਾ ਰਹੇ, ਇੱਕ ਟੁਕੜਾ ਨਵੇਂ ਸਟੈਕ ਵੱਲ ਰਿਡਾਇਰੈਕਟ ਕਰੋ, ਅਤੇ ਦੁਹਰਾਓ। ਸਮੇਂ ਨਾਲ ਨਵੀਂ ਲਾਗੂਆਈ ਪੁਰਾਣੇ ਨੂੰ "strangle" ਕਰ ਦੇਵੇਗੀ ਜਦ ਤੱਕ ਬਾਕੀ ਲੈਗੇਸੀ ਕੋਡ ਛੋਟਾ ਨਹੀਂ ਹੋ ਜਾਂਦਾ ਅਤੇ ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਰਿਟਾਇਰ ਕੀਤਾ ਜਾ ਸਕਦਾ।
ਲੋਕ ਆਸਾਨ ਰਾਹ ਫੋਲੋ ਕਰਦੇ ਹਨ। ਟੈਮਪਲੇਟ ਅਤੇ ਸਟਾਰਟਰ ਕਿਟ ਬਣਾਓ ਜੋ ਤੁਹਾਡੇ ਮਿਆਰਾਂ ਨੂੰ ਅੰਦਰ ਹੀ ਬੁਨ ਦੇਣ:
ਇਹਨਾਂ ਨੂੰ ਇੱਕ ਜਾਣੇ-ਪਛਾਣੇ ਸਥਾਨ 'ਤੇ ਰੱਖੋ ਅਤੇ ਅੰਦਰੂਨੀ ਡੌਕਸ ਤੋਂ ਲਿੰਕ ਕਰੋ (ਉਦਾਹਰਣ: /engineering/stack ਅਤੇ /engineering/starter-kits)।
ਮਾਈਗ੍ਰੇਸ਼ਨ ਫੇਲ ਹੁੰਦੀ ਹੈ ਜਦ ਇਹ ਕਿਸੇ ਦਾ ਕੰਮ ਨ ਹੋਵੇ। ਹਰ ਫ੍ਰੇਮਵਰਕ ਜਾਂ ਡਿਪੈਂਡੈਂਸੀ ਜੋ ਤੁਸੀਂ ਰਿਟਾਇਰ ਕਰ ਰਹੇ ਹੋ, ਲਈ ਤੈਅ ਕਰੋ:
ਪ੍ਰਗਤੀ ਅਤੇ ਛੂਟਾਂ ਨੂੰ ਖੁੱਲ੍ਹ ਕੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ ਤਾਂ ਟੀਮਾਂ ਯੋਜਨਾ ਬਣਾ ਸਕਣ ਨਾਂ ਕਿ ਅਚਾਨਕ ਨੁਕਸ ਆ ਕੇ ਬਦਹਾਲ ਹੋਣ।
ਮਿਆਰੀਕਰਨ ਸਿਰਫ ਤਦ ਕੰਮ ਕਰੇਗਾ ਜਦ ਇਹ ਹਕੀਕਤਪੂਰਨ ਹੋਵੇ। ਐਸੇ ਸਮੇਂ ਆਉਣਗੇ ਜਦ ਨਾ-ਸਥਾਨਕ ਫ੍ਰੇਮਵਰਕ ਠੀਕ ਹੋ ਸਕਦਾ ਹੈ—ਪਰ ਤੁਹਾਨੂੰ ਨਿਯਮ ਚਾਹੀਦੇ ਹਨ ਜੋ ਇਕ ਹੀ ਛੂਟ ਨੂੰ ਪਾਂਚ ਵੱਖ-ਵੱਖ ਸਟੈਕਾਂ 'ਚ ਬਦਲਣ ਤੋਂ ਰੋਕਣ।
ਛੂਟਾਂ ਸਿਰਫ਼ ਇਹਨਾਂ ਹਾਲਤਾਂ ਲਈ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ:
ਜੇ ਦਲੀਲ ਸਿਰਫ "ਟੀਮ ਨੂੰ ਇਹ ਪਸੰਦ ਹੈ" ਹੈ, ਤਾਂ ਉਸਨੂੰ ਪ੍ਰਿਫਰੈਂਸ ਸਮਝੋ—ਨਹੀਂ ਤਾਂ ਮਾਪਿਆਂ ਆਧਾਰਿਤ ਨਤੀਜੇ ਲੈ ਕੇ ਆਓ।
ਹਰ ਛੂਟ ਨਾਲ ਇੱਕ ਹਲਕਾ "ਸਪੋਰਟ ਕੰਟ੍ਰੈਕਟ" ਹੋਣਾ ਚਾਹੀਦਾ:
ਬਿਨਾਂ ਇਸਦੇ, ਤੁਸੀਂ ਭਵਿੱਖ ਦੀਆਂ ਓਪਰੇਸ਼ਨਲ ਲਾਗਤਾਂ ਮਨਜ਼ੂਰ ਕਰ ਰਹੇ ਹੋ ਬਿਨਾਂ ਕੋਈ ਬਜਟ ਦਿੱਤੇ।
ਛੂਟਾਂ ਨਾਂ ਤਾਂ ਅਟਲ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ। ਇੱਕ ਸਧਾਰਣ ਨਿਯਮ: ਹਰ 6–12 ਮਹੀਨੇ 'ਤੇ ਸਮੀਖਿਆ। ਸਮੀਖਿਆ ਦੌਰਾਨ ਪੁੱਛੋ:
ਨਿੱਜੀ ਪਸੰਦ ਨੂੰ ਅਸਲ ਲੋੜ ਤੋਂ ਵੱਖ ਕਰਨ ਲਈ ਇੱਕ ਛੋਟਾ ਚੈਕਲਿਸਟ ਬਣਾਓ: ਪਰਫਾਰਮੈਂਸ ਟਾਰਗੇਟ, ਕੰਪਲਾਇੰਸ ਲੋੜ, ਕੁੱਲ ਮਾਲਕੀ ਕੀਮਤ, ਭਰਤੀ/ਓਨਬੋਰਡਿੰਗ ਪ੍ਰਭਾਵ, CI/CD ਅਤੇ ਨਿਰੀਖਣ ਨਾਲ ਇੰਟੇਗਰੇਸ਼ਨ। ਜੇ ਇਹਨਾਂ 'ਤੇ ਥਿੱਠ ਨਹੀਂ ਹੁੰਦਾ, ਤਾਂ ਛੂਟ ਨਹੀਂ ਮਿਲਣੀ ਚਾਹੀਦੀ।
ਫ੍ਰੇਮਵਰਕ ਘੱਟ ਕਰਨਾ ਇੱਕ ਸਟੇਕ ਹੈ: ਘੱਟ ਫੈਲਾਅ ਜ਼ਹਨੀ ਭਾਰ ਘਟਾ ਕੇ ਡਿਵੈਲਪਰ ਉਤਪਾਦਕਤਾ ਵਧਾਉਂਦਾ। ਇਹ ਪਤਾ ਕਰਨ ਲਈ ਕਿ ਸਟੇਕ ਨੇ ਮੰਨਿਆ ਦਿੱਤਾ, ਸਮੇਂ ਦੇ ਨਾਲ ਨਤੀਜੇ ਨਾਪੋ—ਸਿਰਫ਼ ਟਰਾਂਜ਼ਿਸ਼ਨ ਦੌਰਾਨ ਦੇ ਅਨੁਭਵ 'ਤੇ ਨਹੀਂ।
ਇੱਕ ਬੇਸਲਾਈਨ ਵਿੰਡੋ ਚੁਣੋ (ਉਦਾਹਰਣ ਲਈ, ਘੱਟੋ-ਘੱਟ 6–8 ਹਫਤੇ ਪਹਿਲਾਂ) ਅਤੇ ਇਸਨੂੰ ਮਿਆਰੀਕਰਨ ਦੇ ਬਾਅਦ ਦੇ ਸਥਿਰ-ਰਾਜ ਅਵਧੀਆਂ ਨਾਲ ਤੁਲਨਾ ਕਰੋ। ਸੰਕ੍ਰਮਣ ਦੌਰਾਨ ਕਾਫੀ ਥੋੜੀ ਗਿਰਾਵਟ ਦੀ ਉਮੀਦ ਰੱਖੋ; ਅਹੰਕਾਰ ਹੈ ਕਿ ਜਦ ਤਬਦੀਲੀ ਨਿੱਜੀ ਤੌਰ 'ਤੇ ਸਹਿਜ ਹੋ ਜਾਵੇ ਤਬ ਰੁਜਾਨ ਮਹੱਤਵਪੂਰਨ ਹਨ।
ਉਹ ਮਿਟ੍ਰਿਕਸ ਜੋ ਆਇਡੀਆ ਤੋਂ ਚਲਦੇ ਸਾਫਟਵੇਅਰ ਤੱਕ ਦੇ ਰਸਤੇ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ:
ਇਹ ਪਲੇਟਫਾਰਮ ਟੀਮਾਂ ਅਤੇ ਐਨਬਲਮੈਂਟ ਗਰੁੱਪਾਂ ਲਈ ਖਾਸ ਤੌਰ 'ਤੇ ਉਪਯੋਗੀ ਹਨ ਕਿਉਂਕਿ ਇਹਨਾਂ ਨੂੰ ਗੇਮ ਕਰਨ ਔਖਾ ਹੁੰਦਾ ਹੈ ਅਤੇ ਟਰੈਂਡ ਕਰਨਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ।
ਫ੍ਰੇਮਵਰਕ ਮਿਲਾਫ਼ਲ ਨਾਲ ਓਨਬੋਰਡਿੰਗ ਸਮਾਂ ਘਟਣਾ ਚਾਹੀਦਾ ਹੈ। ਟਰੈਕ ਕਰੋ:
ਇਸਦੇ ਨਾਲ-ਨਾਲ ਤਾਕਤਾਂ ਦੇ ਟੀਮਾਂ ਦੇ ਦੁਆਰਾ ਸਾਂਝੇ ਕੰਪੋਨੇਟਾਂ ਨੂੰ ਕਿੰਨੀ ਵਾਰ ਦੁਬਾਰਾ ਕੰਮ ਬਿਨਾਂ ਵਰਤਿਆ ਗਿਆ, ਉਹ ਦੇਖੋ।
PR ਰਿਵਿਊ ਸਮਾਂ, ਰੀਵਰਕ ਲੂਪ, ਅਤੇ ਡਿਫੈਕਟ ਰੇਟ ਨੂੰ ਮਿਆਰੀਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੇ ਬਾਅਦ ਨਿਰਖੋ। ਤੇਜ਼ ਹੋਣਾ ਤਾਂ ਚੰਗਾ ਹੈ ਜੇ ਗੁਣਵੱਤਾ ਕਾਇਮ ਰਹੇ।
ਛੋਟੀਆਂ, ਰਿਕਰਿੰਗ ਸਰਵੇ (5 ਸਵਾਲਾਂ ਵਾਧਾ ਨਹੀਂ) ਚਲਾਓ ਬਾਰੇ ਮਹਿਸੂਸ ਕੀਤੀ ਫ੍ਰਿਕਸ਼ਨ, ਡੌਕਸ ਦੀ ਗੁਣਵੱਤਾ, ਅਤੇ ਚੇਂਜ ਸਿੱਪਿੰਗ ਉੱਤੇ ਭਰੋਸਾ। ਕੁਝ ਇੰਟਰਵਿਊ ਵੀ ਕਰੋ ਤਾਂ ਜੋ ਮੈਟ੍ਰਿਕਸ ਜੋ ਨਹੀਂ ਦਿਖਾਉਂਦੇ ਉਹ ਸਮਝ ਆ ਸਕਣ।
ਘੱਟ ਫ੍ਰੇਮਵਰਕ 'ਤੇ ਮਿਆਰੀਕਰਨ ਇੱਕ ਤਕਨੀਕੀ ਫੈਸਲਾ ਨਹੀਂ, ਬਲਕਿ ਇਕ ਭਰੋਸੇ ਦਾ ਫੈਸਲਾ ਹੈ। ਲੋਕ ਡਰਦੇ ਹਨ ਕਿ "ਇੱਕ ਸਟੈਕ" ਨਿਯਮ ਨਵੀਨਤਾ ਮਾਰ ਦਵੇਗਾ, ਲਾਕ-ਇਨ ਵਧਾਏਗਾ, ਜਾਂ ਟੀਮ ਆਜ਼ਾਦੀ ਲੈ ਜਾਵੇਗੀ। ਤੁਹਾਨੂੰ ਉਹਨਾਂ ਦੇ ਡਰ ਨੂੰ ਸਿੱਧਾ ਸਮਝਾ ਕੇ ਅਤੇ ਰਾਹ ਨੂੰ ਪ੍ਰਯੋਗਾਤਮਕ ਬਣਾਕੇ ਵਧਨਾ ਚਾਹੀਦਾ ਹੈ—ਜ਼ਿਆਦਾ ਦੰਡਾਤਮਕ ਨਹੀਂ।
"ਇਹ ਨਵੀਨਤਾ ਮਾਰ ਦੇਵੇਗਾ." ਲਕਰ ਦਿਓ ਕਿ ਮਕਸਦ ਤੇਜ਼ ਡਿਲਿਵਰੀ ਹੈ, ਘੱਟ ਨਵੀਨਤਾ ਨਹੀਂ। ਸਮੇਂ-ਬੰਧਿਤ ਪ੍ਰਯੋਗਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰੋ, ਪਰ ਉਮੀਦ ਰੱਖੋ ਕਿ ਸਫਲ ਪ੍ਰਯੋਗ ਆਮ ਤੌਰ 'ਤੇ ਅਪਨਾਏ ਜਾਣ ਯੋਗ ਹੋਣਗੇ—ਨਹੀਂ ਤਾਂ ਉਹ ਨਿਯੰਤਰਿਤ ਰਹਿਣ।
"ਅਸੀਂ ਲਾਕ-ਇਨ ਹੋ ਜਾਵਾਂਗੇ." ਲਾਕ-ਇਨ ਆਮ ਤੌਰ 'ਤੇ ਕਸਟਮ glue ਅਤੇ ਜਥੇਬੰਦੀ ਗਿਆਨ ਤੋਂ ਆਉਂਦਾ ਹੈ, ਨਾ ਕਿ ਇੱਕ ਲੋਕਪ੍ਰਿਯ ਫ੍ਰੇਮਵਰਕ ਚੁਣਨ ਨਾਲ। ਬਾਊਂਡਰੀਆਂ (APIs, design tokens, service contracts) ਦਸਤਾਵੇਜ਼ ਕਰਕੇ ਲਾਕ-ਇਨ ਘਟਾਓ ਤਾਂ ਕਿ ਫ੍ਰੇਮਵਰਕ ਚੋਣ ਹਰ ਥਾਂ ਨਹੀਂ ਫੈਲੇ।
"ਤੁਸੀਂ ਟੀਮ ਆਜ਼ਾਦੀ ਲੈ ਲਿਆ ਹੈ।" ਆਜ਼ਾਦੀ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਫ੍ਰੇਮ ਕਰੋ ਕਿ ਇਹ ਘੱਟ ਰੁਕਾਵਟ ਵਾਲੇ ਸ਼ਿਪਿੰਗ ਨਤੀਜੇ ਲਈ ਹੈ। ਟੀਮ ਫਿਰ ਵੀ ਪ੍ਰੋਡਕਟ ਦਿਸ਼ਾ ਫੈਸਲੇ ਕਰਦੀ ਹੈ; ਪਲੇਟਫਾਰਮ ਸਿਰਫ਼ ਜ਼ਰੂਰੀ ਵੈਰੀਅੰਸ ਘਟਾਉਂਦਾ ਹੈ।
ਡਿਫੌਲਟ, ਚੰਗੀ ਤਰ੍ਹਾਂ ਸਮਰਥਿਤ ਸਟੈਕ (ਪੇਵਡ ਰੋਡ) ਦਿਓ: ਟੈਮਪਲੇਟ, ਲਾਇਬ੍ਰੇਰੀ, ਡੌਕਸ, ਅਤੇ ਆਨ-ਕਾਲ ਤੱਕ ਤਿਆਰ ਟੂਲ। ਫਿਰ ਇੱਕ ਸਪੱਸ਼ਟ ਛੂਟ ਪ੍ਰਕਿਰਿਆ ਰੱਖੋ ਜਿੱਥੇ ਡਿਫੌਲਟ ਮੈਟ ਨਹੀਂ ਬੈਠਦਾ—ਤਾਂ ਛੂਟ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਹੈ ਪਰ ਓਪਰੇਸ਼ਨਲ ਅਤੇ ਵਿਜ਼ਿਬਲ ਹੋਵੇ।
ਮਿਆਰਾਂ ਲਈ RFC ਪ੍ਰਕਿਰਿਆ ਚਲਾਓ, ਰਿਕਰਿੰਗ ਆਫਿਸ਼ ਸਰਆਇਬਸ (office hours) ਰੱਖੋ, ਅਤੇ ਮਾਈਗ੍ਰੇਸ਼ਨ ਸਹਾਇਤ (ਉਦਾਹਰਣ, ਜੋੜੀ ਸਹਿਯੋਗ, ਅਤੇ "ਸੌਖੇ-ਜਿੱਤ" ਦੀਆਂ ਲਿਸਟਾਂ) ਦਿਓ। ਇੱਕ ਸਧਾਰਨ ਪੰਨਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ ਜੋ ਚੁਣੇ ਗਏ ਫ੍ਰੇਮਵਰਕ, ਸਮਰਥਿਤ ਵਰਜਨਾਂ, ਅਤੇ "ਸਪੋਰਟ" ਦਾ ਕੀ ਅਰਥ ਹੈ ਦਿਖਾਏ।
ਕਦੋਂ ਕਈ ਫ੍ਰੇਮਵਰਕ ਜਾਇਜ਼ ਹੋ ਸਕਦੇ ਹਨ?
ਕੁਝ ਹਾਲਤਾਂ ਵਾਜਬ ਹਨ: ਛੋਟੇ-ਟਾਇਮ ਬਾਕਸ ਪ੍ਰਯੋਗ ਜਿੱਥੇ ਸਿੱਖਣ ਦੀ ਤੇਜ਼ੀ ਲੰਬੇ ਸਮੇਂ ਦੀ ਰਖਰੱਖਾ ਨਾਲੋਂ ਵੱਧ ਮੁੱਖ ਹੈ; ਅਧਿਗ੍ਰਹਿਤ ਉਤਪਾਦ ਜੋ ਤੁਸੀਂ ਤੁਰੰਤ ਰੀਫੈਕਟਰ ਨਹੀਂ ਕਰ ਸਕਦੇ; ਅਤੇ ਵਾਕਈ ਵੱਖਰੇ ਰਨਟਾਈਮ ਸੀਮਤੀਆਂ (ਜਿਵੇਂ embedded ਬਨਾਮ web)। ਮੁੱਖ ਗੱਲ ਇਹ ਹੈ ਕਿ ਇਹਨਾਂ ਨੂੰ ਛੂਟਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਅਤੇ ਇੱਕ ਐਗਜ਼ਿਟ ਪਲੈਨ ਨਾਲ ਟ੍ਰੀਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਇੱਕ ਸਥਾਈ "ਕੁਝ ਵੀ ਚੱਲਦਾ ਹੈ" ਨੀਤੀ।
"ਸਟੈਂਡਰਡਾਈਜ਼" vs "ਮੋਡੀਊਲਾਈਜ਼" vs "ਰੀਰਾਈਟ" ਕਿਵੇਂ ਫੈਸਲਾ ਕਰੀਏ?
ਜੇ ਟੀਮਾਂ ਪਹਿਲਾਂ ਹੀ ਵੱਖ-ਵੱਖ ਸਟੈਕਾਂ ਵਿੱਚ ਵੱਡਾ ਨਿਵੇਸ਼ ਕਰ ਚੁੱਕੀਆਂ ਹਨ ਤਾਂ ਕੀ?
ਉਹਨਾਂ ਦੇ ਕੰਮ ਨੂੰ ਅਮਾਨ ਨਾ ਕਰੋ। ਪਹਿਲਾਂ ਇੰਟਰਫੇਸ 'ਤੇ ਇਕੱਤਰ ਹੋਵੋ: ਸਾਂਝੇ ਕੰਪੋਨੇਟਾਂ ਦੇ ਸੰਪੰਨੀ ਅਨੁਬੰਧ, API ਕੰਵੈਨਸ਼ਨ, ਨਿਰੀਖਣ, ਅਤੇ CI/CD ਲੋੜਾਂ। ਫਿਰ ਨਵੇਂ ਕੰਮ ਲਈ ਇੱਕ ਡਿਫੌਲਟ ਫ੍ਰੇਮਵਰਕ ਚੁਣੋ, ਅਤੇ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ-ਬਦਲ ਰਹੇ ਖੇਤਰਾਂ (ਉਹ ਜਿੱਥੇ ਸਭ ਤੋਂ ਵੱਧ ਕਮਾਈ ਹੈ), ਦੀ ਮਾਈਗ੍ਰੇਸ਼ਨ ਕਰਕੇ ਧੀਰੇ-ਧੀਰੇ ਸਮਰੂਪਤਾ ਵਧਾਓ।
For deeper guidance, see /blog/engineering-standards. If you’re evaluating enablement tooling or platform support, /pricing may help.
"Fewer frameworks" means limiting the number of overlapping ways to build the same kind of product (e.g., one default web UI stack, one default service framework), so teams can reuse skills, components, tooling, and operating practices.
It doesn’t require shrinking everything to a single tool or banning exceptions; it’s about reducing unnecessary variety.
Framework sprawl is when you accumulate multiple stacks that solve similar problems (often via autonomy, acquisitions, or experiments that never get retired).
A quick check: if two teams can’t easily share components, review code, or swap on-call help because their apps “work differently,” you’re paying the sprawl tax.
Measure velocity end-to-end, not by story points. Useful signals include:
Yes—when the constraints are genuinely different or time-bounded. Common valid cases:
Treat these as exceptions with explicit ownership and a review date.
Pick a default stack for each major surface area (web, services, mobile, data), then allow only 1–2 approved alternatives.
Agree on criteria before debating tools:
The goal is for new projects to choose the default .
Keep governance lightweight and fast:
Document everything in one obvious place (e.g., /docs/engineering-standards).
Avoid big-bang rewrites. Safer patterns:
This reduces risk while still delivering product value continuously.
Require a “support contract” up front:
If an exception can’t commit to support and review, it’s likely just a preference—and will recreate sprawl.
Consolidation typically helps because it increases reuse and reduces ramp-up time:
Track “time to first merged PR” and “time to first feature shipped” to make the impact visible.
Make it feel like enablement, not punishment:
Link the standards and the path to exceptions from onboarding and templates (e.g., /docs/engineering-standards).
Baseline before consolidation, expect a transition dip, then compare trends once teams are shipping normally again.