軟體開發需要那方面的人才呢

時間 2021-12-25 15:42:24

1樓:匿名使用者

你好!1 前言

軟體開發並不是只有一個程式設計的人,而是可以分為不同的角色。不同的軟體公司因為規模大小性質各不相同,所以圍繞軟體的角色也各不相同。一個大型的軟體外包企業,外資企業,往往分工明確細緻,每個人像螺絲釘一樣在一起工作,讓整個大機器得以運轉。

而在一個小型創業企業裡面,往往一個人從接觸客戶,到開發產品到交付產品一條龍走完,整個產品週期就一個人,甚至幾個產品週期就一個人。

2 軟體開發團隊角色

一般的專案組可以說一共有5種角色,開發(dev),測試(qa),質量監督(sqa),技術主管(tech-lead),開發經理(sdm)。

2.1 開發 (dev)

開發就是大家經常說的程式設計的人。工作主要是寫**,其次是跟團隊成員客戶溝通。前後者比例大概是7:

3的關係。開發是整個軟體開發團隊當中的最重要的角色之一,道理很簡單,產品出自於他們的親手。說到開發,大家的印象就是整天呆在電腦面前,目光呆滯,頭髮凌亂的計算機人士。

確實,整天和計算機打交道的人的確容易變成這樣,因為開發首要解決的問題就是如何用技術能力去解決客戶的需求,而不是自己的形象怎麼樣。事實上這種情況在現代中得到很大改善,很多it人士都很注重自身形象。具體的工作不僅要寫**用演算法實現業務邏輯,更要有程式設計的思想,大到整個的程式框架,小到某個小模組的擴充套件性相容性,都是在開發真正寫**之前著重要考慮的方面。

現在的程式設計不像以前打孔式程式設計那麼艱澀,大廠商開發的強大的程式設計工具(ide)讓程式設計事半功倍。然而技術在變簡單的同時,客戶需求又在日趨複雜化。而技術就是為了實現業務邏輯,將業務邏輯抽象建模用計算機程式的方式表現出來,所以一個不懂業務邏輯的開發不會了解模組和模組之間如何協同工作,這便給工作帶來很大的侷限性。

而如果一個開發只關注每個模組之內的細節實現,那在現實中便不是一個好開發,至少不是一個好用的開發。

溝通方面,開發需要和測試,技術主管,開發經理,甚至客戶方面溝通,所以必要的溝通能力還是很需要的。現在的軟體不再是一個人在戰鬥,在團隊作戰中,開發有時需要和測試討論「某個軟體bug(缺陷)是不是bug」,有時需要和技術主管討論客戶的某個需求到底是要實現什麼內容,有時需要和開發經理討論專案的進度是否需要推遲。

就開發的工作本身而言,是不太需要管理能力和全域性觀的,如果能夠做好程式設計的工作之外,這兩方面也比較強,可能就離升職加薪不遠了。

2.2 測試(qa)

任何一個產品都需要測試,就好比製造業中如果生產了一批電燈,我們不能聽制燈師傅說信得過而信得過,而得通過一系列模擬使用者的行為來對電燈進行測試,指標合格後方可出廠投入市場。

軟體測試也一樣,需要對開發者開發出來的模組,產品進行全方位的測試。

原則是「做正確的事」,讓客戶需求功能得到滿足。基本做事方法就是模擬客戶的一切日常行為,包括一些極其**的行為,考驗軟體在各個方面的情況下的可用性和穩定性。而這些「日常行為」便稱之為測試用例(test case),一個好的qa會設計出一套可以覆蓋所有檢查點(check point),又不重疊的測試用例,這套功底可以參考mece方法。

既然如此,qa就需要對整個軟體的業務相當熟悉,因為她(他)要知道在某個使用者行為下,軟體是否做出了正確的反應。

既然是模擬使用者行為,那麼qa就需要去手動「跑」測試用例。當一個系統很大的時候,測試用例極其多,光用手點一遍是非常耗費時間和人力的,所以qa可以做自動化測試。所謂自動化,便是qa編寫一些指令碼**,讓計算機幫助去實現一些人為的行為,而不用自己手動點。

所以這就需要qa做有一些**編寫能力。

溝通方面,qa經常要和dev討論bug(軟體缺陷),bug的意思是本應該有的功能卻沒有做到的功能。對於某些比較似是而非的bug, 怎麼能夠讓開發者心服口服地承認並去修復往往需要花費一番口舌。而這些bug往往是根據不同的人的價值觀認定是不是bug,所以合理地傳遞價值觀也是qa的一個基本素質。

現實的一個案例是,公司某qa「傳遞價值觀」能力極強,於是被拉去做市場去了。除此之外,qa還要經常和技術主管溝通,熟悉客戶需求。

全域性觀是因為qa要做整合測試,這樣需要對產品本身有個全域性的觀念。比如產品有個使用者管理系統和訂單管理系統,那麼對於「刪除一個使用者」的行為,使用者的訂單會怎麼處理?這便是一個全域性觀的意識。

