ਤੁਹਾਡੇ PRs ਵੱਡੇ ਹੋਣ ਦਾ ਅਸਲ ਕਾਰਨ
ਮੈਂ ਇੱਕ ਵਾਰ ਇੱਕ ਅਜਿਹੀ ਕੰਪਨੀ ਵਿੱਚ ਕੰਮ ਕੀਤਾ ਸੀ ਜਿੱਥੇ ਆਦਤ ਵਜੋਂ ਬਹੁਤ ਵੱਡੇ pull requests ਭੇਜੇ ਜਾਂਦੇ ਸਨ। ਇੱਕ PR ਹਫ਼ਤਿਆਂ ਤੱਕ ਖੁੱਲ੍ਹਾ ਰਹਿ ਸਕਦਾ ਸੀ। ਇਸਦੀ ਸਮੀਖਿਆ (review) ਕਰਨ ਲਈ ਪੂਰੇ ਸਬ-ਸਿਸਟਮ (subsystem) ਨੂੰ ਆਪਣੇ ਦਿਮਾਗ ਵਿੱਚ ਰੱਖਣਾ ਪੈਂਦਾ ਸੀ। ਬੱਗਸ (bugs) ਜਮ੍ਹਾਂ ਹੁੰਦੇ ਗਏ। ਡੈੱਡਲਾਈਨਾਂ ਖਿਸਕਦੀਆਂ ਗਈਆਂ। ਅੰਤ ਵਿੱਚ ਸਾਨੂੰ ਸਿਸਟਮ ਦੇ ਇੱਕ ਵੱਡੇ ਹਿੱਸੇ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਉਣਾ ਪਿਆ ਕਿਉਂਕਿ ਹੁਣ ਕੋਈ ਵੀ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਬਦਲ ਨਹੀਂ ਸਕਦਾ ਸੀ।
ਇੰਜੀਨੀਅਰ ਬੁਰੇ ਨਹੀਂ ਸਨ। ਉਹ ਸਮਝਦਾਰ ਸਨ ਅਤੇ ਸਖ਼ਤ ਮਿਹਨਤ ਕਰਦੇ ਸਨ। PRs ਇੱਕ ਬਹੁਤ ਹੀ ਸਾਧਾਰਨ ਕਾਰਨ ਕਰਕੇ ਵੱਡੇ ਹੁੰਦੇ ਗਏ।
ਕਿਸੇ ਨੇ ਉਹਨਾਂ ਨੂੰ ਕੰਮ ਨੂੰ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵੰਡਣਾ ਨਹੀਂ ਸਿਖਾਇਆ ਸੀ।
ਅਸੀਂ ਅਕਸਰ ਵੱਡੇ PRs ਨੂੰ ਅਨੁਸ਼ਾਸਨ ਦੀ ਸਮੱਸਿਆ ਮੰਨਦੇ ਹਾਂ। ਅਸੀਂ ਕਹਿੰਦੇ ਹਾਂ, "ਬੱਸ ਛੋਟੇ PRs ਬਣਾਓ।" ਅਸੀਂ ਅਜਿਹਾ ਵਿਵਹਾਰ ਕਰਦੇ ਹਾਂ ਜਿਵੇਂ 1,500 ਬਦਲਾਅ ਅਤੇ 150 ਬਦਲਾਅ ਦੇ ਵਿਚਕਾਰ ਸਿਰਫ਼ ਇੱਛਾ ਸ਼ਕਤੀ (willpower) ਦਾ ਹੀ ਫਰਕ ਹੋਵੇ।
ਇਹ ਇੱਛਾ ਸ਼ਕਤੀ ਬਾਰੇ ਨਹੀਂ ਹੈ। ਵੱਡੇ ਕੰਮ ਨੂੰ ਛੋਟੇ, ਸੁਤੰਤਰ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵੰਡਣਾ ਇੱਕ ਹੁਨਰ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਲੋਕਾਂ ਨੂੰ ਇਹ ਕਦੇ ਨਹੀਂ ਸਿਖਾਇਆ ਜਾਂਦਾ। ਜਦੋਂ ਕੋਈ ਟਿਕਟ (ticket) ਕਹਿੰਦੀ ਹੈ "add billing," ਤਾਂ ਇਹ ਇੱਕ ਸਿੰਗਲ ਕੰਮ ਵਾਂਗ ਲੱਗਦਾ ਹੈ। ਇਹ ਦੇਖਣਾ ਕਿ ਇੱਕ PR ਕਿੱਥੇ ਖਤਮ ਹੁੰਦਾ ਹੈ ਅਤੇ ਅਗਲਾ ਕਿੱਥੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਸਭ ਤੋਂ ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਹੈ।
ਮੈਂ ਵੀ ਵੱਡੇ PRs ਭੇਜਿਆ ਕਰਦਾ ਸੀ। ਮੈਂ ਸੋਚਦਾ ਸੀ ਕਿ "done" ਦਾ ਮਤਲਬ ਹੈ ਇਕੋ ਵਾਰ ਪੂਰੀ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨਾ ਅਤੇ ਸਮੀਖਿਆ ਲਈ ਭੇਜਣਾ। ਇਹ ਸਿੱਖਣ ਵਿੱਚ ਸਾਲ ਲੱਗ ਗਏ ਕਿ ਛੋਟਾ ਹੋਣਾ ਬਿਹਤਰ ਹੈ।
ਛੋਟੇ PRs ਨੇ ਮੇਰੇ ਲਈ ਸਭ ਕੁਝ ਬਦਲ ਦਿੱਤਾ:
- ਸਮੀਖਿਆਕਾਰ (Reviewers) ਜ਼ਿਆਦਾ ਬੱਗਸ ਫੜਦੇ ਹਨ। ਇੱਕ ਇਨਸਾਨ ਲਗਭਗ 200 ਬਦਲਾਅਾਂ ਬਾਰੇ ਸੋਚ ਸਕਦਾ ਹੈ। ਉਹ 2,000 ਬਦਲਾਅਾਂ ਬਾਰੇ ਨਹੀਂ ਸੋਚ ਸਕਦੇ। ਉਹ ਸਿਰਫ਼ ਉੱਪਰ-ਉੱਪਰੋਂ ਦੇਖ ਕੇ ਮਨਜ਼ੂਰੀ ਦੇ ਦਿੰਦੇ ਹਨ।
- ਮਰਜ (Merges) ਤੇਜ਼ੀ ਨਾਲ ਹੁੰਦੇ ਹਨ। PRs ਕਤਾਰ (queue) ਵਿੱਚ ਖੜ੍ਹੇ ਨਹੀਂ ਰਹਿੰਦੇ।
- ਮੈਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਦਬਾਅ ਮਹਿਸੂਸ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੱਤਾ। ਮੈਂ ਇੱਕ ਵਾਰ ਵਿੱਚ ਇੱਕ ਹੀ ਹਿੱਸੇ 'ਤੇ ਧਿਆਨ ਦਿੱਤਾ।
- ਮੈਂ ਇੱਕ ਬਿਹਤਰ ਯੋਜਨਾਕਾਰ (planner) ਬਣ ਗਿਆ। ਕੰਮ ਨੂੰ ਵੰਡਣ ਲਈ ਤੁਹਾਨੂੰ ਆਪਣੇ ਕੰਮ ਦੇ ਰੂਪ ਨੂੰ ਸਮਝਣਾ ਚਾਹੀਦਾ ਹੈ।
ਮੈਂ ਸਿਸਟਮਾਂ ਨੂੰ Lego bricks ਵਾਂਗ ਦੇਖਣਾ ਸ਼ੁਰੂ ਕਰ ਦਿੱਤਾ। ਇਹ ਛੋਟੇ ਟੁਕੜੇ ਹਨ ਜੋ ਆਪਸ ਵਿੱਚ ਜੁੜ ਜਾਂਦੇ ਹਨ। ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਇੱਟਾਂ (bricks) ਨੂੰ ਦੇਖ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਕੰਮ ਨੂੰ ਵੰਡਣਾ ਕੁਦਰਤੀ ਲੱਗਦਾ ਹੈ।
ਮੇਰੀ ਮੌਜੂਦਾ ਟੀਮ ਛੋਟੇ PRs ਭੇਜਦੀ ਹੈ। ਨਤੀਜੇ ਸਪੱਸ਼ਟ ਹਨ:
- ਸਾਡਾ ਔਸਤ ਮਰਜ ਸਮਾਂ 1.5 ਦਿਨ ਹੈ।
- ਅਸੀਂ ਬੱਗਸ ਨੂੰ ਜਲਦੀ ਲੱਭਦੇ ਅਤੇ ਠੀਕ ਕਰਦੇ ਹਾਂ ਕਿਉਂਕਿ ਬਦਲਾਅ ਪੜ੍ਹਨਯੋਗ ਹੁੰਦੇ ਹਨ।
- ਸਾਡਾ ਡਿਲੀਵਰੀ ਸਮਾਂ ਨਿਰੰਤਰ (consistent) ਹੈ।
ਕੰਮ ਨੂੰ ਵੰਡਣਾ ਇੱਕ ਅਜਿਹਾ ਹੁਨਰ ਹੈ ਜਿਸ ਲਈ ਤੁਹਾਨੂੰ ਸਿਖਲਾਈ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ। ਤੁਸੀਂ ਕਿਸੇ ਨਿਯਮ ਨਾਲ ਵੱਡੇ PRs ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰ ਸਕਦੇ। ਤੁਸੀਂ ਲੋਕਾਂ ਨੂੰ ਇੱਟਾਂ (bricks) ਨੂੰ ਦੇਖਣਾ ਸਿਖਾ ਕੇ ਉਹਨਾਂ ਨੂੰ ਠੀਕ ਕਰਦੇ ਹੋ।
AI ਇਸ ਹੁਨਰ ਨੂੰ ਹੋਰ ਵੀ ਮਹੱਤਵਪੂਰਨ ਬਣਾਉਂਦਾ ਹੈ।
ਪਹਿਲਾਂ
ਜੇਕਰ ਆਕਾਰ ਹੁਣ ਇਹ ਸੰਕੇਤ ਨਹੀਂ ਦਿੰਦਾ ਕਿ ਲੇਖਕ ਨੇ ਕਿੰਨਾ ਕੰਮ ਕੀਤਾ ਹੈ, ਤਾਂ ਆਕਾਰ ਤੁਹਾਨੂੰ ਜੋਖਮ ਬਾਰੇ ਬਹੁਤ ਘੱਟ ਜਾਣਕਾਰੀ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਇਹ ਫੈਸਲਾ ਕਰਨਾ ਹੋਵੇਗਾ ਕਿ ਕਿਹੜੇ ਹਿੱਸੇ ਤੁਹਾਡੇ ਸਭ ਤੋਂ ਸਾਵਧਾਨੀਪੂਰਵਕ ਧਿਆਨ ਦੇ ਯੋਗ ਹਨ।
ਆਪਣੀ ਟੀਮ ਨੂੰ ਇੱਟਾਂ (bricks) ਦੇਖਣਾ ਸਿਖਾਓ। ਇਹ ਇੰਜੀਨੀਅਰਿੰਗ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਆਦਤ ਹੈ।
ਤੁਹਾਡੀ ਟੀਮ ਕਿਵੇਂ ਫੈਸਲਾ ਕਰਦੀ ਹੈ ਕਿ ਕਿਹੜੇ PRs ਨੂੰ ਡੂੰਘੀ ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ ਅਤੇ ਕਿਹੜੇ ਜਲਦੀ ਪਾਸ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ?
ਸਰੋਤ: https://dev.to/pixel-wraith/the-real-reason-your-prs-get-big-5cm3
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi