App開發(fā)流程改進(jìn)建議

問題和現(xiàn)狀

  1. 產(chǎn)品會(huì)在臨上線一兩天提出需求變更

  2. 在需求評(píng)審階段晚树,看不出問題,在執(zhí)行階段雅采,發(fā)現(xiàn)邏輯需要修改爵憎。

  3. 領(lǐng)導(dǎo)臨時(shí)加需求,往往導(dǎo)致加班

  4. 上線壓力大婚瓜,有點(diǎn)亂纲堵,有點(diǎn)急,風(fēng)險(xiǎn)高闰渔,容易出現(xiàn)遺漏問題,臨時(shí)版本多

  5. 在開發(fā)過程中铐望,需求仍然不確定冈涧,導(dǎo)致反復(fù)修改,相關(guān)人員對(duì)同一問題的理解偏差較大

  6. 后端擴(kuò)展個(gè)信息正蛙,測(cè)試增加測(cè)試案例等等都可能導(dǎo)致客戶端進(jìn)行修改督弓。

原因分析

  1. 從后臺(tái)到移動(dòng)客戶端整個(gè)流程太長,涉及人員太多乒验。溝通不充分和依賴等待造成的浪費(fèi)很大

  2. 單純的word文檔愚隧,或者口頭說,比較抽象锻全。評(píng)審環(huán)節(jié)必不可少狂塘,不過光靠評(píng)審是不夠的。發(fā)現(xiàn)的風(fēng)險(xiǎn)鳄厌,評(píng)估的工作量等都不是很準(zhǔn)確荞胡。

  3. 交互設(shè)計(jì)畢竟是模型,跟實(shí)際程序相差比較大了嚎。如果做高保真模型泪漂,產(chǎn)品將擠占更多的開發(fā)測(cè)試時(shí)間廊营,導(dǎo)致設(shè)計(jì)和實(shí)際程序落差更大,開發(fā)的加班更多

  4. PC和APP共用一套后臺(tái)萝勤,耦合嚴(yán)重露筒,APP開發(fā)“PC思維無線化”現(xiàn)象嚴(yán)重

  5. 開發(fā)版本直接上線運(yùn)行,中間缺少緩沖敌卓,風(fēng)險(xiǎn)較大

  6. 缺乏概要設(shè)計(jì)和充分的驗(yàn)證慎式,導(dǎo)致邊開發(fā)邊改需求,造成不必要的浪費(fèi)和混亂假哎。

  7. 開發(fā)瞬捕、驗(yàn)證、上線三個(gè)關(guān)鍵動(dòng)作集中處理舵抹,壓力大肪虎,風(fēng)險(xiǎn)高

如何解決?

  1. 在APP和后臺(tái)服務(wù)之間增加“獨(dú)立網(wǎng)關(guān)”惧蛹,獨(dú)立開發(fā)扇救,獨(dú)立部署,作為“APP的后臺(tái)香嗓,后臺(tái)服務(wù)的前端”迅腔。

  2. APP和PC各自擁有“獨(dú)立網(wǎng)關(guān)”,根據(jù)各自特點(diǎn)獨(dú)立開發(fā)靠娱,獨(dú)立部署沧烈,實(shí)現(xiàn)解耦,解決“PC思維無線化”問題像云。

