1. 程式人生 > >進階過程:程式設計師做專案的獨立性

進階過程:程式設計師做專案的獨立性

第一階段:編碼機器

這是最低階的階段,程式設計師拿到詳細設計文件,上面連許多方法介面都定義好了。重構一些程式碼,寫一些實現,呼叫一些既定的API,然後花許多時間在各種各樣的場景測試上面。從做的工作上看,這都不能算程式設計師,最多,只是編碼技巧卓越的碼農而已。因為它幾乎扼殺了一切創造力,但是這很常見,比如在一些對日外包公司,就是如此。

第二階段:獨立的實現者

程式設計師得到的只是粗略的設計文件,也許註明了外部介面的清單,還有框架和基礎設施的API,需求已經澄清清楚,接下去要做的就是發揮聰明才智把軟體實現設計好,把程式碼寫好,測試通過。這項工作可以在安靜和獨立的環境中完成,因為沒有什麼是不夠明確的,那些本不清楚的部分,專案經理、架構師和產品經理已經搞定了。這樣的環境下可以誕生許許多多OO設計優秀、程式碼清晰簡潔的程式設計師,但是這始終只是在做一個殘缺的專案而已。很多程式設計師新手都是從這個階段開始的,但是程式設計師如果只會程式碼層面的設計、編碼和測試,並不能算一個完整的程式設計師,也許連一半都算不上。

第三階段:專案溝通者和管控者

程式設計師要和需求工程師,甚至客戶澄清需求,分析可行性;需要自行分析設計專案中的技術難點;參與決定和管理迭代週期和計劃表;組織和參與專案組內運作跟蹤會議。編碼以外的事情會佔用一些時間,這些時間大多來自溝通的成本。如果說,前兩個階段還未能明顯看出溝通的重要性的話,那麼到這個階段,一個不能良好溝通的程式設計師,將成為專案組運轉的瓶頸。國內至少有一半的軟體公司的程式設計師做專案應該處於這個階段。

第四階段:從做專案到做產品

從做專案跨越到做產品,想想容易,做起來很困難。做專案需要更多傾聽使用者需求,但是做產品更注重思考,思考使用者的痛點和產品的定位遠重於傾聽使用者表述。從專案週期上看,做專案關注在拿到需求並實現交付的過程,但是做產品需要把更多精力花在產品定義、設計,還有長時間的產品維護上。做產品的程式設計師,必須要和客戶溝通,必須要維護自己開發的軟體,獲知使用者和市場的反饋,如此才能體會到什麼功能才是迫切需要的,該怎樣把技術、業務和實際產品的實現結合起來。

第五階段:產品成長的見證人

也許很少人能夠參與從零開始,經過創意、市場分析到產品設計的過程,在明確要做什麼之前有大量的時間會花在產品探索性的工作上面。也許會做很多的產品原型,也許某些版本和功能在A/B測試之後就被放棄了,更有些產品在流傳開來以前就銷聲匿跡了,或者很快就死在抄襲和山寨手裡。產品的更迭和換代總是千辛萬苦,而看得到的部分往往如此簡單,但是誰知道它的歷史有多曲折呢?

文章系本人原創,轉載請保持完整性並註明出自《四火的嘮叨》