此文寫于2013年7月10日瓮栗,轉(zhuǎn)自我的開源中國https://my.oschina.net/vell/blog/143770.
以下社區(qū)項目總結(jié):
且聽我從立項到開發(fā)再到測試并上線這個順序來一一道來瞄勾,其中包含了項目組內(nèi)同學(xué)的在總結(jié)會上提出觀點.
一弥激、立項(包含需求階段)
1.沒有明確的產(chǎn)品經(jīng)理
????在社區(qū)項目立項之初,由運營的同學(xué)出了份需求文檔趾疚,明確了幾個重要的功能模塊以蕴,但沒有將文檔出的比較細(xì),需求文檔沒有產(chǎn)品負(fù)責(zé)人來更新舒裤,由此導(dǎo)致開發(fā)和測試的同學(xué)對于需求理解很模糊,開發(fā)的功能中有很多細(xì)節(jié)沒有關(guān)注到腾供,這又使得開發(fā)人員按自己的思路對開發(fā)的功能進(jìn)行主觀的判斷,做出了一些非常棒的細(xì)節(jié)性功能节值,但是這樣的細(xì)節(jié)性功能有一部分可能違背了產(chǎn)品經(jīng)理的觀點,結(jié)果就導(dǎo)致了一些需求的小變動榜聂,開發(fā)人員不斷進(jìn)行返工,當(dāng)然由于測試也是在開發(fā)過程中介入的匿乃,由此又導(dǎo)致測試同學(xué)也出現(xiàn)了類似問題豌汇,即不斷的對這些小改動進(jìn)行驗證幢炸,不明確的需求細(xì)節(jié)的條件下拒贱,也產(chǎn)生了很多主觀上的測試行為,這樣就導(dǎo)致大家經(jīng)常做了無用功闸天,思路根本無法統(tǒng)一斜做,也就是俗話說“費力不討好”苞氮。
當(dāng)然上述問題的產(chǎn)生在互聯(lián)網(wǎng)項目開發(fā)過程中不可避免陨享,而需求的變動是有成本的钝腺,這個成本可以歸結(jié)為兩類赞厕,一是時間、二是人力皿桑,即便是再好的敏捷開發(fā)團(tuán)隊,也無法保證需求的變更不會對質(zhì)量和進(jìn)度產(chǎn)生影響镀虐,這種變更必然是需要一個角色來承擔(dān)責(zé)任和義務(wù)沟绪,那就是產(chǎn)品經(jīng)理,而項目經(jīng)理為了保證進(jìn)度很可能不會對這種變更進(jìn)行讓步绽慈,這樣便了產(chǎn)品質(zhì)量和周期的矛盾,而要保全這兩者坝疼,必然就會讓整個產(chǎn)品研發(fā)團(tuán)隊做出付出額外的精力,而產(chǎn)品細(xì)節(jié)的確定也讓團(tuán)隊付出了很多溝通的成本仪芒。
對于互聯(lián)網(wǎng)的產(chǎn)品研發(fā)過程中耕陷,產(chǎn)品經(jīng)理的角色是至關(guān)重要的,如果要做一款成功的產(chǎn)品啃炸,必須要有一個能握產(chǎn)品方向,關(guān)注和完善細(xì)節(jié)功能,對產(chǎn)品需求掏湾、運營計劃做日常管理的產(chǎn)品經(jīng)理來完成這些工作,這樣才會更進(jìn)一步增強產(chǎn)品互動性和用戶滿意度。
2.協(xié)作筑公、溝通不到位
????開發(fā)過程中前后端的同學(xué)沒有良好的配合萨赁,主要表現(xiàn)在要在需求明確的情況下接口參數(shù)、數(shù)據(jù)格式前后端沒有即時溝通統(tǒng)一意見萄窜,聯(lián)調(diào)的時才發(fā)現(xiàn)問題衣摩,這樣也程序的修改成本變大,還有后臺系統(tǒng)之間涉及到的數(shù)據(jù)庫表字段和注釋的修改券躁、系統(tǒng)接口頁面的修改時,都要通知到相關(guān)人也拜,并且得到他的答復(fù)后才能執(zhí)行修改操作。
另外蔓钟,使用svn時卵贱,代碼提交前,沒有認(rèn)真測試艰赞,導(dǎo)致其他人服務(wù)器啟動時報錯,所以在更新了別人代碼或提交自己的代碼時一定保證代碼能在本地正常跑起來方妖,抽一部分時間出來自測,會省去很多處理代碼沖突的問題的時間雌澄。
3.不重視規(guī)范
????如果我們的編碼規(guī)范杯瞻、開發(fā)流程能認(rèn)真的按要求執(zhí)行,有很多溝通魁莉、測試的問題都能很好避免,例如業(yè)務(wù)代碼旗唁、數(shù)據(jù)庫字段注釋可以讓開發(fā)、測試人員都能第一時間了解細(xì)節(jié)到代碼和字段的含義讶请,有效的開展開發(fā)和測試屎媳。代碼整理提測之前论巍,如果都能把自己模塊的單元測試跑通,把握好每個模塊和功能之間的耦合嘉汰,通過自測保證修改后的代碼對整體的功能影響降到最低钞诡,這樣既節(jié)約了測試人員的時間,也減少了開發(fā)返工的次數(shù)荧降。
4.程序未充分設(shè)計
????這一點提出來,也是為以后更快辛友、更好的開發(fā)項目做準(zhǔn)備剪返,我們在開發(fā)設(shè)計階段,要充分考慮功能模塊組件化思想脱盲,不同的模塊可以復(fù)用,功能代碼通過組件的形式進(jìn)行擴(kuò)展钱反。
組件化編程的關(guān)鍵目的是為了將程序模塊化,使各個模塊之間可以單獨開發(fā)哎壳,單獨測試尚卫。
????基于組件化開發(fā)帶來的優(yōu)勢归榕,首先原有到系統(tǒng)級的粗粒度控制細(xì)化到了到組件級別的細(xì)粒度控制吱涉,一個復(fù)雜系統(tǒng)的構(gòu)建就是組件最終進(jìn)行集成后的一個結(jié)果。每個組件都自己獨立的版本循签,組件可以獨立編譯疙咸,獨立打包和部署风科。其次產(chǎn)品組件化后可以真正實現(xiàn)完整意義上的按組件進(jìn)行產(chǎn)品配置和公用乞旦,用戶可以選擇購買哪些組件,組件之間可以靈活的進(jìn)行組裝兰粉。另外包括我們說的配置管理顶瞳,開發(fā),測試慨菱,打包,發(fā)布完全控制到組件層面闪彼,帶來額外其它很多好處协饲,如我們常說的如果一個組件進(jìn)行小版本升級畏腕,如果提供給外部的接口沒有任何變動茉稠,其它組件完全可以不用做任何測試等。
基于組件化的思想開發(fā)的同時铭污,我們在代碼的構(gòu)建可以使用Maven或?Gradle這樣的構(gòu)建工具吞获,加快項目的測試、部署周期各拷。