互聯網大廠項目研發流程

文章目錄

  • 階段一:
  • 階段二:
  • 階段三:
  • 階段四:
  • 階段五:
    • 開發人員:
    • 測試人員:
    • 設計師:
  • 階段六:
  • 階段七:
  • 總結:


本文章學習自:https://www.bilibili.com/video/BV1cf4y1x7HA

企業真實的研發流程,這個是半路轉行的準程序員和在校大學生都比較關心的問題以及小型公司的程序員也會好奇大廠的流程是怎么樣的。


如今互聯網大廠的開發流程,這些流程雖然好,但也不是一蹴而就的,每個公司的體量不一樣流程也不一樣。
從最簡單的流程來看一看這些環節是如何一步一步演進過來的:

請添加圖片描述


階段一:

請添加圖片描述

許多客戶只有一個簡單的需求場景:比如:用戶輸入一些數據 根據公式給出分析建議 開發人員直接根據描述完成功能即可;

這套流程弊端很明顯:那就是需求不明確,容易陷入到無限的扯皮中;

明確需求是軟件開發的大樹之根,這點沒有做好,后面所作的一切都沒有意義的。


階段二:

請添加圖片描述

初創的外包公司和個人接私活常實行這套流程,最后確認好的需求會寫在合同中,一切按照合同中的需求項進行開發。
需求變更是開發人員最痛苦的事情,所以該環節會隨著流程的完善而不斷升級。

弊端:客戶的需求一般是只有文字描述,在這種情況下,開發人員只是憑借自己想象進行編碼,對需求的理解很容易產生偏差。


階段三:

請添加圖片描述

原型圖設計:原型圖就是產品的預覽模型,用于展示產品的最終效果,可以有效的幫助開發人員理解需求。

? 小型的外包公司和個人接私活常實行這套流程,外包公司往往有一個設計師進行原型圖設計。個人接私活,很多客戶也會拿出原型圖,然后讓開發人員進行實現。

? 弊端:代碼編寫完畢后就直接將項目交付了,項目的各個BUG都是在客戶使用中發現的,這時候需要開發人員進行多次修改才能將項目完整交付,和客戶的溝通成本是非常高的,這種形式的交付往往非常耽誤時間。


階段四:

請添加圖片描述

? 開發人員實現功能后交由專門的測試人員進行系統測試,測試完畢后由產品進行驗收,驗收無誤才能進行交付上線

  • 外包公司:指沒有自己產品的公司,主要承接項目進行開發,需求都是從客戶那邊過來的。
  • 產品公司:就是有自己的產品,會對自己的產品開發,運營,迭代,需求是業務部門和產品部門提出的。

這套流程麻雀雖小,五臟俱全,每項流程都有專門的人員負責:

  • PM:產品經理。負責需求提出、產品設計
  • UE:交互設計師。負責設計頁面布局交互
  • UI:視覺設計師。負責產品的具體樣式設計
  • RD:開發人員。負責功能實現
  • QA:測試人員。負責產品的質量檢測
  • OP:運維人員。負責上線審批、維護產品所需要的硬件狀態

各個人員各司其職,當前環節沒有問題后才會推進到下一環節,這時候流程的流轉和推進要進行工程化管理

? 弊端:很多環節在沒有準備充足的情況下就開始實施了,質量得不到有效的保障,不如:確定需求和原型就進行編碼開發,如果在編碼過程中發現技術方案不合理,此時變更會浪費大量的時間


階段五:

接下來的流程演進基本就是各個中大廠的流程了,每個環節各個公司的取舍不太一樣

請添加圖片描述

?產品需求評審:需求提出后,產品會拉上各個崗位的人進行產品需求評審,產品經理會將需求項寫好,并且整理出低保真原型圖、產品流程等,讓大家能夠對產品和需求有個概念,PRD在原型圖上進行標注說明,大家根據原型圖進行評審,爭取弄清楚產品和需求的每個細節,并且提出自己的想法,各抒己見。

請添加圖片描述

意見統一后,產品經理確定版本,然后各個崗位進行自己職責內的設計了。

開發人員:

請添加圖片描述

