四年軟體開發的風雨歷程

2021-04-09 10:56:06 字數 2716 閱讀 9715

似乎還在昨天,剛步入工作崗位的我在網上看到一篇「我的東軟四年」,讀後我深有感觸,寫了一篇《我的虹軟一年》,這已經是三年前的事情,而今自己已經在軟體行業度過了四各年頭,而這四年裡,自己的工作牌上始終有這樣兩個字:虹軟。

圖形開發

我 是在虹軟快速發展的階段進入這家公司的,進入公司後被安排在公司的photo studio產品開發組,這個產品一直以來是公司pc上的核心產品。接著公司進入戰略重組階段,開始漸漸從網路產品淡出,進軍移動市場。乙個星期後,我被 告知被調入新成立的移動部門,被安排在移動平台圖形引擎開發小組。公司很重視該引擎的開發,小組成立之初有4個成員,兩個博士,乙個碩士,還有我,這是一 個充滿挑戰的工作,對於剛走走出校門我來說,也是乙個非常不錯的學習過程。我非常榮幸能進入這個充滿熱情的小組,每個人都積極分享自己的思想,每個人都希 望能盡早看到公司的第乙個圖形產品的問世。由於引擎是針對移動平台的,所以有三個問題我們不得不面對:記憶體、效能和渲染質量。經過一段時間的開發,我們陸 續推出了該引擎的1.0版本,然2.0版本和3.0版本,這也是公司第乙個圖形技術專利產品。由於該圖形引擎需要大量的測試資源,當時流行的flash便 成為了我們的向量資料資源。所以在圖形引擎推出的同時,我們也開發出了針對移動平台的flash player。

