前兩天其他問答平臺推薦給我了一個問題:
一個JAVA學生的自述,很迷茫,這樣的現在我該怎么辦呢?
看完,想起這兩天一直在想的問題,就想把原來一些想法綜合起來寫一篇文章。
先說我看到的一些現狀:
- 大量學校在教授計算機專業,從清華、北大、985、211到大專、函授、青鳥培訓。
- 市面上出現大量IT公司,每個城市都需要IT公司支持智慧小區、健康碼到智慧城市、智能政務等本地化服務。
- 新一線城市IT公司大量出現,原來是北上廣深程序員支持全國IT建設,現在是新一線崛起,省會城市攜綜合本地公司支撐全省。
總的來說,寫程序這個行業,你發現越來越普通化了,他變成了日常生活中經常看的見的普通職業,原來一個程序員可能是白領,現在可以明確的說,就是一個藍領了(大廠除外)。
這很好,說明我們社會越來越現代化,需要更多的IT支撐,但從行業內部來看,我覺得卻有些與時代發展脫節。
比如我問一個問題,你們的架構辦或者CTO、架構師,向你們交付什么文檔?
詳細設計?ERD圖?或者干脆就是一個腦圖,一次項目講解說明?或者干脆就讓設計出圖,開發自己評估?
大多數公司,我估計真正負責架構或者整體設計的大佬們,其實交付的應該都逃不出這些東西吧?
這說明一個什么問題,軟件行業的管理,其實是指導形式的,中高層對下層工作人員所能起到的主體作用是指導你如何工作,而不是參與工作的過程。
換句話說,其實軟件行業還是學徒制,傳統作坊一貫的做法。
前幾年的時候,作為一家創業小公司的CTO,也這么做,我覺得這樣做很合理啊,我教授你做工作,你學習并做好就好了。
直到我發現這樣做似乎完全不起作用。
因為招聘的程序員,基本只接受了學校的普通IT教育(Java程序、數據結構等讓大學生學起來一頭霧水的教程),然后去了一個培訓機構學了幾天Spring框架,對我所提到的概念完全不能理解。
講個例子,有一次客戶說管理員里要設置一個超級管理員,把我們的經理設置成權限高點,我就說小王(程序員),客戶說一個管理員層級不夠,需要設計多級管理員,包括管理員和超級管理員兩類,然后把xxx的權限設置成超級管理員,然后我的程序員就在程序里寫了如下代碼:
if (admin.Id == 43) {
admin.Role = "super"
}
我說這個43是什么啊,他說就是他們老大的系統ID啊。
我很無語,我嚴厲地批評了他,他也很委屈,從項目的角度看,他確實達到了這樣的現實目的,他認為沒有什么不妥,但是我覺得,我清楚的表達了幾個層面的事情:1)設計多級管理員,包括管理員和超級管理員兩類;2)把xxx的權限設置成超級管理員,你怎么能簡單的簡化成這樣,導致這個邏輯沒有擴展性,無法重復部署呢。
這個示例有點極端,但是普遍這種情況在大多數研發,特別是外包項目研發的時候存在。
從第二年起,我就開始認識到,簡單的教育不行,我必須要更加清楚地表達一些具有固定含義的要求,包括:
1)寫大量的文檔,任何指導工作都寫成指南,寫過的包括1)java設計要求,2)后臺設計要求,3)數據庫設計要求,舉個例子:
不使用0,或者“”、false等默認值作為正常情況
例如一個數據有status字段,表明其可以使用或不可以,則比如使用非默認值作為正常情況,例如1,“true”,true等,以避免因默認值導致流程在沒有指定該數值的情況下被認為是合理流程。
這個要求不僅公司要求,客戶也經常性會要求
程序中使用0作為正常值是古老的C語言程序遺留下來的老毛病,當時,常常使用0作為正常,而使用負數作為系統異常,而正數通常拿來表示業務分支,這是因為c的語言模式造成的,任何我公司的正常代碼不應該再應用這種邏輯。
2)我開始在程序中,明確的以注釋形式要求哪些代碼哪些人可以改,哪些人不能改,以及改了之后的后果:
// 這是底層區塊鏈的調用函數,在任何情況都不得注釋,發現一次,處罰一次
recorder.AddRecord(GetOwner(info1.getSfz(), "2"), LocalService.getKabaoCallerid(), s.getDataid(),
GetNowTime(),
output.get("code").toString());
以此為起始,其實就引出了我今天的觀點:
以后的程序員會明確的分成程序員和碼農兩類,程序員將類似工廠中的技術員,出圖紙,碼農就相當于工廠的工人,只負責按圖紙填充具體邏輯代碼。
現有的架構辦體制不再適用,架構辦擴編成技術部,產出物從設計說明擴展為某種智能文檔,可擴展為代碼,可進行復核,可進行協作。
其他研發人員歸集為開發部,負責填充細節代碼,人員要求進一步降低,很可能靈活用工平臺會占據大部分人員供給,隨派隨用。
有人可能覺得我要不就是危言聳聽,其實很多國企早就這么做了,自己只招核心員工,大量的都是外派公司派來駐場的人。只不過協作界面現在的智能化和自動化程序還做不到像工廠圖紙那樣標準化。
這既是行業發展的必然,也是行業發展的需要,我也不想把自己的行業說的跟落后產能似的,但是未來可能他還真就這樣。