以上兩點(diǎn)可以參考1號(hào)店架構(gòu)師王慶友寫的架構(gòu)文章一個(gè)可供創(chuàng)業(yè)公司參考的移動(dòng)APP服務(wù)端架構(gòu)演進(jìn)方案

  1. 以APP的“獨(dú)立網(wǎng)關(guān)”為切入點(diǎn)锌雀,將整個(gè)流程分為“APP開發(fā)”和“后臺(tái)開發(fā)”兩個(gè)相互獨(dú)立的部分,解決流程過長的問題迅诬。
  • “APP開發(fā)”適合用“迭代開發(fā)”的思維腋逆,與產(chǎn)品和運(yùn)營做更充分的溝通。主要任務(wù)是快速應(yīng)對(duì)需求端的變化侈贷,并將需求變化集中在前端惩歉,為后臺(tái)開發(fā)提供一個(gè)相對(duì)穩(wěn)定的環(huán)境。
  • “后臺(tái)開發(fā)”適合采用傳統(tǒng)的“瀑布模型”俏蛮,面向“獨(dú)立網(wǎng)關(guān)”進(jìn)行服務(wù)開發(fā)撑蚌,與終端用戶、產(chǎn)品嫁蛇、運(yùn)營等實(shí)現(xiàn)解耦锨并。主要是實(shí)現(xiàn)高并發(fā),穩(wěn)定可靠的服務(wù)睬棚,從本質(zhì)上提升用戶體驗(yàn)第煮。
  1. 版本模式分為開發(fā)版本解幼,內(nèi)部試用版本,生產(chǎn)版本包警。
  • 開發(fā)版本采用內(nèi)部release的方式撵摆,接開發(fā)服務(wù)器,使用者主要是開發(fā)和測(cè)試害晦。
  • 內(nèi)部試用版本接“獨(dú)立的真實(shí)服務(wù)器”特铝,用戶總數(shù)受控制,比如100個(gè)壹瘟。iOS版本在審核期間也可以接這個(gè)版本鲫剿,可以提供提供幾個(gè)“超級(jí)用戶”,方便審核人員審核稻轨。使用者主要是產(chǎn)品灵莲,運(yùn)營,以及經(jīng)過篩選的“認(rèn)證用戶”殴俱,比如公司領(lǐng)導(dǎo)政冻、外部合作商戶、內(nèi)部員工线欲、鐵桿粉絲等等明场。
  • 生產(chǎn)版本接“正式的生產(chǎn)服務(wù)器”,用戶比例受控制李丰,采用“灰度發(fā)布”的方式苦锨,逐步放開用戶量。使用者主要是產(chǎn)品和運(yùn)營趴泌。
  1. 將發(fā)布逆屡、驗(yàn)證、上線三個(gè)關(guān)鍵節(jié)點(diǎn)在時(shí)間上錯(cuò)開