? 概要設計完成后,就要對細節方面進行完善了,這個細節就是指功能的實現思路,比如一個簡單的登錄功能,編碼時就是看著圖開發了,這一塊設計得越詳細編碼時就越輕松,同時測試人員也要對測試進行設計和思考,不然會遺漏功能點。
請添加圖片描述

測試人員:

? 測試要進行測試用例的設計,測試用例可以幫助測試人員理清需求,為后續的測試提供可參考的依據,在測試過程中也可以反應測試的進度。

測試用例:是指需要測試的功能點

請添加圖片描述

設計師:

? 設計師也要進行交互設計和視覺設計,這個環節做出來的高保真原型圖,基本就是產品的最終樣貌。


階段六:

請添加圖片描述

? 當開發人員、測試人員、設計師把自己的內容設計完畢后又會湊到一塊進行評審,看看互相對功能理解是否一致,產品經理也會看一下大家對需求的理解程度,避免理解產生偏差,這個環節就是對細節進行完善,改動一般不會太大,該環節完成后就是開發人員進行功能的實現,前后端也會進行聯調,聯調完畢后開發人員會自行測試一番,再交由測試人員進行測試。

? 弊端:再開發環節前做了充足的準備,但沒有在開發環節后做充分的測試驗收,產品上線后質量得不到保障。


階段七:

請添加圖片描述

? 在開發完成后,大廠一般會做代碼review,組長和組員會對你的代碼進行審查,在業務和技術都會獲

得很多建議和意見,對開發人員成長最大的環節

? 開發人員提交測試申請,將代碼交給測試人員發布到測試環境進行測試,因為測試的周期比較長,測

試環境沒有問題后就可以將代碼分支合并然后由測試人員發布到預發/沙箱環境。

? 沙箱環境:將系統接入真實的數據,但是系統只能內部訪問,用戶無法直接訪問的,這個環節就是為

了保證上線前不出問題,所以模擬線上真實環境,看看系統能不能真的抗住真實數據,這一輪測試完成

后又可以將代碼分支合并一次然后讓產品經理驗收。

總結:

? 從需求提出到需求結束還是很不容易的,中途歷經多個環節要和多個部門崗位協調各種問題和難點都要面對,每個公司會根據自己的文化和人員配置業務方向以及需求大小做出調整,比如一些小的需求小的改動概要設計和詳細設計就不會做了。

? 流程的最終目的是為了節省時間成本和人力成本,并且提高產品的質量,符合公司實際情況的才是好流程,小公司盲目采用大公司的流程反而會增加溝通成本,大公司明明流程老舊也不進行改進和變動,技術負債就會越來越多。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450791.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450791.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450791.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

centos常見錯誤 Failed to set locale, defaulting to C

錯誤描述: 當在centos中使用yum命令時,輸出錯誤: [rootlocalhost yum.repos.d]# yum list |grep prceFailed to set locale, defaulting to C 用locale檢測,出現如下提示: rootlocalhost yum.repos.d]# localelocale: …

圖片上傳知識點梳理

在日常項目開發中,圖片上傳是一個十分常見的場景。而現在的各種UI框架都提供了自己的上傳組件,網上第三方的上傳組件也多如牛毛。可能你早已習慣了直接使用這些現成的組件,然而對于其具體的實現,卻并未深入解析。本文將通過簡單的…

解決 java.lang.IllegalArgumentException: Repository interface must not be null on initialization!

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯:Caused by: java.lang.IllegalArgumentException: Repository interface must not be null on initialization! Cause…

【狂神說】JVM

文章目錄1.JVM的位置2.JVM的體系結構3.類加載器4.雙親委派機制(重要)5.沙箱安全機制(了解)6.native(核心)7.PC寄存器(了解)8.方法區9.棧10.三種JVM11.堆(Heap)12.新生區、老年區13.永…

我們真的需要統一的編程規范?

摘要:仁者見仁智者見智,編碼風格的不同,對項目也會有不同的影響,統一的編碼規范有益于項目的維護。俗話說,沒有規矩不成方圓,在2004年,UNIX創始人之一的Ken Arnold就發表了一篇很幽默文章&#…

百度云重磅發布ABC 3.0 尹世明如何詮釋百度云的“新”打法

