ArcGIS軟體研發背後的故事 Esri研

2021-06-27 23:21:16 字數 4010 閱讀 3744

本文**於gis空間站 

摘要:scott d. morehouse,esri研發總監,arcgis產品總設計師,esri gis技術的靈魂,40年來引導全球gis技術進步的核心人物。scott morehouse作為幾代esri軟體的首席設計師,負責制定esri整體軟體技術戰略,系統架構及產品規劃,領導著一批高效的軟體工程團隊。從最初的 arc/info 1.0,到現在的arcgis 10,morehouse先生全面參與系統設計、搭建、發布及完善的整個過程。9月16日下午,來華參加「2010 esri中國華北區域使用者大會」的esri研發總監scott d. morehouse 先生,現身北京師範大學,為北京高校的gis教師、學生以及gis 從業者帶來了一場主題為「how arcgis is made--ideas and people behind arcgis」的報告,揭秘arcgis研發背後的故事。以下是這次演講內容的摘錄。

arcgis研發背後的故事

——esri研發總監scott d. morehouse北京師範大學講演摘錄

背景資料:scott d. morehouse,esri研發總監,arcgis產品總設計師,esri gis技術的靈魂,40年來引導全球gis技術進步的核心人物。scott morehouse作為幾代esri軟體的首席設計師,負責制定esri整體軟體技術戰略,系統架構及產品規劃,領導著一批高效的軟體工程團隊。從最初的 arc/info 1.0,到現在的arcgis 10,morehouse先生全面參與系統設計、搭建、發布及完善的整個過程。

9月16日下午,來華參加「2010 esri中國華北區域使用者大會」的esri研發總監scott d. morehouse 先生,現身北京師範大學,為北京高校的gis教師、學生以及gis 從業者帶來了一場主題為「how arcgis is made--ideas and people behind arcgis」的報告,揭秘arcgis研發背後的故事。以下是這次演講內容的摘錄。

「我與jack一拍即合!」

我生於2023年。在大學期間,我的學習涉及電腦科學、地理學、生態學、土壤學以及其他的地球科學。這讓我開始以乙個全新的視角看世界,也就是,將整個世界看作乙個系統。

大學畢業後,我進入哈佛大學的一間實驗室做程式設計師,開始軟體研發,從事早期的gis工作。但我們研發出的軟體能否被真正的使用者使用,是否可以進行很好的演示,這些問題始終困擾著我,而且我希望構建的是一種能夠得以廣泛應用,並具有長久實用性的軟體系統。

2023年,我遇到了jack dangermond(esri公司總裁)。當時jack有一家很小的諮詢公司,利用地理學和計算機提供規劃和位置服務。在聊天時,我們發現對方具備的正 是自己需要的。於是,我與他一拍即合。隨即,我把家從massachusetts(馬賽諸塞)搬到了california(加利福尼亞)。

就這樣我進入了esri。那年我26歲,是esri最年輕的成員,還做了領導。

那時候esri有30名員工,主要是做一些專案諮詢,為客戶提供數位化地圖服務,並撰寫專案報告。有時候,客戶希望得到我們在工作中使用的軟體,這樣他們就可以更改資料,然後自己出具報告。

「這就是arc/info 名字的由來。」

「arc」一詞**於數學。在圖形學中,有兩個名詞——弧線(arc)和點(node)。arc/info 的第一項創新就是自動構面。你只需畫一段弧線(arc),然後讓系統去建立面狀圖。我們將這一方法稱為數位化弧線-弧線-點,於是我們將建立的第乙個系統 稱為arc。(這是我們一群從事軟體開發的人想出來的名字,並沒考慮到是否便於市場推廣)這就是arc的來歷。

在最初幾年,arc是乙個用來數位化建立面狀圖以及進行圖形疊加的系統。後來,人們希望在上面附加屬性圖表,那時由於我們用檔案管理系統去管理圖表,因此我們將此稱為info。所以,arc指繪圖,info指圖表,這就是arc/info 名字的由來。

當你在了解gis歷史的時候,你會發現arc/info 十分強大。它可以在計算機上顯示諸如點﹑線﹑麵等地理特徵,並通過資料庫管理工具將描述這些地理特徵的屬性資料結合起來。儘管是乙個非常簡單的概念,但是 你可以用它做許多不同的事情:你可以通過只畫「線」不畫「面」來建立乙個街道地圖;可以只畫「面」不畫「線」來建立乙個林區地圖;等等。

「我只有乙個要求……」

esri對於軟體研發有著一貫的宗旨。歷經多年,始終未變。其中最重要的一點是要構建具有廣泛適用性和長久實用性的系統。我希望建立的系統是乙個不只為某 個專案和某位使用者服務的系統。所以,當我開始我的第乙份工作、當我和jack dangermond開始共事的時候,我就告訴他,我只有乙個要求——我不會把時間用在只為乙個使用者、乙個專案服務上,我的工作是為了永續性的發展。我們 會為滿足使用者需求去搭建系統,但同時必須明確這個系統也能夠在未來滿足其他使用者的需求。

「合格的esri程式設計師=計算機+地理學。」

