程序員如何參與產品開發工作
2022-11-12點擊量:167
程序員如何參與產品開發工作程序員如何參與產品開發工作?程序員開發產品都要經過這些主要流程:產品設計—技術構架—進度計劃—產品開發—產品測試—運行與維護。如果想具體了解程序員如何參與產品開發工作,那不妨接著往下看吧!1、產品設計根據市場或者特定客戶確定這個產品應該滿足哪些需求,然后轉化為一個明確的需求文檔。有了這個文檔,程序員才知道要開發什么,怎么樣才算開發完成,交付檢測的時候也才有依據。雖然編寫需求文檔不是程序員的工作,但是資深的程序員在這個過程中要給出很多建議,特別是在開發復雜度上。有些開發難度太大、用時需要很久的功能和需求會被去掉。毫無疑問,開發復雜度精確的估算對于在短時間內交付一個擁有最佳用戶體驗的產品至關重要,而這些是需要豐富經驗積累的。所以程序員收入包括了這部分經驗值的錢。2、技術架構接下來就要根據需求文檔設計整個系統。簡單來說就是根據產品特性,選擇合適的技術解決方案。這又是一個需要豐富開發經驗才能完成的活兒。往往即使一個簡單的前端加后端的應用,也是由十幾個子系統構成的。而每個子系統都有幾種甚至十幾種技術可以選擇,系統之間的數據傳遞模式又有很多選擇,還有開發工具又有很多選擇。比如前端框架選什么,loadbalancer選什么,服務器選什么,數據庫選什么,開發語言用什么,repository選什么,API的訪問流程是什么等等等等。這些隨便舉的其實都是很基本的東西了,其實很多更實際也更復雜的問題也需要考慮,比如安全性上的,比如系統升級會造成的影響等等。這個過程中需要寫很多文檔,記錄每種技術stack的優劣,畫很多的系統示意圖和流程圖,要和不懂技術的管理和設計人員溝通。所以程序員收入包括了這部分知識值的錢。3、進度計劃這部分一般也有專門的項目經理負責,但和產品設計類似,程序員一樣要給出很多的建議。這個時候一般技術構架已經完成,可以給出更為精確的開發周期的預估。但畢竟是預估,還是需要豐富的經驗才能做到盡量準確。這個進度計劃是否靠譜、有多重要就不用贅述。4、產品開發這個步驟才是大多數人對程序員的印象。但即使是開發,也不是簡單的坐在屏幕前敲敲代碼。現在主流的Agile開發,每天要開早會匯報進度,每個兩個星期(或者別的周期)都要開會確定下個周期的具體開發任務,評估開發任務的工作量,并分配開發任務。開發的時候也是經常碰到技術問題需要和別的開發人員討論,需要和設計人員、管理人員、項目進度人員保持溝通。每個月一般還需要做個成果演示讓管理層清楚進度。然后在開發過程中經常會要用到新的技術,所以也經常需要花時間去學習補充。5、產品測試傳統的軟件開發經常有專門的測試人員,但現在互聯網企業越來越多的DevOps,就是一個人做了以前的開發,測試和運維三個人的活(好吧,其實是一種變相剝削,因為雖然工資高了但也沒有三個人加起來的工資高)。測試也是要寫很多代碼的,因為現在都是自動化測試。然后測試也是要寫很多文檔的,所謂testcases,基本上和需求文檔是對應的,就是一個checklist,看看是不是需求都開發出來了且達到標準了。所以你看,程序員除了會寫電腦語言也還是經常要寫人話的。6、運行與維護Again,本來有專職人員做的事,很多程序員現在也得做。這部分包括寫一些腳本或者用軟件收集系統數據,各種系統日志,然后生成一個有各種圖表的控制面板,方便查看系統運行狀態,還要設置各種超出合理范圍值就會觸發的警報,這種警報往往和手機甚至BP機相連,就算是夜里也會把人給鬧醒,然后就得爬起來解決問題。所以程序員收入也包括這部分辛苦錢。如此幾何式高速發展的IT產業,人才根本就跟不上,供需關系決定了IT行業的工資只會越來越高。當然,這是對于跟得上IT發展腳步的人才來說的。IT是一個必須不停地學新技術的行業,因為發展地太快。現在最主流開發框架,各種云端的技術,新的編程語言,老的編程語言的新特性,各種輔助開發和部署的工具,各種運維的工具等等等等沒有一個是10年前就出現的,很多都才出現了五年,但已經取代了更老的技術。所以能在IT行業干了八年十年還沒被淘汰的,至少都是很努力的人,和很多在傳統行業里幾十年都吃著大學里學的那一點東西的老本的人相比,他們配得上這份工資。...