一個網站或者一個軟體開發流程是什麼樣子呢?
我在小公司,做網站兩年了,基本就是我圖片設計,框架設計,上線,測試,修改。很累。經常有客戶說,給做一個網站吧,又不知道從哪裡下手。
大公司開發一個網站或者一個軟體,應該有的流程是什麼?需要什麼崗位,幾個人?具體的崗位是做什麼的?我們小公司,又應該怎麼高效開發網站?
謝邀
我是做WEB開發的,一般做網站的流程如下:1、團隊會議確定網站架構方案(比如網站功能,資料庫所需的欄位等)。
2、WEB設計師負責做頁面效果,一般在PS或AI裡面做。3、前端負責把WEB設計師做好的效果寫成HTML,當然,JS交互也需要前端做。4、後端程序員編程寫功能,然後把前端寫好的交互和HTML用模板引擎的方式套進去。現在寫網站基本會使用到模板引擎技術,所以整個流程里2和4是可以同時進行的,也就是說只要會議確定好了方案後(所以項目前的會議是很重要的,不要忽視。),WEB設計師在設計頁面的時候,程序員也同時在寫功能了。最後只要和前端交接一下就ok了,能很大程度的提高效率。
不過現在很多公司WEB設計師和前端是一回事,不會分開,他們眼中的前端就是會設計效果,也會HTML和js。
當然,如果大公司,也會有專門的資料庫架構師和伺服器維護人員,還有專門的找Bug的人員。
如果小網站,如果你全套都會,那就按2、3、4的流程來。
軟體開發沒涉及過,但應該流程不會相差到哪裡去。一般的軟體開發,從類型上看,可分為2種:
- 外包軟體開發
- 自有產品研發
軟體的研發流程,不管是大公司,還是小公司,核心流程基本一致,只是在流程的執行上會有側重點,或者在某個流程進行拆分和細化。
核心流程如下:- 軟體需求分析:用來明確產品目標和用戶需求。需求可來自客戶(外包軟體)、來自用戶(自有產品)。其中客戶/用戶,根據不同類型又可細分為個人用戶、企業用戶等。這裡面主要解決做什麼的問題,配對的人員有項目經理 or 產品經理 或者更高一級的戰略規劃。
- 產品功能定義:用來明確功能規格和內容,通過對軟體需求的分析,pm可以提取出需要落地的功能點,不一定非常細緻,但是可通過這些功能來達到產品目標和滿足用戶需求,這個階段主要是pm負責,同時會參考研發的一些建議。
- 軟體原型設計:用來描述這個軟體的樣子和與用戶交互的方式。是對產品功能點的一個細緻定義,具體到每一個功能點的用戶交互流程和使用路徑。所達到的目標是軟體可用和易用,這個階段仍然是pm負責,可能包括交互設計師、UI設計師。
- 軟體開發與測試:這裡研發可以開始設計框架,同時如果有測試人員,可以開始設計測試用例。
- 軟體試用與發布:通過小範圍的試用或者灰度發布,可驗證功能的完整性、穩定性,及時收集反饋,並進行優化。
- 軟體上線:觀察數據,並收集用戶反饋和為下一版本改進提供依據。
以上6個流程,實際在執行的時候,根據不同的公司規模,可靈活調整,比如小公司,可能在需求分析、產品功能定義和軟體原型上面,就統一歸為需求分析,由項目經理全部搞定。而在一些大公司,在軟體需求分析上面可能包括數據分析、用戶調研等等,用於挖掘靠譜的用戶需求,對於一些大型的功能,還包括市場調研等等,當然所投入的人力也是不小。
小公司的作戰方法,不一定是正規軍的方式,野戰軍有時候效率會更高,在一些未明確的功能上面,通過小成本的快速開發和改進,效果會更好。我們分公司性質來說一個軟體的開發流程,
軟體公司和非軟體公司
非軟體公司
需求分析-概要設計-程序編碼-程序測試-軟體交付-客戶驗收-碼農維護
軟體公司
需求分析-概要設計-詳細設計-程序編碼-程序測試-軟體交付-客戶驗收-碼農維護
需求分析
一個軟體沒有出現之前,只是有一部分人有一個想法,我需要一個這樣的東西(想要一個孩子了)用來管理我的什麼什麼,這個時候一個想法出現了,就會有這個需求,他會找軟體公司需求分析師來商量,這個時候一個軟體就懷孕了,相當於開始發育了.需求分析是聽完要求以後會將大概的功能描述一下,用Word或者Axure畫出一個簡單的Demo給用戶看,經過幾次確認以後需求分析師會最後確認功能是不是完善的,確認了以後進行我們的下一步,概要設計
概要設計
這個功能主要是幹嘛的呢?很多的公司覺得沒必要,其實是很有必要的,這個就是相當於先規劃一下怎麼平安度過懷孕期,對於軟體來說就是軟體的處理邏輯,大概的一個流程是怎麼走的,大概需要哪些模塊,怎麼運行,需要大概多少介面,後期怎麼維護等問題,做這些干呢嗎?為了下一步-詳細設計
詳細設計
有人說,詳細設計是很麻煩的一步,其實不是很麻煩的一步,我覺得是最難的一步,詳細設計主要是用來確認細節的,介面的名字啊,控制器的名字啊,多少個控制器,誰來調用誰,這個不可以有錯,因為後期碼農是需要看這個開發的,你怎麼起名字,他們就怎麼寫,所以這裡出錯也就意味著編碼的時候也會錯,最後會有一份詳細設計書出現,這個就是告訴孕婦具體吃什麼,怎麼吃,多少量。
碼農編碼
很多人覺得這個就是搬磚,看著設計書就直接寫就可以了,理論是這樣的,但是為什麼還有很多的bug出現呢?很大一部分原因並不是設計的原因(當然也有可能),很大原因是不規範造成的,還有就是是不是一個項目組的人可以協作處理代碼,怎麼做可可以提高編碼的效率,這些問題都是在編碼的時候出現的問題。這個是相當於孕婦實施那一套套餐的時候具體是不是按規範來吃的。
程序測試
這一步是裡面很重要的一步,測試,我們不可能說寫好直接就給用戶用了,這個是不現實的,我們需要做的是先給測試部門進行系統的測試,當然這個測試不是按照用戶的想法來的,他們會很暴力,舉個栗子,一個按鈕,正常的用戶使用的時候會直接點擊一次,看到效果就可以了,但是測試的時候不是,他們會瘋狂的點擊,知道他們覺得這個世界上不會有人比他們暴力的時候他們會停止,當然這是一個好的測試人員,很多的測試不會是這樣的,他們覺得正常使用沒問題就是沒事的,其實一個軟體好不好,很大一部分在於測試人員的測試力度。最後寫一份測試報告就可以了。
軟體交付
測試結束以後沒有任何的問題的話,就可以寫安裝手冊了,這個其實就是用戶使用指南。
客戶驗收
交付後客戶簡單的測試以後覺得是和自己想的一樣的,就收貨,交錢.
碼農維護
是不是驗收以後就沒事了呢?當然不是,一個軟體很多時候是在用一段時間以後才會出問題的,所以會一直需要人來維護他們,當然不是說只是出問題才會維護的,主要的原因是軟體會根據不同的需要更改功能,這樣的過程也是維護的過程,QQ已經更新多少代了,是不是,這也是一個維護的過程。
項目重構
這個是一個項目如果出現了新的技術,功能沒有改變的時候,為了用戶體驗,例如之前是SSH寫的,但是運行的速度很低,用SpringBoot,大家都在用,用戶反映很好,那麼這個時候就需要項目重構了,用新的技術將之前的功能重新實現。
基本那就是這些了,另外細心的人也看到了非軟體公司是沒有詳細設計的,這個解釋一下,為什麼呢?很簡單,其實詳細設計是和耗費時間的,非軟體公司的人不會花費這個時間在設計上,他們就是直接告訴你需求,碼農只需要直接編碼就可以了,一般這樣的對你用什麼技術,什麼框架是沒有要求的。