往往一個好的qa在這點上可以幫使用者想到很多使用者沒想到的東西。

2.3 質量監督(sqa)

如果說qa的作用是確保「做正確的事」,那麼sqa的作用就是確保「正確的做事」。

通常sqa是不會直接參與軟體開發的工作中,而是通過在一旁監督軟體開發的過程,然後把監測的結果反饋給軟體開發團隊。

既然是監督過程,所以sqa經常是流程化的代名詞。流程是外企當中比較看重的東西,從每天的daily report, 到每週的weekly meeting,從什麼時候把當天的結果存到伺服器上,到為什麼團隊出現重大事故,幾乎都會有sqa的參與。所以在前期制定一個符合專案的流程是sqa的必然工作。

專案執行過程中,所有專案流程規定的點所涉及到的郵件都要cc一份給sqa。

當sqa通過流程觀察專案的運**況的時候,必然會收集到很多資料(包括剛才提到的郵件)。sqa會對這些資料進行統計歸納,然後總結出規律和報告直接遞交給總監(director)。鑑於此,sqa在我們公司地位還是很高的。

sqa還會不定期對開發團隊進行個人的face to face面對面一對一溝通,名字叫audit,中文翻譯過來類似叫審計。這種行為更針對「人」的評估,而不再是產品。因為產品的好壞決定於人的好壞。

2.4 技術主管(tech-lead)

技術主管在我們公司往往就是一個專案的負責人。最主要的工作莫過於軟體架構設計,客戶需求溝通,技術難點解決和內部團隊管理。

技術主管,名字便告訴了大家技術功底一定要很牛,在我們公司經常是一些工作了2-3年以上的軟體工程師或者高階軟體工程師擔當。雖然技術很牛,不過實際上直接參與軟體開發的還是dev(開發者),技術主管只是在比較高的一層面進行協調,所以直接**程式設計很少。但是遇到了技術障礙dev無法克服的時候,技術主管一定要及時站出來做一個problem solver。

技術主管的日常主要工作就是和客戶溝通,熟悉需求,然後把業務需求轉換成軟體需求給dev去做。所以技術主管對業務邏輯要相當的熟悉,在整個專案角色中,對業務最熟悉的除了客戶就是技術主管。所以技術主管起到了一個銜接的作用,溝通起了客戶和開發,連線起了現實的業務需求和虛擬的軟體實現。

這一切,對技術主管的溝通能力的要求就很高了。

軟體團隊不是一直和諧的,有時會出現某個模組的介面和另外一個模組的介面銜接不上,有時會出現一個人的工作被另外一個人的工作block(中斷)了,有時也會出現某個dev總是不買某個qa的賬等等,所有的這一切,從技術到人本身,都在時時考驗一個技術主管的管理水平。

2.5 開發經理(sdm)

軟體開發經理是一般軟體專案中執行層面上的最高職位了。其主要作用是專案的進度控制,客戶高層溝通,甚至到專案預算控制。

軟體開發經理的程式設計功底要看具體人而定,在我們公司軟體開發經理一般都是技術出身,5-8年的工作經驗或軟體行業的資歷。在具體的專案中,幾乎不參與任何**的編寫和設計工作。前期的專案計劃(project plan),中期的專案進度管理和客戶需求管理,到後期的專案交付,所有的工作都是軟體開發經理和客戶主要要溝通的東西。

業務方面,軟體開發經理對業務認知的能力是非常強悍的,因為資歷深的人對很多陌生的業務嗅覺和認知要比其他人強。不過在實際中,業務需求方面大部分工作給技術主管做了,所以軟體開發經理主要關注於專案總體,對細節不太關注了。

軟體開發經理還有個重要的作用便是在軟體專案過程中,積極地調動專案內外的資源。簡單的說,把合適的人放在合適的位置上。當團隊出現無法解決的問題時,軟體開發經理會想方設法從外部獲取資源幫助團隊渡過難關。

3 從軟體開發團隊成員看21世紀企業所需的人才素質

從一個軟體開發團隊中開發(dev),測試(qa),質量監督(sqa),技術主管(tech-lead),開發經理(sdm)這五類角色所具有的各種能力我們不難看出二十一世紀的社會需要的是什麼樣的人才,答案很明確,二十一世紀我們需要的是複合型人才。

那什麼是複合型人才呢?複合型人才就是多功能人才,其特點是多才多藝,能夠在很多領域大顯身手。複合型人才包括知識複合、能力複合、思維複合等多方面。

當今社會的重大特徵是學科交叉,知識融合,技術整合。這一特徵決定每個人都要提高自身的綜合素質,個人既要拓展知識面又要不斷調整心態,變革自己的思維,成為一名「光明思維者」。那麼一名複合型人才又應該擁有哪些素質呢?

3.1 高尚的思想政治品格

