寫給一個App做了10個月還沒有上線的公司。
腦圖
歲末年關,也是App蓄久代發之日。
對于公司我這里有一個價值100多萬的建議,它可以提升我們公司軟件開發效率,減少開發成本,從而節省一筆不小的開支。還可以更快更方便的開展其他業務提升時間利用率。在這個時間就是金錢,效率就是生命的時代里我相信這也許是一個很不錯的建議。如果它能奏效預計能提升40%的效率。如果簡單的換算成錢來看(1W/人/月 * 30人 * 10個月)* 0.4 ≈ 120W
,這還不包括節省下來的時間完成其它事情所帶來的收益。
人都是逐利的,公司也一樣。不同的是公司凝聚了個人的力量組成團隊,抱團打天下以便更容易實現目標牟取相應的利益。我有幸能加入公司,成為這個利益共同體中的一份子,同時我也想貢獻自己一份微薄的力量將我們的共同利益最大化。所以在我加入公司這段不長的時間里發現了一些問題并斗膽總結出來,不知道是否客觀正確,但我主觀認為它確實影響了我們這個利益共同體的利益最大化。
存在問題
1.無任何計劃
俗話說無規矩不成方圓,做軟件開發也一樣。朝立夕改不僅不能做到至善盡美、反而會影響項目整體的穩定。計劃的重要性是不言而喻的,但是我并沒有在我們的團隊中感覺到它的存在。
合理的計劃絕對是效率提升最好的幫手,如何制定出合理的計劃我覺得需要專人專做。就好比我們都會畫畫,但我現在需要請一位畫師給我畫像,我不會去對他的工作指手畫腳甚至隨意更換要畫的畫像。同理如果一個人自稱懂程序,但不清楚H5和原生的優劣如何能決定一個功能或一個界面是用原生或H5實現?
好的計劃會很清楚的表明什么時候干什么事情,有很好的條理性。像我通常做項目時會簡單的分成一期二期三期等階段性進展,并很好的將要實現的功能進行劃分。在前期打好基礎,后期開枝散葉這是我們通常使用的策略。
如果我們有了擬定的計劃,那我們還需要在時間節點去回溯計劃,找出影響計劃完成的責任源頭。比如我們之前擬定了20號上線的計劃,后來為什么會不疾而終。沒有對過去的反思,如何行走當下,更甚面對未來?
2.無任何流程
生活中我們常常需要走各種流程,流程是事物進行中的次序或順序的布置和安排。辦事有辦事流程,開發有開發流程,業務有業務流程,而程序又是一段段代碼按照給定流程執行的工具。沒有流程或者流程混亂做出來的程序也不會是一個健壯的程序。
常見的軟件開發流程會有:需求分析-->軟件設計-->技術架構-->代碼編寫-->功能測試
。當然你也可以有你自己的流程,這里有一些前人總結出來的開發模型,也分析了利弊。不難看出我們現在的邊做邊改型只適用于幾百行的小程序,如果他們能幫助我們更好的做好工作,為什么不去學習一下了?
常見的迭代流程
這個是目前軟件開發最常用的敏捷開發的迭代流程圖,也很清楚的標明了不同階段該如何管理和介入。同時我也希望我們能采用這樣的開發模式,而不是現在的。
還有就是最重要的BUG處理流程,這里我找到了一篇文章算是不錯的科普,它教我們如何劃分BUG類型、缺陷等級以及BUG處理流程。可以看到發現BUG并不是立即去打破程序員目前的工作狀態。
3.需求不明確
這一點在很多地方都存在,就比如船詳情從我開始做到現在基本穩定的版本我已經改動不下4次。還有最近需要修改的部分都沒有很明確的需求。
4.意見不統一
這個也是因為沒有良好的開發流程導致,領導說哪改哪,不同人對要實現的功能有不同的目標。記得選擇優惠券和地區選擇都遇到的類似的情況。
5.設計缺陷
不知道是開發沒有按照設計圖完成UI,還是設計圖表達的不夠完整,經常性的重做既是對設計人員成果的否定,又是對開發人員時間的浪費。
6.UI改動頻繁
不是說UI不能改動,也不是說領導沒有了指揮的權利,只是想說可以將改動總結提煉,以達到風格一致性或功能完整性。我們經常使用的App基本上半月一小改一月一大改,QQ改了15年它也還再改,這些比要的進化肯定是必須的。經得起用戶使用的版本才是穩定的版本,用戶體驗提升、用戶數量增加的改動才會是好的改動。沒有刻度的秤桿只是一根廢柴。
7.無任何系統性測試
測試很重要,它是對產品質量的保障,而我們一直再改,敢來一次系統性內測嗎?
解決方案
成功有賴于良好的項目管理,好的項目管理流程是怎樣的?
1、制定合理計劃并嚴格執行
2、明確業務流程、減少溝通成本及理解偏差
3、各司其職、責任到人
4、增加需求分析環節、減少設計缺陷及試錯性開發
5、分析責任源頭、增加追責機制
6、明確開發、測試流程。分清事務優先級
簡單羅列了一下我想到的方案,但真正能解決問題的還是執行力的問題。
所以說了這么多我能給出的建議就是第一條:制定合理計劃并嚴格執行,如果做到它肯定不止值100W。畢竟很多大型互聯網公司完善的制度也是在執行這一條。
以上也只是個人愚見,謹以此表明我自己的看法和態度,為自己爭取一個良性的工作環境。愿公司越來越好,早日實現利益共同體的目標。