1樓:尚學堂前端學院
一個專案開發團隊的組織結構是怎麼樣的,哪些是必須的,哪些是可選的呢?
希望對你有幫助!還望採納~
2樓:匿名使用者
那是大公司的說法,如果你剛畢業或者沒畢業,我只能告訴你,你先了解需求,在架構程式,然後自己開發程式。
如果像你說的那樣,專案經理主要掌握專案進度,需求瞭解,變更,架構是顧名思義,整體軟體設計的把握,處理需求的應用方式。
程式設計師,細分的話有兩種,一個底層,一個普通的頁面功能完成,資料庫開發:資料庫的建設,sql語句的編寫,還有儲存過程,觸發器,檢視等等
如有需要還會有美工
基本就這樣
3樓:匿名使用者
模組設計師:對與系統分析師和架構師所劃分的模組進一步細化,保障各模組按既定的標準和要求的完成。
需求分析師:通俗一點講需求分析師就是跟客戶交流,準確獲取客戶需要。需求分析師是專案前期與客戶方打交道最多的人,對於客戶來說,他可以代表整個專案組,對與專案組成員來說他的意見可以代表客戶方的意見,專案組內所有與客戶需求相關的事情必需得到他的認可。
資料庫設計師:又稱dba,是專案組中唯一能對資料庫進行直接的操作的人。對專案中與資料庫相關的所有重要的事做最終決定的人。
根據業務需求和系統效能分析、建模,設計資料庫,完成資料庫操作,確保資料庫操作的正確性、安全性。
架構師:主要負責設計專案中軟體部分的體系結構和模型,排定軟體開發日程,確定軟體內部流程和框架等。系統架構師也可以理解成技術總監。
系統架構師是在部門內所有軟體專案中,對技術上所有重要的事情做出決定的人。
系統分析師:主要負責根據系統分析結果設計系統總體架構、監管系統開發日程、確定軟體內流程和框架等。系統分析師是專案組中的執行長,他涉及專案的所有方面,是專案進度的推動者,也是專案成功的關鍵。
專案組長:通常3~4個開發人員組成一個開發小組,由一個小組負責人帶領進行開發活動。開發小組負責人由小組內技術和業務比較好的成員擔任。
專案經理:專案經理負責人員安排和專案分工,保證按期完成任務,對專案的各個階段進行驗收,對專案參與人員的工作進行考核,管理專案開發過程中的各種文件,直接對公司領導層負責,他既能處理好與客戶之間的關係,又能協調好專案小組成員之間的關係。專案經理是在整個專案開發過程中專案組內對所有非技術性重要事情做出最終決定的人。
軟體開發工程師:根據設計師的設計成果進行具體編碼工作,對自己的**進行基本的單元測試。軟體工程師是最終實現**的成員。
美工:負責公司軟體產品的美工設計和網頁製作
需求調研員:與客戶交流了解客戶的需求。
系統分析員:根據客戶的需求,編寫成可以通過軟體解決的軟體需求及功能文件實現。
希望對你有幫助
架構師的職責是什麼
4樓:
系統架構師是一個既需要掌控整體又需要洞悉區域性瓶頸並依據具體的業務場景給出解決方案的人。
確認和評估系統需求,給出開發規範,搭建系統實現的核心構架,並澄清技術細節、掃清主要難點的技術人員。
主要著眼於系統的「技術實現」。因此他/她應該是特定的開發平臺、語言、工具的大師,對常見應用場景能馬上給出最恰當的解決方案,同時要對所屬的開發團隊有足夠的瞭解,能夠評估自己的團隊實現特定的功能需求需要的代價。
系統架構師負責設計系統整體架構,從需求到設計的每個細節都要考慮到,把握整個專案,使設計的專案儘量效率高,開發容易,維護方便,升級簡單等。
5樓:
軟體構架師是技術主管
首先,軟體構架師是技術主管,這意味著除了他要有技術上的技能外,還要有很好的領導才能。構架師的領導能力在團隊中和專案質量控制中起著十分重要的作用。
在團隊中,構架師是專案的技術總管,他需要有豐富的知識背景,以便作出技術上的決定。相對於構架師來說,專案經理是來管理專案的資源,時間進度和花費的。使用電影製作來做類比的話,專案經理就是製片人(他要確定工作被完成了),而構架師是導演(他需要確定工作被正確的完成)。
由於他們在專案中所處的位置,構架師和專案經理是公眾人物,在一個團隊中,他們是整個專案所涉及的所有人員的聯絡樞紐。構架師應該為建立軟體構架爭取投資,並且要明確建立軟體構架能給組織帶來的價值。
構架師還要把團隊組織在構架周圍,並且要積極地投入到計劃活動上,因為要把構架轉化成為完成任務的先後順序,這樣才能及時地確定在什麼位置需要什麼技術。有一點需要注意,由於構架師能否成功與團隊的整體水平有很大關係,所以構架師應該參與團隊新成員錄用的面試。
根據構架師所擁有的能力,他可以同時參與其他團隊的工作。構架師需要根據具體的例項情況來做領導決定,並且在決定過程中要展現出足夠的自信。一個成功的構架師是以人為導向的,並且像一個教練一樣給他的團隊安排工作時間。
這對於小組的成員來說是有好處的,他們可以及時得到幫助。這是整個團隊的一個巨大財富。
構架師還要把精力放在切實工作的交付上,他是技術方面的推進力量。構架師需要做決定(經常需要在壓力下做決定),並且要保證這些決定是經過成員之間的交流的,並且確保它能夠執行。
架構師可能是有一個小組來完成的
下面介紹一個人和一個角色的區別。一個人可以扮演很多角色(例如,mary是一個開發人員,同時也是一個測試人員),同時,一個角色可以有很多的人扮演(例如,mary和john都是測試人員)。構架師的角色需要非常廣泛的技術,這就為什麼構架師的角色經常是很多人同時擔當。
這樣可以使技術知識在小組中傳播開來,每一個人都把他的或者她的經驗帶到工作中。特別是當某種技術同時被商業部門和技術小組理解的時候,這項技術就會最大程度的傳播開來。小組所作的結果,需要被"平衡。
" 貫穿整個文章的術語"構架師",是指的一個人或者整個小組的成員。
[一個小組]是一些擁有各種技術的人的集合,他們之間有共同需要完成的目標,並且之間相互負責任。 2
如果一個小組來擔當構架師的角色,那麼就需要有一個人作為這些構架師的領導,他要擁有整體的前景,並且需要調節構架師小組之間的問題。如果沒有這種調節,構架師小組成員之間就會存在危險,他們可能不會建立出一個緊密地構架或者決策不會被成功的完成。
現在有一個新的概念在構架師小組中被提出:為了使成員之間達到共同的目的和目標,團隊為構架師小組建立併發布了一個章程。 3
好的構架師知道自己的強項和弱點在**。無論構架師的角色被一個人還是一個小組擔當,他們背後都有"值得信賴的顧問"的支援。他們可以通過和其他構架師協同工作來彌補自身在某些技術方面的不足。
最好的構架通常是被一個構架師小組建立的,而不是一個人。原因很簡單,一個小組的力量總要比一個人的知識豐富的多。
構架師小組的概念有一個缺陷,他們有時被團隊中的其他人認為是在"象牙塔"裡工作,因為他們的產品經常是很有智慧的但卻沒有使用價值。這種誤解可以從開始就把它減到最小:1)確保所有的涉眾都能積極地協商,2)不斷的交流構架和它的價值,3)在執行過程中要有組織策略的意識。
構架師應該理解軟體開發過程
構架師應該對軟體開發過程有正確的估計,因為這個過程確保小組中的所有成員使用同等的方式工作。一個好的過程需要定義各個角色的工作承擔責任, 產品的建立,不同角色之間的協同工作等等。由於構架師每天的工作都需要和很多小組成員打交道,所以對於他們來說了解工作的職責是非常重要的。
在每天的工作中,開發小組經常要找到構架師,瞭解該做什麼工作以及怎麼去做。這就是軟體構架師和專案經理之間的細微差別。
軟體構架師需要有商業領域的知識
儘管擁有了豐富的軟體開發經驗,但是我們還期望(或者是要求)構架師擁有一定商業領域的知識。
[一個領域]是在一個範圍內工作的從業人員使用一系列特定的概念和術語來表達這個領域內的知識。 4
這種知識將會使構架師更好的理解系統的需求,並把精力投身於其中,確保系統的需求是合適的——例如,從構架師領域的角度出發,需求是要被準確捕獲的。經常會出現這樣的情況,一個特定系列的構架樣式可以被應用到與它相聯絡的一個特定的領域中。如果構架師知道這種對映關係,那麼對他的工作將是很大的幫助。
因此,一個好的構架師將會在軟體開發和商業領域的知識上面做出權衡。如果一個構架師具有很好的軟體開發經驗但是不瞭解商業領域,那麼他的解決方案可能不會解決實際的問題,而僅僅只能反映出構架師是多麼精通他的專業。
另外一個構架師需要精通商業領域知識的原因是,構架師要能夠預見軟體構架隨時可能出現的變化。由於軟體構架受它被配置的環境的影響非常大,所以對商業領域有正確理解的構架師,可以從軟體構架的角度,對不斷變化的情況做出更有遠見的決策。例如,如果構架師發覺哪種新的標準在未來很可能成為主流,那麼他將會使自己的軟體構架在可用壽命內符合這種標準。
軟體構架師應該擁有技術知識
軟體構架的一個特定方面需要有一定的專業知識,因此一個構架師必須具備這個水平的知識才能夠勝任他的工作。可是構架師不必成為技術專家,這體現了這篇文章第一部分的思想——構架師巨集觀上的決策。因此,構架師只需要瞭解巨集觀上的問題,而不必關心細節化的事情。
由於技術的變化過於頻繁,所以構架師要隨時與這些變化保持同步。
軟體構架師應該擁有很好的設計技巧
雖然軟體構架並不僅僅是設計,但是設計無疑是很重要的一個組成部分。構架師應該擁有很好的設計技巧,因為軟體的構架包含整個軟體的關鍵性設計決策。這種決定包括軟體主要結構的設計決策,特定部分的選擇以及指導的說明文件等等。
為了確保系統構架的完整性,上面那些要素都要被特別的應用到設計中,這對整個系統的成功完成有很大的作用。因此這些要素需要有固定的擁有設計技巧的人來負責——這個人就是構架師。
軟體構架師需要擁有很好的程式設計技巧
開發人員是整個專案開發過程中最重要的一個小組之一,構架師要隨時和他們保持聯絡。畢竟他們要確保軟體在最後交付使用的時候能夠成功的執行。如果構架師認為開發人員的工作是十分有價值的,那麼他們之間的交流將會很有效用。
因此,軟體構架師需要擁有一定的程式設計技術,即使不需要他們編寫程式。
大多數成功的構架師,在一些場合中都是核心程式設計師,這些場合通常是他們的職業方向。即使是技術發展了,有新的程式語言出現,一個好的構架師可以把以前學過的設計語言的概念和新的語言聯絡起來,以達到對新語言更加深入的瞭解。沒有這種知識,軟體構架師就不能對需要執行的構架的重要元素做出完美的決策,例如執行的組織和程式標準的採用。
這會使的軟體構架師和開發人員之間產生溝通上的障礙。
構架師是一個很好的溝通員
和以上提到的幾種技術比起來,構架師的溝通能力是最重要的。構架師需要精通所有的溝通手段,特別是需要有一定的語言能力,包括說,寫和演講能力。交流是雙向的,所以構架師還需要是一個很好的聆聽者與觀察者。
小組成員之間有效的溝通是專案成功的基本條件。為了更好的理解投資人的需求,與他們的溝通顯得尤為重要,同時還能夠讓所有的投資人在軟體構架上達成共識。與專案小組的溝通同時也很重要,因為構架師的職責不單單是把資訊傳達給小組,同時還要激勵他們工作。
構架師還要負責把系統的構想傳達給小組成員,使得它們讓全組人員瞭解,而不僅僅是構架師自己理解。
構架師需要做出決策
構架師不能在自己不瞭解的環境中做出決策,然而專案的開發週期也沒有給他提供充足的時間去探索所有的環境,所以在很大的壓力下做的決策不太可能成功。這種環境是被期望的,成功的構架師非常滿意這種環境,而不願去改變它。因此構架師需要是厚臉皮的,因為他們很可能在專案開發過程中更正自己的決定,並且按原路返回查詢問題。
正如philippe kruchten所說的:「軟體構架師的一生是一個漫長的,在黑暗中不斷摸索並不斷改進自己的決定的過程」。 5
一個糟糕的決策很可能毀掉一個專案。專案小組中的其他成員會對構架師失去信心,這時專案經理就要參與進來,因為等待構架的完善不會讓專案有所進展。最危險的情況是:
如果構架師沒有把自己的決策文件化,那麼小組的其它成員可能會自己制定決策,而這種決定很可能是錯誤的。
軟體構架師需要覺察組織的政策
一個成功的構架師不會只關心技術問題,他們還會關心組織的權力動向,時刻了解團隊的決定權在**。這可以保證他們正在和正確的人討論專案的決策問題。忽略團隊的權力是天真的想法。
現實往往是這樣的:團隊經常會強迫專案小組在規定時間交付系統,這需要構架師正確的評估到這個時間。
軟體構架師是一個談判代表
為了瞭解軟體構架的很多尺度問題,構架師需要隨時和投資人溝通。這種溝通常常需要談判技巧。例如,構架師需要特別注意的一件事是:
最小化專案中可能出現的風險,因為這直接關係到系統構架的穩定性。由於風險是和需求緊密相連的,所以可以通過移除或者減小這方面的需求來降低風險。因此把這種需求取消,需要構架師和投資人達成共識的。
這就需要構架師是一個有效的談判人員,來權衡這些問題。
軟體開發是做什麼的?軟體開發人員主要做什麼工作
軟體開發就是開發軟體,編寫程式。做程式設計做程式設計師。軟體開發是根據使用者要求建造出軟體系統或者系統中的軟體部分的過程。軟體開發是一項包括需求捕捉 需求分析 設計 實現和測試的系統工程。軟體一般是用某種程式設計語言來實現的。通常採用軟體開發工具可以進行開發。軟體分為系統軟體和應用軟體,並不只是包括...
軟體公司測試人員和開發人員的比例應是多少
這個視公司規模,專案多少和公司制度而定。以下評個人經驗談談,歡迎討論,非喜勿噴。一般大中型軟體公司都會有專業的測試團隊,一個測試組可能同時對應多個開發團隊或者軟體專案,一般小專案,應該專案開發過程中,知道最終客戶驗收,專案定版,始終保持1到2個測試人員,跟蹤測試 大的專案或者業務複雜,就需要更多的測...
開發人員買macbookpro好還是macbookair好
育知同創教育 當然選pro。macbook pro上的retina顯示屏非常清晰,影象飽滿,色澤豔麗。pro記憶體自帶的比較大,硬碟也大,而且很快。2015款的macbook pro 13寸機型還配有force touch track pad觸控板,可以識別你手指按壓的力度,很方便。 絕品 我也是程...