首先,要樹立正確的馬克思主義世界觀、人生觀、價值觀,用辨證唯物主義的觀點,客觀、動態、全面、本質、聯絡地看問題、分析問題、解決問題。

其次,要有堅定的政治立場,堅持四項基本原則,樹立共產主義的信念和理想,自覺、積極、熱情、主動地參加有中國特色的社會主義的建設,為實現社會主義現代化而奮鬥。在現今社會中,要能識別和抵制各種錯誤思潮的影響,堅定正確的政治方向。

第三,要有現代意識,譬如競爭意識、時效意識、科學意識、開放意識、改革意識、民主意識、法制意識、平等意識、資訊意識、優質服務意識等。

3.2良好的科學文化知識

科學文化素養是指人們對自然科學、人文社會科學、文學、美學、藝術等人類文化各種基本知識或常識的認識程度和掌握情況。21世紀的人才又需要精深而嫻熟的專業知識、先進而新鮮的前沿知識以及與本專業相關的各種知識。

3.3 法律道德知識

21世紀的社會將是一個法制社會,法律在它的適用範圍內具有普的約束力和強制性。尤其在社會主義市場經濟下,任何經濟活動都必然依法進行,知法、懂法、用法、守法,增強法律意識就顯得更加重要。所以,21世紀人才必須有較高的法律修養,瞭解憲法和法律的基本內容,正確行使公民權利,認真履行公民義務,作一個守法的公民,運用法律維護自己的正當權益。

3.4 健康的心理

所謂心理健康是指個體在各種環境中都能保持一種良好的心理效能狀態,個體在這種狀態下能以社會認可的方式調節內部心理結構,以取得對外界環境的良好適應,並充分發揮其身心潛能,保持旺盛的生命力。

3.5 一定人際交往能力和合作精神

21世紀是一個變化極快的時代,由此是一個競爭異常激烈的社會,但也由此不可能光靠一人的能力來成就事業,因此21世紀更加需要合作。合作精神是一種值得弘揚的時代精神,也是新世紀人才必備的一種優良品質,我們必須放棄「雞犬之聲相聞,老死不相往來」的陋習,倡導科學、文明、健康、開放的社會交往方式,學會交往,學會合作,提倡合作精神。在人際交往和互相合作過程中注意互惠互利、互相尊重、互相信任、擺脫嫉妒、能力昇華等,把祖國建設得更富強。

3.6 新時代的創新精神

創新精神是21世紀所必備的,沒有創新就意味著「一潭死水」,停滯不前,繼而落後,繼而捱打。科學技術要走在世界前沿,經濟建設要躋身世界前列,無不需要創新,尤其在建設有中國特色的社會主義的中國,從事這具有開拓性的億萬中國人民所從事的嶄新事業,既無前人之鑑,也無現成的經驗參考,這就完全要靠我們自己去開拓、去創新。

3.7 身體健康素質

人乃萬物之本,人之成才要在體力和腦力上付出艱辛的勞動,這就要求在生理機能上有良好的體質和健康、發達的大腦。身體健康素質應包括三個方面:一是要有結實健壯的身體,能夠抵抗疾病、承受繁重的工作和各種艱苦環境的考驗;二是要有健康、發達的大腦,能夠足以用它來汲取知識和承受繁重的腦力勞動;三是要有良好的心理素質,保持健康人格。

綜上所述,這幾大素質是21世紀人才必需的。它們不是各自孤立的,需要全面、整體、和諧地發展,才有可能形成新世紀人才的基本素質。

4 結束語

二十一世紀是一個社會高速發展的時代,我們需要的是具有全面素質的複合型人才。

軟體開發需要會什麼?軟體開發需要學什麼

軟體開發是根據使用者要求建造出軟體系統或者系統中的軟體部分的過程。軟體開發是一項包括需求捕捉 需求分析 設計 實現和測試的系統工程。軟體一般是用某種程式設計語言來實現的。通常採用軟體開發工具可以進行開發。軟體分為系統軟體和應用軟體,並不只是包括可以在計算機上執行的程式,與這些程式相關的檔案一般也被認...

軟體開發是不是足夠聰明的人才能學

不是,只要你學習過程中能入門,那你可以學習了,軟體開發任何人都可以學習,重要的是看你學習過程中是否入門,這個過程很重要,因為我就是這樣學過來的。怎麼可能!笨鳥先飛,勤能補拙,這些就是例子!用心沒有做不到的事情,那些只是藉口而已。不過興趣很重要!it好學嗎,是不是隻有極聰明的人才能學好 不是的,普通人...

軟體開發需要學習哪些東西,軟體開發需要學什麼

要學習 計算機系統結構 計算機硬體及其軟體基礎 資料結構與演算法複雜性 c 語言 組合語言 計算機網路基礎等課程。 至少熟練使用一種程式語言,資料結構,演算法,資料庫,作業系統等。軟體開發是根據使用者要求建造出軟體系統或者系統中的軟體部分的過程。軟體開發是一項包括需求捕捉 需求分析 設計 實現和測試...