開發出了圖形引擎後,我們 進入了圖形產品的開發:svg(scalable vector graphic) player的開發,svg這是乙個開放標準的向量檔案格式,也是一種新興的檔案格式,標準由製作htmil標準的w3c組織制定,至今被認為將是3g手 機上乙個很重要的應用。svg是基於xml語法的的文字向量格式檔案,支援動畫,動畫是基於**il語法的,這意味著使用者將很容易的在html中插入動 畫,並可以通過dom(document object model)來實現與web頁面的互動。這是我負責的第乙個比較大的專案,由於事先對svg並不了解,所以這個專案的開發也是從學習開始,準確地說,整個 專案的開發都伴隨著學習過程,所有開發成員都是邊理解,邊開發。最終我們完成了svg1.1版本中針對移動平台的svgt(tiny)和svgb (basic)版本。(http://www.arcsoft.com/products/mobiledevicesolution/**********player.asp)

這 段時間是非常值得懷念的,這是乙個非常不錯的團隊,工作上,小組成員間有著非常活躍的交流,不論是多年的程式前輩,還是新手,不論是博士,碩士,還是學 士,大家都在積極分享自己的思路,並努力來將我們的產品不斷完善。生活上,大家也都是摯友。這是一段充滿挑戰而又充滿快樂的日子。

影象開發

接 下來的日子,部門開始一些改革,取消了所有部門經理職務,只保留程式經理,並且希望所有程式設計師隨時能在多個產品線間切換,而且能高效的工作,這意味著每個 人將不在是在乙個穩定的開發團隊中,隨時都可能因為高優先順序產品的需要而被調動。這種模式有點像車間生產線。但這種模式並沒有像預計的那樣達到明顯提高工 作效率的效果,反而還失去了團隊,並由於過多地調動,也失去了一些員工。在這個階段,大家開玩笑時都稱自己為游擊隊員和消防隊員。

我也在這 個階段被調往image小組,做的第乙個image產品是funnyface i,該產品在dr. wang帶領完成。利用這個產品,使用者可以很容易的將人物相片中人物的表情進行變換,支援哭、笑等表情,通過調整強度,還能達到一定的搞笑效果,這個產品 後來也被申請了技術專利。在很長的一段日子,dr. wang經常跟我提起這個專案,他說這是乙個很成功的專案,自從技術開到產品,**基本上沒有做修改。

這是dr.wang的第乙個專案, schedule定得比較緊,整個開發過程很緊張,大家都在努力去做完並做好這個專案。這個專案開發過程給我的印象也比較深,上班就開始寫**,到了吃飯 時間,最快速度吃晚飯,吃完飯後趕緊繼續寫。當時wang還覺得進度慢,記得當時我情緒有些激動,說了句:「程式設計師是人,又不是牛」。我跟他提到,不講究 **質量,很快就能完成任務,但我個人不希望這樣,後來也得到了他的理解,這個專案是我們第一次合作,從這以後,我們也成為了很要好的朋友。

在完成image adk的1.0版本後,被調往其他專案組,負責funnyface ii adk的開發。在funnyfaceii中,在funnyface ii中,我們新增了人臉識別技術,在funnyface i中可能需要進行簡單的互動才能達到表情變換的目的。而在這個新版本中,無需任何互動,使用者便可以輕鬆完成表情的變化。並且在這版本中新增了乙個新的功 能,我們稱之為visual surgery,使用者可以根據需要,更換自己的一些臉部器官,或是給自己戴上眼鏡、新增鬍鬚,而這些新增物會無縫的吻合到指定相片的臉部,有點像電影《變 臉》中那樣。

在完成funnyface ii開發後,繼續被調回image adk小組,這時adk小組也遇到前所未有的困難,由於與客戶同步開發,過於追求功能,因此內部缺少必需的模組設計,每乙個改動都顯得很棘手,而且不得不 面對改不完的bug,更令人痛苦的是每次bug的修復都可能導致更多地新bug,內部模組的設計已經勢在必行。而我這時的使命便是完成內部模組的設計,經 過抽象、提煉,在image adk內部逐漸形成了幾個公用模組,來負責相關公用邏輯,由於這些公用模組已經覆蓋了所有功能模組所需的關鍵邏輯,所以隨著這些模組的完善,bug漸漸減 少,整個adk也趨於穩定。

這時部門似乎已經意識到我們更需要穩定的團隊來進行一些核心產品線的開發,部門內部也開始強調穩定團隊的建設, 而image團隊便是其中乙個,作為這個團隊的一員,我也正在憧憬著該團隊能成為乙個理想的團隊:成員間積極協作與交流,所有人都在努力提公升產品的競爭 力,並且大家都很快樂的工作著。即使這些目前跟現實還存在著一定的差距

回首這四年的軟體開發過程,有經驗,也有教訓。整個軟體開發的過程對於我來說,也是乙個不斷學習的過程。希望自己能夠通過不斷的總結,來積累經驗和吸收教訓。非常感謝在這四年裡,曾一起奮戰過的同事們,從他們每乙個人身上,我都學到了很多。

四年傳統軟體程式設計的反思

本人一直從事.net開發的工作,四年來換過兩家公司。第一家是個公司內部開發軟體使用,第二家則是給客戶開發軟體,這兩家的軟體都無法成為產品,只能算是專案。正如標題中我強調的是傳統軟體一樣,四年中開發的專案,給我最深刻的印象是,技術含量比較低,開發的重點不是產品本身,而是完成專案開發的這個工作過程。我們...

軟體開發理論之發展歷程

sasd ooad cbsd soa 實踐論認為 從實踐提公升到理論,再由理論指導實踐,由此向前發展。20世紀60年代末期出現 軟體危機 軟體產品開發周期長,錯誤多,難以維護和適應修改。當時的荷蘭物理學家e.w.dijkstra提出 結構程式設計方法 由此出現了軟體開發的最早理論 結構化分析和結構化...

軟體開發的四維

在軟體開發,有四個維度是值得關注的。1 人員 人是軟體開發中最重要的因素。用人必須先信任人,培養人,給他乙個發展的空間,讓他看到乙個希望,讓他感到工作的工程是乙個自身價值公升值的過程。任何關注提高生產性的組織都必須先有一套良好的人員激勵,團隊合作,員工選擇以及培訓的機制。2 過程 軟體開發的過程基本...