流程改進(jìn)

  1. 第一級(jí):“瀑布模型”踱讨,分為“APP開發(fā)”和“后臺(tái)開發(fā)”兩個(gè)階段,面向“獨(dú)立網(wǎng)關(guān)”進(jìn)行開發(fā)砍的。
  • “APP開發(fā)”優(yōu)先痹筛,主動(dòng)應(yīng)對(duì)領(lǐng)導(dǎo)、產(chǎn)品廓鞠、運(yùn)營等的變更需求帚稠;讓抽象的設(shè)計(jì)盡早變成實(shí)際可用的產(chǎn)品。
  • “后臺(tái)開發(fā)”待變更基本穩(wěn)定之后床佳,基于特定的APP產(chǎn)品提供具體的實(shí)現(xiàn)滋早,專注于高并發(fā)的處理和安全性。
  1. 第二級(jí):“APP開發(fā)”實(shí)行“迭代開發(fā)”砌们「唆铮“后臺(tái)開發(fā)”采用“瀑布模型”搁进。
  • 視覺、開發(fā)昔头、測(cè)試饼问、網(wǎng)關(guān)等組成“虛擬的小團(tuán)隊(duì)”,指定一個(gè)負(fù)責(zé)人揭斧,面向具體業(yè)務(wù)開發(fā)莱革。
  • 人數(shù)限定在10人左右。
  • 實(shí)行“每日站立會(huì)議”制度讹开,每人限時(shí)1分鐘盅视,講清楚(a)昨天做了什么(b)今天做什么(c)需要什么協(xié)助。
  • 如果能能將“虛擬的小團(tuán)隊(duì)”的座位調(diào)在一起旦万,成立“作戰(zhàn)室”闹击,效果會(huì)更好
  • 管理工具適合迭代模型的“JIRA”
  1. 第三級(jí):在一個(gè)迭代周期中,實(shí)行“瀑布模型”纸型。分為“概要設(shè)計(jì)”(5工作日)拇砰,“開發(fā)測(cè)試”(10工作日),“版本驗(yàn)收&&下一版本的需求評(píng)審”(5工作日)三個(gè)階段狰腌〕疲總時(shí)間約為4周,1月1次版本迭代琼腔」宸悖可以簡(jiǎn)單地以月初為起點(diǎn),月末為截止點(diǎn)丹莲。
  • “概要設(shè)計(jì)”:本階段的輸入是“評(píng)審后的交互設(shè)計(jì)”光坝,需求已經(jīng)基本穩(wěn)定。
    開發(fā)進(jìn)行概要設(shè)計(jì)甥材,在團(tuán)隊(duì)內(nèi)部討論實(shí)現(xiàn)方案盯另,對(duì)于原型中邏輯不落地的情況及時(shí)提出修改意見。
    “獨(dú)立網(wǎng)關(guān)”設(shè)計(jì)API接口洲赵,能接的后臺(tái)系統(tǒng)就接上鸳惯,不能接的,提供修改界面叠萍,給測(cè)試錄入測(cè)試用例數(shù)據(jù)芝发。
    測(cè)試設(shè)計(jì)測(cè)試用例,并在“獨(dú)立網(wǎng)關(guān)”上輸測(cè)試用例苛谷,創(chuàng)建Mock數(shù)據(jù)辅鲸。
    視覺進(jìn)行頁面設(shè)計(jì),有問題或者變更及時(shí)和開發(fā)測(cè)試溝通腹殿。
    領(lǐng)導(dǎo)独悴、產(chǎn)品例书、運(yùn)營等需求方原則上不要再變更需求,不過實(shí)在有必要雾叭,這是最后的變更機(jī)會(huì)落蝙,這個(gè)階段變更的代價(jià)還是可接受的筏勒。
  • “開發(fā)測(cè)試”:開發(fā)厨埋、網(wǎng)關(guān)荡陷、測(cè)試废赞、視覺等進(jìn)入實(shí)際的執(zhí)行階段唉地,以“虛擬小團(tuán)隊(duì)”模式進(jìn)行传透,“每日站會(huì)”也可以開展起來朱盐,團(tuán)隊(duì)內(nèi)部及時(shí)溝通兵琳。
    領(lǐng)導(dǎo)闰围、產(chǎn)品、運(yùn)營等需求方在這個(gè)階段不要提需求變更校仑,給執(zhí)行團(tuán)隊(duì)一段穩(wěn)定的干活時(shí)間迄沫。如果有興趣泰佳,可以參與相關(guān)“虛擬小團(tuán)隊(duì)”的“每日站會(huì)”逝她,及時(shí)了解進(jìn)展?fàn)顩r黔宛,能提供相應(yīng)幫助就更好了。
  • “版本驗(yàn)收&&下一版本的需求評(píng)審”:產(chǎn)品和運(yùn)營團(tuán)隊(duì)接管產(chǎn)品,進(jìn)行驗(yàn)收。如果條件允許回右,可以切換到“內(nèi)部試用真實(shí)服務(wù)器”渺氧,這取決于后臺(tái)開發(fā)狀況。根據(jù)實(shí)際產(chǎn)品體驗(yàn)情況蹬屹,提出下一版本的需求變更侣背。評(píng)審下一版本的需求。
    開發(fā)在這個(gè)階段做新需求的技術(shù)預(yù)研慨默,驗(yàn)收階段的hotfix贩耐,代碼重構(gòu),歷史遺漏bug的解決等事項(xiàng)厦取。為下一階段的開始做好充分的準(zhǔn)備潮太。
  • 管理工具適合瀑布模型的“禪道”

獨(dú)立網(wǎng)關(guān)

