學生web開發小團隊合作開發流程是怎樣的?
情況說明:
目前大三,在學校一個小實驗室,團隊主要有4人,兩個大三兩個大二,技術方向大致為python web方向(使用Flask框架),能力方面的話大三的還可以看著《 flask web development 》寫一點「玩具」,比如 爬蟲/小網站 什麼的,大二的剛開始學習還達不到。需求說明:團隊合作能力很差,大部分都是自己寫自己的,遇到問題可能review一下。題主想的是準備鍛煉一下團隊合作能力, 比如嘗試學習一下前後端分離,具體模塊具體分工等模式。但是沒有這方面的經驗,或者說根本不了解公司內時如何分工的, 想問一下大家合作開發流程是怎樣的?比如前期有什麼具體任務要做, git上應該怎麼具體做版本控制? 或者說有什麼書籍或者blog推薦?
將不勝感激~
建議用分工來代替「合作」。
像RESTful,像前後端分離,就是為了分工。各做各的,彼此互不依賴互不干擾,需要接觸的部分靠文檔統一規定交互介面。
有問題?查文檔約定,文檔沒寫好改進文檔就好。
講真,三四個人的小項目完全可以避免共同編輯協作的部分。接到活兒,委託方和你們中的一個負責人一起討論一下做一份需求文檔,然後負責人和組員一起討論分別制定前端後端總體和介面方案,劃好deadline,然後各干各的。收工時自己先根據文檔做測試,再聯合起來做測試,最終交互。
總的搞一份git/svn,交上來的東西的編譯/測試可以自動化,或者定期弄一弄,總之總體版本里不留臨時代碼。至於各自的版本控制各自弄,犯不著全捏手上。
如果你的項目中有同一塊領域(都是前端/後端)有多個負責人,搞搞code review。
說到底就是劃分責任。出了問題,前端的鍋還是後端的鍋分清楚就得靠文檔;文檔的鍋總體來背。
當然以上只適用於三五人小團隊,多了就完全不同了。
你可以參考一下我的經歷,團隊有20人,技術水平參差不齊,但是經過了前期大約一周的技術籌備和框架搭建後,大家基本上都能夠獨自執行職能了。
多實戰,多檢驗,多試驗,相信你也會摸索出自己的協作模式出來。
學生團隊的前後端分離及持續交付探索歷程 · LuckyJing Blog
------------------------
2016年12月17日更新
上面文章中的腳手架我已經整理出來了,可以下載下來體驗了。
luckyjing/react-redux-scaffold今年暑假剛做過,當時我們三個大一的,兩個大二的一起組成一個小team給客戶做外包,英語綜合答題系統,規模不小也不大,一個月基本開發完。
起初產品寫原型圖,(需求文檔?這東西沒有..),設計師給設計圖,然後正式進入code模式,一共4個coder,前端只用jQuery庫和一些基本的組件,後端用的php框架用的Yii。我獨自負責前端,20多個靜態頁面大概幾天寫完,這幾天後端建立資料庫然後不斷改,頁面寫好後交給兩個後端前台,改造頁面。一個寫後台的獨自開發。
頁面基本改造完之後,就要到前後端交互處理數據的環節了,協調好然後前端寫js後端寫相應的代碼。
開發過程中,沒有需求文檔,客戶老是不停改需求這真的煩的要命,產品如同虛設,基本上是我們四個coder討論。
(感覺大學生團隊勞動力真的太廉價了)產品、設計、前端、後台、運維、測試
以上統統都不是獨立的按照你的情況,身兼多職是必須的選型時要考慮帶新人
並不推薦前後端完全分離,後台定義json介面,前端調用即可,儘可能一個人負責某個功能,加快開發速度。
搭建開發環境,要麼你幫他們都搭建好,要麼用vargent,docker那些搞
版本控制盡量多提交,別diff過多
多開會總結和分享
總之,帶動團隊的技術進步和學習主動性是必不可缺的。推薦閱讀:
※怎樣寫大型應用程序?
※滑塊驗證碼(滑動驗證碼)相比圖形驗證碼,破解難度如何?
※如何看待從Django 2.0開始不再提供對Python2的支持?