arcgis 的研發工作有多個團隊參與。我們有大約20個團隊,例如geodatabase團隊、3d團隊、製圖團隊、網路系統團隊,等等,還有負責發布工作的團隊。 每個團隊大約10到15人左右。團隊中包含程式設計師和產品工程師。程式設計師負責系統設計,軟體架構。產品工程師也負責系統設計,但同時還負責使用者體驗、文件制 作,以及軟體測試等職責。他們在一起工作。比如,我和我的同事cliff brown,我負責管理程式設計師,他負責管理產品工程師,但是我們坐在一起,也工作在一起。

我對程式設計師的要求是不僅懂程式設計,還要懂地理學或者地球科學。符合esri要求的、理想的軟體開發人員要麼本科學地理學專業,研究生學計算機專業,要麼 反過來,本科學計算機,研究生學地理學。當然,我們也有純計算機人員,他們做一些核心的軟體工程、雲等工作。軟體開發人員必須知道為什麼這樣做,而不是只 知道能做什麼;同樣,乙個地理學研究員也需要知道那些好的理論能否被應用於實際,還是它們只是學術的研究。

「我們按照一定的程式做事。」

首先,我們需要明確和理解接下來要做的事情,並設定乙個時間段,比如,12個月,18個月,或者6個月,我們稱這個階段為「構想」。怎樣判斷我們的構想能 否實現?這需要將使用者的要求、當前科技的發展、以及技術人員的興趣、能力和天分,這三點結合起來。如果目前的科技還無法滿足使用者的要求,那就無法實現。這 就是為什麼我在一開始說,我們絕不能對使用者惟命是從。我希望,使用者需要我們是因為我們可以為他實現價值增值,讓他的公司業績更好,而不是因為我們能寫代 碼。

當然,對於使用者的需求,我們要認真傾聽。在使用者的需求中,一些是大問題,比如,「我們希望系統更加安全」,「我們要求可以用在移動裝置上」;另一些是小故障,比如,「軟體執行出現了bug」。這兩種需求我們都負責解決。

隨後,我們進入操作階段——搭建軟體系統、設計軟體特性,就像建築師設計建築物那樣。先要有個想法,然後開始設計,隨後發現這個想法並不那麼好,於是從頭 再來,設計,然後實施。進而可能發現這個設計還是不好,於是又從頭來,再設計。這是乙個迴圈,我們可以從中學到很多 。

接著,對軟體進行測試,確保執行沒有故障;測試軟體的實用性,看是否滿足使用者的需要。我們會邀請使用者過來參與我們的測試,我們稱這個階段為「整體測試」,用整個系統解決問題。

最後是實施階段。目前我們正在推廣arcgis 10,其中包括一部分本地化的工作,arcgis 10中文版即將發布。

「29年從未公升職。」

很多軟體開發員都在esri工作了很長時間,從中積累了相當豐富的知識和經驗,他們甚至已經將軟體開發作為了自己全部的職業生涯。一部分軟體開發員我們稱 為「高階開發員」。比如,我有個同事一生都在致力於圖形疊加,他就像個地圖科學家。另一些開發員則是團隊領導者。這是乙個頗具挑戰性的工作。因為他們要在 設計程式的同時,激勵、指導團隊中的其他成員。我們稱之為「開發員領導者」。

而我自從2023年進入esri後,就一直從事軟體研發工作。這麼多年過去了,我從來沒有公升職。因為從進入這家公司開始,我就負責所有與計算機相關的事情,事無鉅細。我從來沒想過如果我不再管這些事了,這些工作該交接給誰。

「做自己樂於做的,是一種享受。」

我熱愛我的工作、我的同事、我的使用者以及jack,還有esri。「即使不拿薪水,我和其他許多同事也一樣會繼續做下去。因為我們享受這份工作,享受它 帶給我們的挑戰。」如果你剛好可以從事你所喜歡的工作,並且你能夠勝任它,那就是一種享受。「可能我在某種程度上有些理想化,但我就是這麼想 的。」scott說。

ArcGIS研發背後的故事(下)

合格的esri程式設計師 計算機 地理學。arcgis 的研發工作有多個團隊參與。我們有大約20個團隊,例如geodatabase團隊 3d團隊 製圖團隊 網路系統團隊,等等,還有負責發布工作的團隊。每個團隊大約10到15人左右。團隊中包含程式設計師和產品工程師。程式設計師負責系統設計,軟體架構。產...

ArcGIS研發背後的故事(下)

合格的esri程式設計師 計算機 地理學。arcgis 的研發工作有多個團隊參與。我們有大約20個團隊,例如geodatabase團隊 3d團隊 製圖團隊 網路系統團隊,等等,還有負責發布工作的團隊。每個團隊大約10到15人左右。團隊中包含程式設計師和產品工程師。程式設計師負責系統設計,軟體架構。產...

ARCGIS重新整理的故事

原文章arcgis部分重新整理 全域性重新整理,即重繪地圖中的所有內容,是效率最低的一種重新整理方法。當資料量大時非常耗時。所以除非絕對必要,一般推薦使用iactiveview.partialrefresh方法。當然如果是涉及全部顯示範圍的更新就需要使用refresh,比如平移 縮放 全圖等操作。部...