APP網(wǎng)關(guān)接口.jpg
  • APP端的API為iOS、Android、weex铡买、H5統(tǒng)一提供數(shù)據(jù)服務(wù)

  • 對(duì)多個(gè)后臺(tái)服務(wù)做聚合更鲁,對(duì)APP提供粗粒度的數(shù)據(jù),以減少遠(yuǎn)程網(wǎng)絡(luò)調(diào)用次數(shù)奇钞。比如當(dāng)前的首頁要訪問4次網(wǎng)絡(luò)澡为,可以在這里進(jìn)行“聚合”,讓APP只要一次網(wǎng)絡(luò)訪問景埃,就能展示必要數(shù)據(jù)媒至。

  • 提供服務(wù)器切換功能。根據(jù)版本號(hào)纠亚,可以切換“開發(fā)服務(wù)器”塘慕,“內(nèi)部試用服務(wù)器”,“正式服務(wù)器”三種蒂胞。對(duì)APP提供統(tǒng)一的訪問地址图呢。

  • 提供后臺(tái)配置功能,有些地方叫CMS骗随。在開發(fā)階段蛤织,可以給測(cè)試配置測(cè)試案例,正式使用時(shí)給運(yùn)營配置動(dòng)態(tài)數(shù)據(jù)鸿染。

  • 提供緩存數(shù)據(jù)服務(wù)指蚜。如果后臺(tái)服務(wù)沒好,可以在這里提供開發(fā)需要的Mock數(shù)據(jù)涨椒,讓整個(gè)流程形成閉環(huán)摊鸡。

  • 提供公共邏輯,比如安全蚕冬,監(jiān)控免猾,日志等,也可以配合后臺(tái)加鎖囤热,加隊(duì)列猎提,減輕數(shù)據(jù)庫訪問壓力等等。

  • 提供“智能升降級(jí)”功能旁蔼,隔離問題接口

  • 提供流量控制開關(guān)锨苏,為“灰度發(fā)布”提供技術(shù)基礎(chǔ)

