一則臉書貼文,有關 git 之前大家怎麼版控的。
讓我有幾個感想值得自己記下來。
一則臉書貼文,有關 git 之前大家怎麼版控的。
https://www.facebook.com/groups/git.tw/permalink/1817171478331512/
樓主留言問到
「想請教一下各位前輩
知道在沒有git 或 svn之類的軟體出現之前
是怎麼協同開發的...
剛剛跟公司的高層主管(不會寫程式)聊天
他說我們公司DevOps很奇怪
為什麼都沒辦法協同開發
說到協同開發每個人都一臉大便
我跟他說很多點公司的現況
1.git當備份工具 commit都沒有意義 更別說開分支之類的
2.大家都是直接連到伺服器去改程式
3.沒有人來負責merge程式
之類的
就被他反嗆
他們1X年前沒用這些東西
大家也都是連到同一台伺服器去做
照樣都可以協同開發
系統也更新了好幾代
為什麼現在不行...
所以想了解一下早期1X年以前
git svn這些東西出現以前
是怎麼協同開發的」
結果有滿多留言不是在回答「git svn這些東西出現以前
是怎麼協同開發的」,而是在講主管有問題。
如果是你,應該怎麼回答這問題呢?
也許樓主是來討拍的,而講主管有問題的才是正確解答。
但我還是留言以前經歷過的協同開發怎麼做的:「Code review, 專人merge 。之後有rational, source safe, cvs,就有辦法一個人改的時侯check out鎖檔不讓別人改,改完check in。」
當然,有些人講得沒錯,現在的程式複雜度比較高,沒有工具就很難處理好。
可以說,因為現在工具的存在,才會出現現在程式的高複雜度。
但反過來說也對,因為有高複雜度的程式的需求,才會造成現在工具的誕生。
但是,重要的還是,不會用工具的人還是會搞得一團糟。
人的概念、程式複雜度、工具支援度,三個東西是程度相合的。其中一個跟不上,就必定出問題,就必定要調整。
最後,我只能留以下留言給事主:
「如果你推不動其他資深同事,那就跟老闆說清楚。
你講的123點,不論用什麼工具都是必須要人們去做好的。
工具再好,人亂用,還是一塌糊塗。
用工具卡死、強迫一定要做到123點,每個 commit 要送老闆簽核、只有某些人才有辦法 merge 進版…等都有辦法做到,以前的幾個 source control software 都做得到。但是如此做會面對更多人性的挑戰,因為那是用伺服器就開始卡權限的,一個人不在位子上,就有可能整個公司不用改程式,一定更多人會抱怨。
工具會進步,就代表舊的方式需要捨棄一些東西來換取另一些東西。git 就是捨棄嚴格卡控,換來靈活合併與分支。如果同事們沒有相對應的概念,就容易弄得更亂。
這時候你們要想想該選擇哪種合作模式才是適合你們這群人,看是要改模式還是換工具或是換公司。」
以上幾點感想。