開發即過程!立此紀念乙個IT新名詞的誕生

2021-08-23 15:35:48 字數 2838 閱讀 4236

近日拙文「jazz--開放協作與開發即過程的前奏」參與了 rational技術徵文大賽 見 , 很榮幸獲得了頭名, 見 不過對我個人來說最為得意的事情是在本文之前,文中所提出的「開發即過程」這一概念在google和baidu上搜尋結果都為零!現在所有的搜尋結果都來自我那篇文章。在這個資訊**的年代能吃到第一只螃蟹當然是值得得意的,希望以後也會有人跟著吃,呵呵。

特意立此博文紀念,並貼出全文。

jazz--開放協作與開發即過程的前奏

對於ibm rational的jazz平台投放市場的這條訊息,我是要起立鼓掌的。我一直在思考軟體行業將來會是什麼樣的,我欣喜的看到jazz已經實現了我心目中 的一部分願景。儘管只是一部分,儘管現在還不能確定jazz會否真的改變軟體行業的將來,至少在我看來jazz已經往我所憧憬的將來邁出了美妙的一步,也 許將會是至關重要的第一步。在我而言,無論如何,jazz的出現都是值得書寫一筆的。在我所憧憬的未來裡,「開放協作」和「開發即過程」無疑是兩個最重要 的主題。我之所以為jazz鼓掌,原因就在於jazz讓我在這兩個方面都看到了希望。

「開放協作」或許已經不是乙個新鮮的詞彙了,但是至今為止,開放協作的真諦卻從未真正在軟體開發過程當中成功實現過。可能有人置疑,現在的軟體開發都是在團隊化運作了,這 難道不是協作嗎?在我看來,現在開發團隊裡的各個角色之間的互動僅能稱為合作而非協作。兩者之間的差異在於,合作是各司其職相互配合來做事情;而協作則是不分你我同做一件事情。在現在 的開發團隊裡,設計師設計,程式設計師寫**,配置管理員打包,測試人員測試,實施人員安裝,他們合作而非協作著完成乙個專案。而各個角色所承擔的工作之間基本沒有開放可言,他們奉行的哲 學是你只需要告訴我你要什麼,不要管我是怎麼做的,更不要干涉我內部的決策;他們相信只有有效的控制才能保證**的穩定和可靠。

真正的開放協作體現在web2.0的世界裡。例如wiki,每個人都是貢獻者,每個人都可以創造新的和修改舊的,不分你我。wiki的成功讓我們感受到協作的高效和巨大能量,這是任 何乙個負責編寫百科全書的專家小組無法比擬的。因此在這裡,我所說的未來的協作是指這樣乙個場景:在乙個協作的平台上,任何人既可以是開發者,又可以是測試者;既可以是需求提出者,又 可以是終端使用者;既可以是設計師,又可以是程式設計師……所有人在力所能及的範圍內貢獻著自己的力量而不被侷限於某乙個角色。wiki和開源社群的成功證明了這樣乙個基本事實:在乙個真正協 作的平台上,有規則的向人們開放並不會導致混亂和不負責任的結果,而是恰恰相反。在我看來,在未來的協作場景裡,乙份需求、乙個設計、乙個問題的討論不再侷限在某幾個人或某乙個小組裡 ,不再需要把文件發出去à反饋à修改à再發出去……這樣低效的反覆。不論是設計師、程式設計師、測試員、使用者,都可以參與共同編寫專案文件,就如同wiki裡的詞條一樣,經歷無數人的共同編寫以 後,留下了最正確的那乙個版本。

儘管jazz目前並沒有完全提供這樣的協作,也未必完全認同這種理念。不過jazz的確是目前為止距離真正協作最為接近的開發平台。從jazz採用的開發模式——開放商業軟體開發 模式(open commercial software development)可以看出這種開發和協作的倪端。jazz.net允許客戶在專案早期參與進來就體現了有效協作的精神。在這種開發模式下,客戶不再被動的接受結果 ,他們可以成為設計的參與者、早期版本的測試者、甚至專案決策的參與者。

