58w哈尔滨麻将
服務支持
app開發資訊
小程序開發資訊
軟件開發資訊
業界動態
公司動態
聯系我們

了解更多詳細信息請致電

4000-670-790

或給我們留言

在線留言

您所在的位置: 首頁 > 服務支持 > 知識中心 >

軟件開發領域知識-互聯網軟件開發

作者:深圳軟件開發公司 點擊量: 2019-12-09 11:10
內容導讀: 互聯網提供了低成本的萬物互聯的物質基礎,當然這其中最重要的是人與人的互聯。這種低成本的信息交流方式,可以有效解決傳統社會中由于信息不對稱、信息交流成本高等造成的問題。比如現在的電商、打車軟件等...... ...

  互聯網提供了低成本的萬物互聯的物質基礎,當然這其中最重要的是人與人的互聯。這種低成本的信息交流方式,可以有效解決傳統社會中由于信息不對稱、信息交流成本高等造成的問題。比如現在的電商、打車軟件等,通過直接連接生產商和消費者,降低了交易成本,獲得了許多人的認同。

軟件開發領域知識

  互聯網的發展經過了兩個階段,在第一個階段,人們主要使用PC個人電腦訪問互聯網;第二個階段,以蘋果公司2007年發布第一代iPhone為起點,移動互聯網迅速發展,人們除了使用電腦訪問互聯網外,使用手機訪問互聯網比例迅速增大,同時人們對應互聯網的使用越來越偏向于個人目的。

  互聯網改變了世界上的許多行業。而軟件行業作為與互聯網行業聯系最深的行業之一,互聯網的發展對軟件開發提成了什么新的要求?有沒有對軟件開發方法產生影響?現在的軟件開發方式和互聯網未出現前有無不同?

  一、 互聯網時代軟件產業的不同

  互聯網普及要求更多的軟件應用,這些軟件和之前的軟件有所不同。在互聯網大規模普及前,軟件主要用于科學計算、企業業務需求、辦公自動化等領域,主要針對企業用戶,一般直接針對消費者的軟件較少,很多軟件是單機版或運行在一個局域網中。軟件的主要用戶是企業用戶。互聯網普及后,尤其是移動互聯網普及后,社會對軟件的需求出現了新的趨勢,現在越來越多的軟件開發是主要以個人消費者為直接用戶的,這使得對軟件產生了新的不同要求。

  1、 對某一款軟件而言,個人消費者用戶往往數量很多,他們的需求多變并難以把握。個人消費者的需求往往不容易通過傳統企業軟件開發的方式,比如訪談、問卷調查等獲取。他們的需求不會和一定工作流程或技術有關,更多的是個人的需求,很多并不明確,不容易獲取。比如在社交應用大規模流行前,很多人無法想象,在吃飯前對食物進行拍照并分享給朋友的需求如此廣泛。

  2、 消費者用戶往往不喜歡復雜的應用,不愿意接受復雜的培訓(企業員工也不愿意,但往往企業會提出要求強制進行培訓),從而對軟件用戶體驗的要求非常高。

  3、 消費者用戶往往不像企業,他們沒有足夠的動機和預算(也不傾向于)來購買軟件,免費軟件逐漸流行(商業模式是另外一個話題)。用戶對于免費軟件和購買了許可證的軟件的心態有所不同。付費購買了軟件商業許可證的用戶會認為“顧客是上帝”,軟件產品不能有bug,而且因為已經付費,為了避免前期投入浪費,即使不滿意,他們也不會很快的遷移到其它類似產品。而免費軟件的用戶,他們對軟件產品的bug會有更高一些的容忍度;但他們會用卸載來表示自己的不滿,并且遷移到別的競爭產品的速度會很快(除非軟件產品本身有非常好的用戶粘度,比如社交關系網絡)。

  面向企業的軟件市場仍然存在,傳統軟件開發方法論對于這類軟件開發的經驗仍然適用,但對于互聯網時代新的軟件形態,新的一些軟件開發方法已經出現。

  互聯網時代軟件的分發渠道和用戶反饋方式發生了巨大的變化。在互聯網發展的早期階段,人們在開源軟件的網站上可以下載到最新的軟件;現在人們習慣于從各種應用商店下載軟件(App Store, Google Play等)。總之,軟件開發者可以使用互聯網使得自己的軟件在非常短的時間內、低成本的將自己的軟件分發到目標用戶,為軟件的高頻率發布提供了可能。通過互聯網,普通用戶可以方便的對軟件提出自己的反饋意見,可以是反饋軟件的bug,也可以是自己對軟件新需求。這些信息可以通過網站論壇、Email、應用商店的評論等等迅速反饋給軟件開發者。在沒有互聯網這種媒介前,人類歷史上沒有任何的通訊工具可以支持進行多對多的如此頻繁的信息交流。這些,為新的軟件開發模式提供了基礎。

  二、 開源軟件開發模式

  伴隨著互聯網在1990年左右在全球的迅速發展,最先利用互聯網進行軟件開發的是自由軟件(freeware),最具代表性的是Linux(現在我們一般使用開源軟件open-source software來描述Linux,但開源軟件這個名詞1998年才出現。自由軟件和開源軟件兩個詞的確切定義和相互關系比較復雜,請參考http://opensource.org/osd )。

  Eric S. Raymond (簡稱ESR)在1997年發表了《大教堂與市集》(The Cathedral and the Bazaar)一文(簡稱CatB),闡述了Linux的開發模式和他自己對軟件開發的一些看法,產生了重大影響,1998年Netscape公司受該文影響開源了其瀏覽器的源代碼。

  在CatB一文中,ESR解釋了Linux的成功,它背后的軟件工程方法學原理,包括黑客的文化等等。其中,ESR提到:

  “Linux是第一個有意識并成功的把全世界當成它的頭腦庫的項目。我不認為Linux的孕育和WWW的誕生相重合是一個巧合,而且1993-1994年Linux發展的早期正是互聯網服務提供商(ISP)快速發展和互聯網獲得社會主流認可爆發式增長的時期。Linus是第一個學會在互聯網普及的情況下,利用新游戲規則的人。”

  ESR提出了描述了Linus開發的幾點經驗:

  “將用戶作為協作開發者是快速改進代碼和有效調試的最有效方式”。

  “早發布。常發布。傾聽用戶。”

  “如果有足夠多的beta測試人員和協作開發人員基礎,幾乎所有的問題都可以被快速定位并被某些人解決。或者,不正式的說,如果有足夠多的眼睛,所有的bug都是淺顯的。我稱這為Linus定律。”

  在Linux的開發過程中,參與者可以基本分為兩類,一類是開發者;一類是使用者。開發者開發和改進了軟件后,迅速發布在一個可以公開訪問的網站上,其他開發者和用戶可以訪問到可運行軟件和源代碼。其他用戶在使用該軟件的過程中會發現軟件的bug,并在這個網站上進行反饋。而開發者可以看到這些反饋并根據這些反饋修復bug;同時,用戶和開發者也可以使用互聯網交流對軟件功能的需求,從而確定軟件的下一步開發目標,迅速演進軟件。

  這樣的開發方法和實踐在Linux和其它很多開源軟件的開發過程中已經被證實是非常有效的軟件開發方法。

  三、 敏捷軟件開發

  軟件過程是軟件工程領域的一個重要組成成分,對于軟件開發的進度和質量都有著重要的影響。我們可以看到,在互聯網大規模開始應用以來,在同一時間維度上產生的軟件過程主要是各種敏捷軟件開發方法。而且,當前有大量案例和公開資料顯示敏捷軟件開發方法已經成為一種主流軟件開發方法。

  敏捷軟件開發主要由有經驗的軟件工程師和咨詢師提出。在1997年左右,Kent Beck在1996年成為克萊斯勒C3項目(克萊斯勒綜合報酬系統)的負責人后,提出了極限編程的開發方法。2001年,來自業界的十七位軟件工程實踐者在美國猶他州探討軟件開發如何取得成功,研討會期間,他們形成了一些關于軟件開發的共同觀點,即敏捷宣言:“個體和互動勝過流程和工具;可以工作的軟件勝過詳盡的文檔;客戶合作勝過合同談判;響應變化勝過遵循計劃”。該宣言定義了敏捷軟件開發的核心價值觀和原則,而這些原則具體是由敏捷實踐以及敏捷實踐的組合----敏捷方法來實現的。

  隨著敏捷軟件開發的發展,敏捷方法的數量逐漸增多,大約有20種左右的方法,當前重要的敏捷方法主要有Scrum、XP、Kanban.

  伴隨著敏捷軟件開發的發展,關于敏捷軟件開發和傳統基于計劃的軟件方法的爭議也越來越多。Nerur給出了兩者的區別:

  表1 傳統軟件開發與敏捷軟件開發對比

  傳統軟件開發 敏捷軟件開發

  基礎假定 可以完整描述系統需求,系統是可預測的,通過周密、完整的計劃來開發軟件。 基于需求變更和快速反饋,通過小團隊持續設計、測試、改進完成高質量的軟件開發。

  管理風格 命令和控制 領導力和合作

  知識管理 顯式 非正式

  交流 正式 非正式

  開發模型 生命周期模型(瀑布、螺旋或其它變種) 演進-交付模型

  組織結構 機械的(正式的)大型組織 靈活的小型組織

  質量控制 嚴格的計劃和控制,后期大量測試 持續演進需求、設計、方案。持續測試。

  Version One公司每年都會進行一次全球敏捷開發的調查,已經進行了9次。雖然這不是嚴格意義上的學術研究,但在工業界和學術界的影響力都非常巨大,是持續時間最長,參與人數最多的敏捷調查。2015年發布的第9屆敏捷狀態調查報告指出94%受調查者所屬企業使用敏捷方法,而且受調查者中有35%的企業規模超過5000人;同時45%受調查者所屬企業中多數團隊使用敏捷方法。報告宣稱的敏捷帶來的益處排在前3位的是:(1)87%認為敏捷幫助他們獲得了管理變更優先級的能力;(2)84%認為提高了團隊生產率;(3)82%認為提高了項目可視性。

  敏捷宣言的起草者之一Martin fowler,在他的文章“新方法論”中描述到敏捷軟件開發和傳統方法的區別主要在于敏捷方法是自適應的,而傳統方法是可預測的;敏捷方法以人為中心,而傳統方法以過程為中心。

  四、 互聯網軟件開發模式

  基于互聯網時代軟件用戶的特征、需求、軟件分發模式、用戶可用的意見反饋模式,合理的開發模式應當是:

  1、 將用戶看作協作開發者和beta測試人員。

  2、 在團隊內部使用敏捷軟件開發方式,引入敏捷的思想和實踐。

  4.1將用戶看作協作開發者和beta測試人員

  尊重用戶,將用戶視為軟件開發成敗的最關鍵因素之一,如果沒有這種一致的認識是很難順利進行互聯網模式軟件開發的(在營銷中有粉絲經濟的說法,本文僅討論軟件開發)。

  4.1.1 提供合理、通暢的途徑獲取用戶反饋

  可以開設專門的論壇,比如小米公司和魅族公司的論壇都非常活躍,當中有大量的用戶反饋系統bug,同時提出新功能的要求和建議;也可以使用應用市場中的反饋,但這種方式雙向交流不方便;或者采用其它交流手段。可以設計一些模版幫助用戶方便的提交bug和新功能,這樣也可以方便團隊成員利用用戶反饋知識。

  4.1.2 團隊中的開發人員必須直接獲知用戶反饋

  應當要求團隊中的每一位開發人員都直接參與論壇或其它途徑和用戶的交流,這會使得團隊的所有成員直接的獲取用戶反饋,演進軟件。團隊的成員會在這種交流中感到自己工作的價值,并且直接從用戶處感受到壓力;用戶會在和團隊成員的直接交流中感到自己被尊重,也有利于提高用戶滿意度和口碑。

  4.1.3 提高反饋頻率

  在互聯網軟件的開發中用戶反饋是下一步開發的基礎和依據。反饋的頻率十分重要,開源軟件中提出“早發布、常發布”的理念,這對互聯網軟件的開發也同樣重要。MIUI的發布頻率為一周,早期Linux甚至每天發布一個內核的新版本以獲取用戶的反饋。

  4.2敏捷軟件開發

  4.2.1 為什么?

  大部分的互聯網軟件都存在需求不夠明確和變更速度快的問題,從當前可見的學術論文、專注、經驗軟件工程研究結果來看,敏捷軟件開發相對于傳統軟件工程方法而言更加適應互聯網軟件需求模糊、快速變更的特點。所有的敏捷軟件開發都是迭代式軟件開發,而且當前的趨勢是迭代的周期越來越短,在每一次迭代的開始都可以成本很低的引入新的功能(Kanban等方法甚至支持在更短的時間間隔內變更需求)。敏捷軟件開發中有很多實踐可以有效的支持迭代式軟件開發。比如Scrum方法的過程框架,有助于保持良好的開發節奏;比如eXtreme Programming方法中的測試驅動開發、持續集成、簡單設計、重構等實踐幫助開發團隊進行演進式設計。

  4.2.2 建議的敏捷軟件開發方法

  敏捷軟件開發有多種具體方法,具體采用哪種方法每個團隊都有自己的考慮。根據Version One的市場調查,當前采用率最高的方法是Scrum(56%),Scrum/XP(10%)。因為Scrum中主要是過程框架和管理實踐,建議使用Scrum/XP混合方法。

  在使用敏捷軟件開發方法時,應當注意必須同時引入敏捷的價值觀和實踐。價值觀是知識和理解的一個抽象層次,價值觀是在某種處境中我們喜歡或不喜歡某事情的根源。比如XP的價值觀包括溝通,簡單,反饋,勇氣,尊重。沒有價值觀,實踐很快會變成生搬硬套,缺乏目的或方向。如果只有價值觀和沒有實踐,因為價值觀往往是非常抽象的內容,我們將可以以價值觀的名義進行任何的活動。實踐是清晰明了,可以讓價值觀清晰可見。每個人都知道我是否參加了早上的站立式會議,但我是否重視溝通并不是那么明確和具體的。

  敏捷軟件開發的引入和具體實踐開發有大量的文獻討論,本文不做過多涉及。初學者建議參考以下網站:

  http://agileclub.org/%E6%95%8F%E6%8D%B7abc/

  五、 不適合使用互聯網開發方法的情況

  任何一種軟件工程方法學都不可能適配所有的軟件開發場景和團隊。

  如果你開發的軟件是面向企業的軟件,你的軟件需求是明確的并且變更較少,傳統計劃驅動軟件開發方法或許更加合適。

  另外一個需要考慮的問題是,不建議在一個互聯網項目啟動初期引入大量用戶的介入。大量用戶的作用更好的發揮場景是功能的演進和尋找bug。在早期,團隊應當向用戶展示一個有價值有新意的項目,吸引用戶的參與,用戶可以基于這個初始的思想演進出更完善的功能,而最初思想的提出仍然應該由開發團隊完成。如果寄希望大量用戶討論就能得到一個有新意的項目,可能的結果只是混亂的討論而已。

  六、 一些思考

  大家都在中學政治課中學過“經濟基礎決定上層建筑”的說法,可以認為經濟基礎指生產力,上層建筑泛指一切政治、法律、道德、社會制度等(可能不嚴謹)。我們可以將互聯網工具看成是生產力,而在互聯網時代的開發模式則是一種制度是上層建筑。如果從這個角度來看,由于互聯網提供了廉價、即時、廣泛的信息傳播方式,互聯網開發模式的產生是一個必然的結果,所以Raymond說Linux開發模式的誕生和互聯網早期的蓬勃發展出現在同一個時期并不是一種偶然。敏捷軟件開發的興起在2000年前后,距離互聯網的誕生有一定的滯后,但在互聯網改變人類的這20年中,也獲得了長足的發展。而在此期間,傳統計劃驅動軟件工程方法的進展偏少。這是否也表明,敏捷方法更好的適應了互聯網時代的軟件開發需求?

創新夢想:www.fqtwn.tw】個性化軟件定制開發專家!提供專業的軟件開發、手機APP開發、微信開發、小程序定制服務!

本文關鍵字: 軟件開發 軟件開發知識
業務咨詢
咨詢在線客服
合作咨詢
咨詢在線客服

我們的微信

我們的微博

點擊圖標進入幫助中心
v 58w哈尔滨麻将 球探体育比分手机版 下载沈阳娱网棋牌 复式双色球多少 鸿祥娱乐平台 ag捕鱼王2技术打法图解 吉林快3助赢软件手机版 北京11选5通三 双色球开奖时间 大乐透开奖时间 nba比分数据