ArcGIS研發背後的故事(下)

2021-08-25 10:21:29 字數 1681 閱讀 2626

「合格的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研

本文 於gis空間站 摘要 scott d.morehouse,esri研發總監,arcgis產品總設計師,esri gis技術的靈魂,40年來引導全球gis技術進步的核心人物。scott morehouse作為幾代esri軟體的首席設計師,負責制定esri整體軟體技術戰略,系統架構及產品規劃,領導...

ARCGIS重新整理的故事

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