關(guān)鍵點(diǎn)

  1. 與傳統(tǒng)模式的核心區(qū)別是:由“后臺(tái)功能推動(dòng)” 演變?yōu)?“前端需求拉動(dòng)”。后臺(tái)可以延后一個(gè)或者半個(gè)周期實(shí)現(xiàn)棺聊,面向“獨(dú)立網(wǎng)關(guān)”的數(shù)據(jù)接口編程伞租。在溝通上,大家討論的“標(biāo)的”由以前的“想法限佩、Word文檔葵诈、交互原型、設(shè)計(jì)圖、動(dòng)畫驯击、demo... ...”轉(zhuǎn)變?yōu)椤皩?shí)實(shí)在在的產(chǎn)品”(應(yīng)該說是半成品,后臺(tái)數(shù)據(jù)落地就是成品了)耐亏。

  2. App開發(fā)和PC開發(fā)相互獨(dú)立徊都,互不影響。PC和APP的特性不同广辰,沒有必要強(qiáng)調(diào)一致暇矫,也沒有必要同步發(fā)展。

  3. 由后臺(tái)“技術(shù)驅(qū)動(dòng)”择吊,改為前臺(tái)“需求拉動(dòng)”李根,將一個(gè)很長的技術(shù)鏈分為兩個(gè)階段,面向“獨(dú)立網(wǎng)關(guān)”這個(gè)接口編程

  4. 是中間產(chǎn)品几睛,是半成品房轿,并不僅僅是Mock數(shù)據(jù)。在開發(fā)服務(wù)器上所森,70%以上的接口都是真正接上的囱持,只有不超過30%的新增接口,才會(huì)在“獨(dú)立網(wǎng)關(guān)”上先定義APP API焕济,然后提供Mock數(shù)據(jù)纷妆。并且這個(gè)mock數(shù)據(jù)由測(cè)試選取“典型的測(cè)試案例”,“獨(dú)立網(wǎng)關(guān)”提供通用的key-value數(shù)據(jù)庫晴弃,以這個(gè)API的id為key掩幢,內(nèi)容就是一個(gè)json。在后期的性能提升中上鞠,這個(gè)通用的key-value數(shù)據(jù)庫還可以作為緩存服務(wù)存在际邻。

  5. 真正的開發(fā)時(shí)間還是“2周不變”∑旃“設(shè)計(jì)一周”是為了加強(qiáng)技術(shù)團(tuán)隊(duì)內(nèi)部的溝通枯怖,包括開發(fā)之間,開發(fā)與測(cè)試之間的溝通能曾《认酰“驗(yàn)收一周”是為了加強(qiáng)技術(shù)部門與需求部門之間的溝通。

  6. 瀑布模型優(yōu)點(diǎn)是風(fēng)險(xiǎn)管控嚴(yán)格寿冕,適合后臺(tái)開發(fā)蕊程。迭代模型優(yōu)點(diǎn)是溝通方便,適合APP客戶端驼唱。以“獨(dú)立網(wǎng)關(guān)”為切入點(diǎn)藻茂,兩邊用不同的開發(fā)模型

  7. 職能型組織有利于專業(yè)技術(shù)積累。項(xiàng)目型組織有利于消除部門墻,利益趨向一致辨赐∮欧“開發(fā)的兩周”采用項(xiàng)目型組織,專注于目標(biāo)的達(dá)成掀序;“技術(shù)和驗(yàn)收的兩周”采用職能型組織帆焕,重點(diǎn)在技術(shù)的積累。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末不恭,一起剝皮案震驚了整個(gè)濱河市叶雹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌换吧,老刑警劉巖折晦,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異沾瓦,居然都是意外死亡满着,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門暴拄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漓滔,“玉大人,你說我怎么就攤上這事乖篷∠炻浚” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵撕蔼,是天一觀的道長豁鲤。 經(jīng)常有香客問我,道長鲸沮,這世上最難降的妖魔是什么琳骡? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮讼溺,結(jié)果婚禮上楣号,老公的妹妹穿的比我還像新娘。我一直安慰自己怒坯,他們只是感情好炫狱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剔猿,像睡著了一般视译。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上归敬,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天酷含,我揣著相機(jī)與錄音鄙早,去河邊找鬼。 笑死椅亚,一個(gè)胖子當(dāng)著我的面吹牛限番,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呀舔,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼扳缕,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了别威?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤驴剔,失蹤者是張志新(化名)和其女友劉穎省古,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丧失,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡豺妓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年淮蜈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翎朱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡露戒,死狀恐怖描验,靈堂內(nèi)的尸體忽然破棺而出白嘁,到底是詐尸還是另有隱情,我是刑警寧澤膘流,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布絮缅,位于F島的核電站,受9級(jí)特大地震影響呼股,放射性物質(zhì)發(fā)生泄漏耕魄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一彭谁、第九天 我趴在偏房一處隱蔽的房頂上張望吸奴。 院中可真熱鬧,春花似錦缠局、人聲如沸则奥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逞度。三九已至,卻和暖如春妙啃,著一層夾襖步出監(jiān)牢的瞬間档泽,已是汗流浹背俊戳。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留馆匿,地道東北人抑胎。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像渐北,于是被迫代替她去往敵國和親阿逃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,072評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理赃蛛,服務(wù)發(fā)現(xiàn)恃锉,斷路器,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • //我所經(jīng)歷的大數(shù)據(jù)平臺(tái)發(fā)展史(三):互聯(lián)網(wǎng)時(shí)代 ? 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃囈語閱讀 51,216評(píng)論 10 200
  • 此時(shí)的心境 我空飄在一葉扁舟之上 旁處鳥叫不斷 我似乎又是在期盼 那雙眸 那活潑且充滿青春的軀體 只要再等我度過這...
    歡厘閱讀 160評(píng)論 1 3
  • 一陣風(fēng)呕臂,一顆種子破托,一片蒲公英。隨風(fēng)飄灑的靈魂散發(fā)著無邊際的輕盈與歡樂歧蒋。訴說著青春的故事土砂。那時(shí)我們正當(dāng)年少,懵懂無知...
    上攻素文閱讀 177評(píng)論 0 0