雷鋒網9月4日消息,2018百度云智峰會正式召開,百度總裁張亞勤發表題為《新技術驅動,全面進入Cloud2.0》的演講并表示,經歷了PCClient/Server到MobileCloud 1.0,再到如今的AICloud 2.0過程,新技術推動云計算產…

EcmaScript對象克隆之謎

先談談深拷貝 如何在js中獲得一個克隆對象,可以說是喜聞樂見的話題了。相信大家都了解引用類型與基本類型,也都知道有種叫做深拷貝的東西,傳說深拷貝可以獲得一個克隆對象!那么像我這樣的萌新自然就去學習了一波,我們能…

開發人員眼中最好的代碼編輯器是誰?

摘要:對開發人員來講,開發工具就好比戰場上的“兵器”,不同領域的開發人員他們所使用的“兵器”也不完全相同,本文從友好性、功能性、擴展等多方面總結了最受開發人員歡迎的“兵器”。你最愛的那個在這里嗎? 如果我們把…

關于RESTful一些注意事項,接口開發規范

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 最近在研究restful,公司開發要使用,所以自己就去網上找了好些資料,并整理了一套公司開發的接口規范。…

【老杜】MySQL—day01

文章目錄day01課堂筆記1、數據庫概述及數據準備1.1、什么是數據庫1.2、什么是數據庫管理系統1.3、SQL概述1.4、安裝MySQL數據庫管理系統。1.4、MySQL數據庫的完美卸載!1.5、MySQL的服務1.6、用命令來啟動和關閉mysql服務1.7、登錄mysql數據庫2、MySQL常用命令&#…

【轉載】DRuid 大數據分析之查詢

轉載自http://yangyangmyself.iteye.com/blog/23217591、Druid 查詢概述上一節完成數據導入后,接下來講講Druid如何查詢及統計分析導入的數據。Druid的查詢是使用REST風格的HTTP請求查詢服務節點(Broker、Historical、Realtime),這…

記錄 Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentExce

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯如題: Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentException: Pa…

[轉]簡單的動態修改RDLC報表頁邊距和列寬的方法

本文轉自:http://star704983.blog.163.com/blog/static/136661264201161604413204/ 1.修改頁邊距 XmlDocument XMLDoc new XmlDocument();XMLDoc.Load(System.Windows.Forms.Application.StartupPath "\Report_try-2.rdlc");XmlNamespaceManager xmn n…

函數式編程語言天生就慢嗎?

摘要:近期,函數式編程得到了越來越多的關注,Lisp不僅重獲青春還涌現出了一批新函數式編程語言。因此開發者們對函數式編程語言的運行快慢各抒己見,展開激烈討論。本文將和大家一起討論,函數式編程語言真的就慢嗎&#…

【老杜】MySQL—day02

文章目錄day02課堂筆記1、把查詢結果去除重復記錄【distinct】10、連接查詢10.1、什么是連接查詢?10.2、連接查詢的分類?10.3、當兩張表進行連接查詢時,沒有任何條件的限制會發生什么現象?10.4、怎么避免笛卡爾積現象?…

vue根據數組對象中某個唯一標識去重

由于在vue中,會自動在數組和對象中加入_obser__觀察者模式的一些屬性,所以直接用數組的filter去重(下面這種),indexOf不能準確識別 var arr [1, 2, 2, 3, 4, 5, 5, 6, 7, 7]; var arr2 arr.filter(function(x, index…

Springsecurity之AuthenticationProvider

2019獨角獸企業重金招聘Python工程師標準>>> 注意:AuthenticationProvider與Authentication緊密聯系,關于Authentication,看我的這篇博客。 先上一張圖,如下圖1 圖1 AuthenticationProvider的類圖 AuthenticationProvi…

Postman使用入門

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 Postman測試管理的單位是測試集(Collections),測試集內可以創建文件夾(Folder)和具體的請求(Requests…

編程需要知道多少數學知識?

摘要:許多人認為在開始學習編程之前必須對數學很在行或者數學分數很高。但一個人為了編程的話,需要學習多少數學呢? 實際上不需要很多 。這篇文章中我會深入探討編程中所需要的數學知識。 下面是我在reddit的子論壇 r/learnprogramming 看到的…