進階過程:程序員做項目的獨立性
***階段:編碼機器
這是***級的階段,程序員拿到詳細設計文檔,上面連許多方法接口都定義好了。重構(gòu)一些代碼,寫一些實現(xiàn),調(diào)用一些既定的API,然后花許多時間在各 種各樣的場景測試上面。從做的工作上看,這都不能算程序員,最多,只是編碼技巧卓越的碼農(nóng)而已。因為它幾乎扼殺了一切創(chuàng)造力,但是這很常見,比如在一些對 日外包公司,就是如此。
第二階段:獨立的實現(xiàn)者
程序員得到的只是粗略的設計文檔,也許注明了外部接口的清單,還有框架和基礎設施的API,需求已經(jīng)澄清清楚,接下去要做的就是發(fā)揮聰明才智把軟件 實現(xiàn)設計好,把代碼寫好,測試通過。這項工作可以在安靜和獨立的環(huán)境中完成,因為沒有什么是不夠明確的,那些本不清楚的部分,項目經(jīng)理、架構(gòu)師和產(chǎn)品經(jīng)理 已經(jīng)搞定了。這樣的環(huán)境下可以誕生許許多多OO設計優(yōu)秀、代碼清晰簡潔的程序員,但是這始終只是在做一個殘缺的項目而已。很多程序員新手都是從這個階段開 始的,但是程序員如果只會代碼層面的設計、編碼和測試,并不能算一個完整的程序員,也許連一半都算不上。
第三階段:項目溝通者和管控者
程序員要和需求工程師,甚至客戶澄清需求,分析可行性;需要自行分析設計項目中的技術(shù)難點;參與決定和管理迭代周期和計劃表;組織和參與項目組內(nèi)運 作跟蹤會議。編碼以外的事情會占用一些時間,這些時間大多來自溝通的成本。如果說,前兩個階段還未能明顯看出溝通的重要性的話,那么到這個階段,一個不能 良好溝通的程序員,將成為項目組運轉(zhuǎn)的瓶頸。國內(nèi)至少有一半的軟件公司的程序員做項目應該處于這個階段。
第四階段:從做項目到做產(chǎn)品
從做項目跨越到做產(chǎn)品,想想容易,做起來很困難。做項目需要更多傾聽用戶需求,但是做產(chǎn)品更注重思考,思考用戶的痛點和產(chǎn)品的定位遠重于傾聽用戶表 述。從項目周期上看,做項目關注在拿到需求并實現(xiàn)交付的過程,但是做產(chǎn)品需要把更多精力花在產(chǎn)品定義、設計,還有長時間的產(chǎn)品維護上。做產(chǎn)品的程序員,必 須要和客戶溝通,必須要維護自己開發(fā)的軟件,獲知用戶和市場的反饋,如此才能體會到什么功能才是迫切需要的,該怎樣把技術(shù)、業(yè)務和實際產(chǎn)品的實現(xiàn)結(jié)合起來。
第五階段:產(chǎn)品成長的見證人
也許很少人能夠參與從零開始,經(jīng)過創(chuàng)意、市場分析到產(chǎn)品設計的過程,在明確要做什么之前有大量的時間會花在產(chǎn)品探索性的工作上面。也許會做很多的產(chǎn) 品原型,也許某些版本和功能在A/B測試之后就被放棄了,更有些產(chǎn)品在流傳開來以前就銷聲匿跡了,或者很快就死在抄襲和山寨手里。產(chǎn)品的更迭和換代總是千 辛萬苦,而看得到的部分往往如此簡單,但是誰知道它的歷史有多曲折呢?