通過(guò)團(tuán)隊(duì)協(xié)作,搭建WEB產(chǎn)品
前言
個(gè)人和社會(huì)越來(lái)越多地依賴先進(jìn)的軟件系統(tǒng)。這就需要我們能夠既經(jīng)濟(jì)又快速地生產(chǎn)出可依賴和值得信賴的系統(tǒng)
從長(zhǎng)遠(yuǎn)來(lái)看,運(yùn)用軟件工程方法和技術(shù)去開(kāi)發(fā)軟件系統(tǒng)比單純?yōu)閭€(gè)人程序項(xiàng)目寫(xiě)程序更加便宜。對(duì)大多數(shù)類(lèi)型的系統(tǒng)來(lái)說(shuō),絕大多數(shù)的錢(qián)都花費(fèi)在軟件投入使用后對(duì)軟件的變更上。軟件工程是一門(mén)工程學(xué)科,涉及軟件生產(chǎn)的各個(gè)方面,從最初的系統(tǒng)描述一直到投入使用后的系統(tǒng)維護(hù),都屬于其學(xué)科范疇。軟件工程不僅涉及軟件開(kāi)發(fā)的技術(shù)過(guò)程,也涉及諸如軟件項(xiàng)目管理以及對(duì)那些支持軟件生產(chǎn)的工具、方法和理論的開(kāi)發(fā)等活動(dòng)。
1.WEB產(chǎn)品開(kāi)發(fā)首先要做的第一件事,就是設(shè)立職位,并為之安排合適的人員
這里僅討論軟件開(kāi)發(fā)所需要的人員,不討論軟件產(chǎn)品的商業(yè)銷(xiāo)售、運(yùn)營(yíng)等問(wèn)題。
需要設(shè)立的職位包含:
首席架構(gòu)師:通過(guò)線上資料、線下實(shí)地走訪,??記錄特定行業(yè)的業(yè)務(wù)問(wèn)題、及其有可能的信息化??解決方案。并通過(guò)UML圖示、場(chǎng)景史詩(shī)等手段來(lái)向下述技術(shù)團(tuán)隊(duì)明確??開(kāi)發(fā)任務(wù);保證團(tuán)隊(duì)代碼資產(chǎn)的??整體一致性(杜絕浪費(fèi)開(kāi)發(fā)資源的行為等);
運(yùn)維專(zhuān)家:負(fù)責(zé)內(nèi)部開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、線上環(huán)境的數(shù)據(jù)庫(kù)、運(yùn)行時(shí)等必要環(huán)境??搭建方案;以及各類(lèi)非業(yè)務(wù)性質(zhì)的??維穩(wěn)平臺(tái)的開(kāi)發(fā)工作;
后端開(kāi)發(fā):負(fù)責(zé)服務(wù)器方向的具體業(yè)務(wù)邏輯的??實(shí)現(xiàn)(包含各類(lèi)第三方平臺(tái)對(duì)接等);
前端開(kāi)發(fā):配合??設(shè)計(jì)師負(fù)責(zé)各個(gè)平臺(tái)的界面??實(shí)現(xiàn);
產(chǎn)品測(cè)試專(zhuān)家:通過(guò) checklist 等手段??巡檢軟件產(chǎn)品的界面功能、后臺(tái)功能;
實(shí)際環(huán)境中,職位一定要根據(jù)實(shí)際需要進(jìn)行設(shè)立,并需要領(lǐng)導(dǎo)層十分清晰明確此職位的工作目的、工作內(nèi)容。
2.崗位確定后的第二件事情,就是要確定研發(fā)團(tuán)隊(duì)的開(kāi)發(fā)戰(zhàn)略
開(kāi)發(fā)戰(zhàn)略指的就是自頂而下,明確團(tuán)隊(duì)目標(biāo),并量化每個(gè)崗位的工作目的和工作內(nèi)容。近年來(lái)OKR工作法被人詬病的很大原因之一就是管理層不清楚一線崗位的具體工作目的和內(nèi)容。
對(duì)于研發(fā)團(tuán)隊(duì)而言,目標(biāo)只有一個(gè):在盡可能短的時(shí)間內(nèi),提供盡完善的軟件產(chǎn)品,及其售后支持
通過(guò)質(zhì)量循環(huán)法制定工作內(nèi)容
討論與羅列真正的目標(biāo),最恐怖的事情就是投入成本在“非真正目標(biāo)”上
設(shè)計(jì)切實(shí)的實(shí)現(xiàn)步驟,并且需要關(guān)鍵數(shù)字來(lái)表達(dá)這些步驟
刪除多余的步驟重復(fù)設(shè)計(jì)
重復(fù)刪除,直到取得滿意的工作過(guò)程
思考能不能加速思考能不能自動(dòng)化
以上職位包含量化指標(biāo)包含:
首席架構(gòu)師:??行業(yè)文檔 ??UML更新頻率 ??任務(wù)看板成功率??內(nèi)外部工單數(shù)量
運(yùn)維專(zhuān)家:??數(shù)據(jù)庫(kù)穩(wěn)定性指標(biāo)??產(chǎn)品穩(wěn)定性指標(biāo)
后端開(kāi)發(fā):??需求 commit ??BUG commit
前端開(kāi)發(fā):??需求 commit ??BUG commit
產(chǎn)品測(cè)試專(zhuān)家:?? checklist 歷史
3.一些團(tuán)隊(duì)協(xié)作技巧
在軟件開(kāi)發(fā)之前,使用UML
在表結(jié)構(gòu)設(shè)計(jì)時(shí),遵守?cái)?shù)據(jù)庫(kù)第一、二、三大范式:即保證列的原子性、列要保持和主鍵強(qiáng)關(guān)聯(lián)、列之間沒(méi)有關(guān)聯(lián);
對(duì)資源路徑統(tǒng)一進(jìn)行配置;
合理進(jìn)行領(lǐng)域劃分:Model 代表現(xiàn)實(shí)世界的抽象、Schema 使用了某種方式呈現(xiàn)Model、Entity 代表實(shí)際在數(shù)據(jù)庫(kù)中的數(shù)據(jù);
保證領(lǐng)域中事務(wù)的 Atomicity 原子性 Consistency 一致性 Isolation 隔離性 Durability 持久性;
善用 SOLID 原則編寫(xiě)代碼:如服務(wù)中的 controller / service層代碼、客戶端中的 view 層代碼;
預(yù)留日志入口、測(cè)試入口;
客戶端中統(tǒng)一攔截并封裝網(wǎng)絡(luò)請(qǐng)求、保證領(lǐng)域中的數(shù)據(jù)對(duì)接
客戶端中統(tǒng)一UI框架(需要考量的點(diǎn)包括:CSS支持程度、Card 卡片樣式、Button 按鈕舒適度、Icon 支持程度、Input 輸入框支持程度、Notify 全局提示、Pagination 表格分頁(yè)、Table 表格自定義程度/可展開(kāi)、Virtual Scroll 虛擬滾動(dòng))
...
數(shù)據(jù)庫(kù)安裝包括:數(shù)據(jù)庫(kù)選型 mongodb postgresql、數(shù)據(jù)庫(kù)分析介入GUI、數(shù)據(jù)庫(kù)備份
語(yǔ)言運(yùn)行時(shí)安裝、git 安裝、代碼拉取與構(gòu)建流程、nginx安裝與配置