大娃html
後端開發人員,主要工做爲後端開發,文檔撰寫。前端
大娃的我的博客git
二娃github
PM,主要工做爲項目進度把控,平日例會的記錄,例會博客及部分其餘博客的撰寫。chrome
二娃的我的博客django
三娃編程
PM,主要工做爲項目進度把控,用戶需求分析,組織平日例會,各種博客的撰寫。後端
三娃的我的博客api
四娃瀏覽器
前端開發人員,主要工做爲網頁各項功能的實現,文檔撰寫。
四娃的我的博客
五娃
後端開發人員,主要工做爲後端開發,文檔撰寫。
五娃的我的博客
六娃
測試,主要工做爲測試先後端代碼,發現bug交付給開發組。
六娃的我的博客
七弟
前端開發人員,主要工做爲網頁各項功能的實現,文檔撰寫。
七弟的我的博客
此外,團隊博客中也有一篇關於團隊成員的詳細介紹(附成員美照),連接以下:團隊成員介紹
需求分析
現在deep learning大火,不少計算機人甚至其餘專業的人都會向deep learning中跳,但從0到入門這一過程當中着實面臨着一些困難:
可見現有的學習途徑對初學者並非很友好。因此咱們想搭建一個在線平臺, 提供給用戶可拖拽的編程方法,經過圖形鏈接自動生成程序。用這種方式能夠幫助沒有接觸過deep learning的人更快、更直觀地理解基本原理,並作一些前期的簡單練習,可以快速入門。
同時,咱們還會爲用戶提供論壇形式的討論平臺,幫助用戶在學習過程當中遇到困難有求助渠道,提升用戶之間的互動性及用戶體驗。
典型用戶
咱們設想的典型用戶爲有必定計算機基礎、想要學習deep learning的人,且經過教材、博客的學習感受有些生澀難懂、吃力。
預期功能及用戶數量
預期功能有:
用戶數量:
Alpha版本支持的功能主要爲搭建模型——設置參數——生成代碼,具體頁面以下:
搭建模型
設置參數
生成代碼
咱們的第一代Alpha版本於2019.4.18部署上線,截止到目前已經有了840的訪問量和247的生成模型數量,因爲還未開放註冊/登錄功能,所以還未統計註冊用戶量。目前的數據量以下:
此外,在咱們推廣以後,咱們也收到了一些用戶反饋,這爲咱們下一階段須要改進的工做明確了方向,具體反饋內容以下:
分工協做
因爲咱們團隊自己人數較多,爲7我的,高於平均水平,又由於以前咱們沒有過作完整工程的經驗,所以咱們選擇在標配的基礎上,增長一個PM,以便於更好地總體規劃和把控項目進度。除了兩位PM外,分別由兩位同窗負責前端的開發、兩位同窗負責後端的開發,以及一位同窗負責測試。平時PM會發布任務,開發組根據平常進度推動開發,若是有突發狀況,則團隊成員人儘可兵、以儘快解決問題爲第一要義。
經驗教訓
經歷了Alpha階段,主要經驗教訓有如下兩點:
前期產品設計的不足
雖然咱們覺得已經肯定好了產品的各項功能,但真正着手開始開發的時候仍是意識到了前期產品設計的不足,許多細節並未敲定,也增長了很大的溝通成本。咱們也意識到,前期的產品設計再精細具體也不過度,越精細的設計就會帶來越敏捷的開發。
低估了測試的任務量
在第一階段的開發中,咱們想固然的覺得,測試的任務並不會過重,重頭戲仍是在開發上。但接近Alpha階段的尾聲時,才發現測試的任務十分艱鉅,一位同窗進行測試有些吃力。在下一階段,咱們也會考慮調整人員的分配,衡量好各個部分的人均工做量。
咱們團隊選用github來進行項目管理,項目連接爲:VisualPytorch
PM和測試人員會在github上把相應的工做發佈issue,並將其歸在負責人的名下,當開發人員完成了任務之後能夠在issue下留言,天天晚上PM會檢查issue,並關閉已經被完成的issue。項目的issue的連接爲:VisualPytorch_issue
在時間上,雖然以前據說可以天天早上一塊兒去圖書館,坐在一塊兒面對面開發是效率比較高、效果比較好的開發模式。但因爲大三你們都比較忙,也都有本身的安排,有些同窗要準備出國、考研等,時間上也不統一,所以咱們並未對成員的具體工做時間做要求,只要在DDL以前可以保證質量地完成任務便可。
咱們的項目是一個自選項目,仍是和深度學習有關,而組內同窗並非全部人都對Pytorch熟悉,所以前期的學習成本比較高,學習週期較長,開發時間相對緊張一些。所以,在Alpha版本中,咱們講精力放在了核心功能的實現上,其他的改善功能,咱們將在Beta版本中實現。
測試矩陣 | 功能測試 | 頁面測試 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
測試瀏覽器 | 測試環境(瀏覽器版本) | 組件拖拽 | 組件刪除 | 組件連線 | 參數輸入 | 點擊事件(組件、按鈕、連接)下拉框選擇 | 報錯狀況 | 生成代碼 | 代碼的拷貝 | 主頁面 | 聯繫咱們頁面 | 訪問量統計頁面 | 代碼生成頁面 | 頁面切換 |
chrome | 74.0.3724.8 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
火狐 | 74.0.3724.8 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
ie | 11.706.17134.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
edge | 42.17134.1.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
10.4.3457.400 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | |
UC | 6.2.4094.1 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Opera | 60.0.3255.56 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
搜狗 | 8.5.7.29493 | 正常 | 正常 | 正常 | 正常 | 正常 | 在reshape層輸入中文報錯會佔滿屏幕,關不掉 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
獵豹 | 6.5.115.18480 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
能夠看到,咱們的網站在不一樣的瀏覽器上的表現仍是比較穩定的。此外,爲了驗證生成的代碼是否正確,咱們課下的測試方法爲生成不一樣的模型而後覆蓋工程中的模型代碼,而後去驗證是否正確。但爲了展現方便,咱們找到了一個用咱們的組件能夠拼接出的github上的模型,而後用它的模型部分代碼和咱們所生成的代碼進行比對,截圖以下:
咱們找到的github的模型連接爲:https://github.com/MorvanZhou/PyTorch-Tutorial/blob/master/tutorial-contents/401_CNN.py
代碼規範和全部的文檔都保存在github上,在github-doc分支中,文檔連接爲:VisualPytorch_doc
咱們的目標用戶有如下幾類:
屬性 | 描述 |
---|---|
姓名 | 張XX |
身份 | IT行業相關從事者、deep learning初學者 |
年齡 | 21歲 |
所佔比例 | 60% ~ 65% |
重要性 | 十分重要,是本網站的核心用戶,幫助他們快速入門、練習是本網站的核心功能 |
知識層次 | 有必定的計算機專業知識,系統學習過計算機相關課程 |
動機/目的 | 利用網站更直觀地搭建模型,快速入門deep learning |
用戶偏好 | 除了可進行模型搭建外,可能還但願有相應的教程、論壇等 |
…… | …… |
屬性 | 描述 |
---|---|
姓名 | 馬XX |
身份 | IT行業精英、資深deep learning從事者 |
年齡 | 40歲 |
所佔比例 | 20 ~ 30% |
重要性 | 較爲重要,能夠在論壇中回答初學者的疑問,也會給網站的改進提供意見 |
知識層次 | 熟悉計算機專業知識,具備極強的編程能力,精通所從事的領域 |
動機/目的 | 出於興趣逛到網站,爲初學者解答疑惑 |
用戶偏好 | 但願可以更方便地與人交流 |
…… | …… |
屬性 | 描述 |
---|---|
姓名 | 蔣XX |
身份 | 計算機本科學生 || 路人 |
年齡 | 18歲 |
所佔比例 | 10 ~ 15% |
重要性 | 通常重要,能夠經過網站引發其對deep learning的興趣,從而轉化爲核心用戶 |
知識層次 | 學習過計算機相關課程 || 用過計算機 |
動機/目的 | 閒逛論壇/知乎時看到就點了進來看看 |
用戶偏好 | 須要簡單明瞭的操做指南,美觀的UI,有趣的體驗等 |
…… | …… |
其中最爲重要的仍是deep learning的初學者,而這一批人主要是計算機相關專業在讀學生或相關從業人員,考慮到咱們身邊接觸的學生較多,咱們以問卷的形式展開用戶調查,主要調查用戶是否喜歡這種模式的網站,以及對網站的功能還有哪些需求,問卷調查結果以下:
能夠看到,這種網站的需求仍是比較大的,並且也容易被用戶所接受,具體的文件調查結果在咱們的github-doc分支中,連接以下:用戶需求調查
在前期,因爲團隊成員在學習django、pytorch等內容,而這些學習工做一開始沒有在github上記錄,沒有發佈issue,因此前期沒有什麼進度。進入開發階段之後,因爲天天都開例會,且開發人員比較給力,每位同窗都能保質保量完成任務,甚至多作一些工做,因此咱們的項目推動的也比較順利。
VisualPytorch的詳細介紹請見產品發佈說明,連接以下:VisualPytorch發佈說明
咱們產品的IP地址爲http://114.115.151.39,同時咱們也申請了域名www.visualpytorch.xyz,只是還在審覈中,審覈經過後咱們會第一時間綁定到咱們的IP上。
名字 | 分工 | 團隊貢獻分 | 具體貢獻 |
---|---|---|---|
tdc | 後端開發 | 50 | (1)後端代碼編寫(和另外一位partern合做) (2)先後端交接文檔編寫 (3)網站幫助文檔編寫 |
ywt | PM | 51 | (1)scrum meeting博客記錄 (2)技術規格說明書、【Alpha】發佈說明的撰寫 (3)朋友圈2次推廣 (4)管理github項目 |
zzw | PM | 53 | (1)設計前端原型圖 (2)團隊介紹、項目選擇、功能規格說明書、任務拆解、【Alpha】項目展現等博客的撰寫 (3)組織召開scrum meeting (4)1次用戶需求調查、4次推廣 (5)管理github項目 |
mhx | 前端開發 | 52 | (1)搭建django的平臺,完成了關於神經網絡和訪問日誌的restful api接口 (2)完成了可拖拽的組件,實現了網頁的基本架構 (3)部署網站 (4)前端設計文檔的撰寫 |
wgh | 後端開發 | 48 | (1)後端代碼編寫(和另外一位partern合做) (2)後端設計文檔、函數說明的撰寫 |
zls | 測試 | 49 | (1)前端頁面、後端代碼的測試 (2)共發現了15個bug |
bwj | 前端開發 | 47 | (1)部分前端可拖拉部分輸入框的開發 (2)前端設計文檔及部分代碼規範文檔的撰寫 |
咱們的網站旨在讓入門deep learning變得簡單、直觀、有趣。由於deep learning是一個有趣而又玄學的東西,但若是讓初學者由於高門檻、枯燥等因素而被勸退,着實十分惋惜。咱們的網站就可讓初學者們很直觀地進行模型的搭建,就好像搭積木同樣,並返回代碼,覆蓋他已有的模型文件便可進行訓練。同時,咱們還計劃爲用戶提供討論交流的平臺,進一步幫助用戶解決遇到的問題,更順利地進入deep learning的世界。
Alpha階段總的來講,雖然有小的困難,但仍是挺順利的。於我而言,最重要的心得就是對PM在團隊中的工做和所擔任的角色有了更清晰的認識,PM要作的不只僅是引導團隊前進,還要作團隊中各個部分溝通的橋樑,同時也是團隊中每一個部分之間的調節人員。總而言之,PM的任務就是確保團隊這樣一個「機器」,每一個「部件」之間鏈接得嚴絲合縫,可以開足馬力前進,而不只僅是把控方向。
其次,就是認識到了測試的重要性,測試絕非一個輕鬆、工做量小的工做,就這一點咱們也將在Beta階段中進行調整。
最後,就是全部的想法、溝通等等,最好都要有相應的記錄,而不只僅是在微信羣中溝通,有了具體的記錄就有了規範的標準,纔可以讓雙方達成共識。不然,很容易出現理解上的分歧。
在下一階段,咱們將增添更多可拖拽部件,豐富用戶可搭建的模型,同時完善生成代碼中返回的Main.py和Ops.py。增長註冊/登錄功能,並搭建論壇,供用戶進行溝通交流。爲了保障網站的安全,咱們還將增長一些安全防禦措施,如驗證碼、綁定郵箱等等。
軟件工程這門課程確實有很深的學問,它不只僅是寫好代碼就能夠順利完成項目,還很考驗團隊協做能力,而團隊協做能力是由多種因素所決定的,因此這門課程是對咱們綜合能力的提高。課程過程當中,老師和助教們盡力爲咱們營造出一種真實的公司開發的氛圍,是咱們對軟件工程的體會加深。但結合咱們大三的現狀,絕大多數同窗面臨着出國、考研、保研等須要精力來準備的事情,而敏捷開發自己是一個十分須要全身心投入的東西,而軟件工程對於咱們來講,確實只是一門課程,咱們沒辦法作到把所有精力都投入到一門課程中去。綜上,竊覺得課程設置的各個環節有些複雜,也太過耗費精力,若是能夠簡化一下課程流程,下降課程工做量,與AI、嵌入式的工做量稍微平衡一下,會有更好的體驗和口碑。