長久以來,開發被歸為技術範疇,過程被歸為管理學範疇。學科分類如此,社會分工也如此。自從軟體危機發生,人們引入軟體工程學以來,軟體技術和軟體方法一直是在兩個分 枝上發展的。軟體技術從結構化設計到物件導向,從j2ee到soa;軟體方法從iso到cmm,從rup到敏捷;然而軟體成功最為關鍵的這兩項技術卻遺憾的處於一種分離的狀態。在乙個典型的專案裡,質 量部門、專案經理或過程小組設定乙個軟體開發過程,搭建管理工具;技術經理、架構師或設計師做出技術決策,決定開發環境;於是,開發人員在學習軟體技術和使用ide工具之外,還要學習和 遵守軟體過程,使用軟體過程工具。開發人員懂得軟體過程是必不可少的,但就他們的感受而言,在寫**的同時遵守軟體過程和使用過程管理工具多少都是乙個負擔;尤其當軟體過程過於複雜以 至於拖累開發效率的時候。而我所憧憬的「開發即過程」是這樣一種場景:軟體方法服務而不是管理軟體開發,它隱藏在開發背後,開發人員在開發過程當中感受不到過程的存在。這正如一條高度 自動化的生產流水線,,生產過程隱藏在流水線背後,流水線上的工人只需要專心的完成自己的裝配工作。

開發即過程意味著,我們需要這樣乙個平台,它將軟體方法和軟體技術整合在一起,開發人員只需像流水線上的工人一樣,拿到自己的任務,完成自己的任務然後提交自己的任務 。而軟體方法則在背後默默完成配置管理、質量管理、專案管理等軟體方法範疇的工作。

jazz再次贏得了我的掌聲。這並不是因為jazz整合了配置管理、質量管理等工具,更重要的是jazz將軟體過程管理也整合到了開發工具當中。可配置的開發流程讓jazz擁有了定製 高度自動化生產流水線的可能,jazz不僅僅是實現軟體技術的ide,同時jazz也是開發流程的管理平台。我很高興能看到這樣乙個場景:軟體管理人員在jazz裡定製開發流程來體現軟體管理方法, 將軟體管理工具整合到jazz裡實現對開發的管理;開發人員使用jazz完成開發工作任務的同時也完成了軟體管理的任務。我相信如果流程定義適當,jazz的這個特性一定會受到程式設計師歡迎並大幅提 高生產效率!

掌聲之餘不得不說,現在的jazz僅僅是乙個開始。jazz對「開放協作」和「開發即過程」這兩方面的支援也不是完美的,例如離我心目中真正的「開放協作」也有一些距離。並且 我對jazz的期望可不僅僅是「開放協作」和「開發即過程」,而是還有更多的期望。例如專案文件協作(不僅僅是分享,類似googledoc)、自動社群資訊整合(將開發過程社群化)、**地圖( 圖形化快速定位**)、**依賴rss(獲知所依賴**的變更)、虛擬共享計算環境(這需要通過雲計算獲得,我期望異地協作者不僅僅是通過即時通訊工具等溝通,而是就如同兩個人併排坐在 一台計算機面前)等等……這些想法在我腦子裡很久了,今天就這個時機簡單的把它們羅列了一下,等以後我將再撰文詳細討論這些願景的細節。

最後,期待jazz能夠成功,並且由此引發軟體行業的下乙個大事件。

乙個軟體專案開發過程

乙個專案的過程是怎樣的,不同公司和不同的開發人都有各自的理解,來吧,一起交流下。1 專案的可行性分析。主要參與人員對專案了解,說一下自己的看法,對軟體的生命週期進行概略討論,是否能做,難點可能是 軟體開發周期是怎麼樣。2 專案可以做的情況下,與終端使用者進行聯絡與溝通,對使用者的真實需求進行分析,需...

記下uniapp開發乙個次過程 心得

概念開發環境 c端架構 s端設計 開發心得 參考資料 基本真機 最好ios 安卓都有 插上去執行就可以跑了 ios發布證書 最低個人688rmb 之前有免費證書但不能用了 記得繫結uuid 安卓證書 這個可以免費網上申請 chrome 在寫頁面布局時候大可不用真機 技術棧 偏向前端 c端大致主要都是...

軟體開發5個過程,每乙個過程都是專業的技能!

軟體開發一般分為五個階段 1.需求獲取過程以及問題的定義 規劃 此階段是軟體開發與需求原型的最初共同討論,主要確定軟體的開發目標及其可行性。可以引入trufun plato uml工具進行專案原型的獲取。2.需求分析 在確定軟體開發可行性的情況下,對軟體需要實現的各個功能進行詳細需求分析。需求分析階...