保持冷靜並過渡到新的開發團隊
已發表: 2022-03-11軟件產品在其生命週期內從一個開發團隊過渡到另一個開發團隊是很常見的。 產品的不同階段可能需要不同類型的開發團隊:構建初始版本的顧問,維護它的獨立自由開發人員,使其規模化的內部團隊,或添加一些“流行音樂”。
儘管這種情況經常發生,但許多非技術創始人和產品負責人發現自己在引入下一個團隊時措手不及並且手忙腳亂。 這通常會導致新團隊無法快速取得進展、浪費時間並讓所有相關人員感到沮喪。
如果這聽起來像是現在或將來可能是你,那麼你應該有點擔心。 幸運的是,我們將逐步介紹您可以採取的步驟,為這種可能性做準備,並使過渡盡可能順利。
傳遞火炬:入職新的開發團隊
在本文中,我將為您提供一份清單,這些清單將幫助您為此類更改做好準備。 您將在更親密的層面上了解您的產品,並獲得對製造產品的所有各種服務和技術的更多控制權,這將使您能夠自信且相對輕鬆地加入新團隊。
但是,如果您不更換整個團隊怎麼辦? 你應該費心讀這個嗎?
即使之前的一些團隊仍然留在船上,他們也可能沒有順利過渡所需的所有答案和信息。 儘管他們可以在將知識從舊團隊轉移到新團隊的過程中提供連續性和幫助,但依靠現任團隊成員並不能替代負責和促進轉移的產品所有者。 此外,不負責可能會導致新老團隊成員之間產生摩擦,或者給老團隊成員帶來不必要的任務,迫使他們浪費太多時間與新團隊成員溝通和解決各種問題。
儘管如此,如果一些團隊成員留在船上,他們可以成為您過渡工作中的寶貴資產。 與他們協商,讓他們了解情況,並嘗試利用他們的經驗,而不會讓他們被太多與過渡相關的任務淹沒。 不要指望他們會做所有繁重的工作! 那是你的工作。
所以事不宜遲,讓我們開始吧!
收集文檔
自由開發人員經常被要求跳入他們以前從未見過的現有代碼庫。 對於 Toptal 軟件工程師來說尤其如此。 我們的目標始終是盡快跟上進度,這樣我們就可以開始對我們的客戶產生積極的影響。
獲得有關項目的清晰、詳盡的文檔可以顯著加快入職流程,並幫助開發人員避免可能阻礙前進的陷阱。
好的文檔至少需要涵蓋以下主題:
- 設置開發環境- 任何新手的首要任務是讓應用程序在他們自己的計算機上啟動並運行。 這樣做的過程因技術而異。 一般來說,它需要諸如獲取源代碼、設置數據庫、安裝依賴項、使用 API 密鑰和憑據配置環境、導入示例數據等任務。 開發人員對他們各自領域內這個過程所涉及的一切都有很好的了解,並且應該能夠相應地調整細節。
- 運行自動化測試套件- 看到應用程序的測試通過可確保一切都已正確設置,並且未來的更改不會破壞您現有的任何功能。
- 部署到登台和生產服務器- 使用最新更改更新實時應用程序是一個高度腳本化的過程,並且應該逐步概述這些操作的順序,盡可能詳細。
- 與新入職開發人員相關的任何其他信息- 每個應用程序都有自己的一組怪癖。 把這些寫下來可以為未來的團隊節省大量的精力來調試以前的團隊已經想出如何處理的問題。
文檔應該由具有設置應用程序和為代碼庫做出貢獻的第一手經驗的開發人員編寫。
在任何過渡發生之前,請要求以前的開發團隊通過創建涉及上述主題的資源來促進知識的轉移!
如果寫作不是他們的強項,請他們錄製一個或多個截屏視頻,演示開發環境的設置、部署等。如今,甚至有諸如 Vagrant 和 Docker 之類的工具可以將整個開發環境打包並分發給其他人。 從本質上講,與其給別人指導如何製作錘子,不如給他們錘子本身。
一個項目文檔的全面性和有效性的試金石是新開發人員可以多快地設置他或她的開發環境並運行您的應用程序。
了解您的產品
擁有出色的文檔並不能成為您無需了解自己產品技術基礎知識的藉口。 作為軟件產品的所有者,您有責任盡可能地了解您的應用程序,即使您不是很懂技術。
以下問題很常見,您應該無需查找即可知道答案:
- 您的應用程序使用什麼技術堆棧? - 後端和前端有許多通用的應用程序框架,任何新的開發團隊都應該熟悉您的應用程序使用的框架。 後端 Web 技術的一些示例包括 Ruby on Rails、Node.js 和 Django。 前端 Web 技術的一些示例是 React.js、Angular.js 和 Ember.js。
- 它在哪里托管? - 不同的網絡主機有不同的部署過程,這需要不同程度的經驗。 近年來,雲技術創造了許多新的託管選項,您需要確定您正在使用哪個特定的選項,並描述為什麼選擇它而不是其他選項。
- 發展過程是怎樣的? - 您的團隊是否使用特定的源代碼控制管理工具,例如 Git? 如果是這樣,開發、測試、批准和部署新功能的過程是什麼? 該過程必須標準化、正確記錄並易於被新人復制。
- 您的應用程序使用哪些第三方服務? - 某些應用程序是基於 Shopify 等第三方服務構建的。 請記住,對第三方服務的依賴正在逐漸增加,即使您目前不使用任何額外的服務,您的項目也可能會在以後的某個時間決定使用第三方服務。
- 您的應用程序可以在哪些平台上運行? - 您的應用程序是桌面應用程序、Web 應用程序、響應式移動網站、原生 iOS 應用程序、原生 Android 應用程序還是其他什麼? 它是否在幾個不同的平台上運行? 在任何給定時間,哪個平台是您的首要任務? 你的產品在哪個平台上最強和最弱? 確保了解應用程序當前平台的所有詳細信息,甚至可以將其擴展到哪些平台。
取得所有權
今天的軟件開發過程使用了大量的第三方服務和工具。 無論您是否知道,您的應用程序也不例外。

在開發過程中,您以前的團隊可能已經代表您註冊,甚至使用他們自己的帳戶來訪問所需的服務。 過渡到新團隊意味著您必須擁有所有權並控制應用程序所依賴的每一項服務和工具,以便您可以授予新團隊訪問權限,而無需通過中間人或追查原始開發人員。
以下是您的應用程序可能使用的各種外部工具或服務的列表:
- 源代碼控制管理- GitHub、Bitbucket、Gitlab
- 虛擬主機- Heroku、EngineYard、Digital Ocean、Bluehost、亞馬遜網絡服務
- 文件託管- 亞馬遜網絡服務 (S3)
- DNS 提供商- GoDaddy、DNSimple、Hover
- 開發服務——NewRelic、FileStack、Segment、Bugsnag(以及無數其他)
- 支付服務- Stripe、Braintree、PayPal
- 博客服務- WordPress、Tumblr、Ghost
- 電子商務解決方案- Shopify、Squarespace
- 分析/跟踪- Google Analytics、Mixpanel、Kissmetrics
- 電子郵件營銷: MailChimp,持續聯繫
詢問你即將離任的開發團隊哪些是適用的。 對於開發團隊擁有的任何服務,請他們將所有權轉讓給您。 如果這不可能,請讓他們幫助您創建自己的新帳戶,並確保應用程序使用您的帳戶而不是他們的帳戶。 這應該只需要更改應用程序的一些配置設置。
不用說,確保每份開發合同從一開始就保護您的利益,並確保順利過渡,無論如何。
授予訪問權限
憑藉對應用程序生態系統的深入了解以及對應用程序使用的所有各種工具和服務的所有權,您現在可以為即將到來的團隊或個人提供完全訪問權限。
大多數服務將允許您將協作者添加到您的帳戶並授予他們特定級別的訪問權限。 在這裡保守一點也沒關係。 許多創始人,尤其是獨立企業家,更願意讓他們的開發人員完全管理員訪問他們的服務,讓他們處理一切。 這會產生負面影響,即讓您置身於循環之外,正如我們所了解的那樣,這會使您在未來更難過渡。
你應該給你的開發者完全的管理員權限嗎? 這是你的電話,大多數人對這種方法沒有問題。 但是,您始終需要提前計劃並確保您的決定不會對新的開發團隊產生負面影響。 在項目的早期階段不這樣做可能會在未來產生令人討厭的後果。
管理移交
既然您已經覆蓋了所有基礎,您將需要管理從一個團隊到下一個團隊的交接。 以下是處理傳入和傳出團隊的一些基本技巧。
傳入團隊
- 設定期望——新團隊應該知道你最重要的目標是什麼,這樣他們才能專注於正確的方向。 管理自己對新團隊可以立即完成的任務的期望同樣重要。
- 經常簽到——不要讓新團隊下沉或游泳。 您想經常檢查以確保他們擁有所需的一切,並且不覺得他們需要自謀生路。 嘗試在不進行微觀管理的情況下做到這一點。 確保他們知道您會在他們需要時提供支持和幫助,但不要對他們施加不必要的壓力。
- 要有耐心——開發人員需要時間來適應新的代碼庫。 要知道,在新團隊能夠趕上前一個團隊的步伐之前,還需要一些學習時間。
即將離任的團隊
- 收集所有未完成的代碼- 確保將所有源代碼簽入主存儲庫,並且您知道已部署或尚未部署的內容的狀態。 新團隊需要確切知道從哪裡開始工作。 我自己也經歷過這樣的情況,我接手了一個團隊,該團隊部署了代碼而沒有將其放入主存儲庫中。 這會導致錯誤、重複工作和令人頭疼的問題,如果即將離任的團隊將源代碼保持在一致狀態,這些問題很容易避免。
- 更新他們的訪問級別- 如果您以良好的條件分道揚鑣,您可能希望讓他們訪問您的代碼和/或部署。 許多團隊很樂意在過渡階段提供幫助,直到新團隊完全接管。 如果沒有,請考慮降級或撤銷訪問權限,以防止與新團隊發生任何意外問題或衝突。
- 感謝他們的工作- 過渡可能會很忙。 當您忙於與新團隊打交道時,不要忘記感謝即將離任的團隊為您的項目所做的貢獻。
結論
生活中的任何轉變都可能令人恐懼,會帶來是否會成功的不確定性,對未知事物的恐懼等等。 過渡到新的開發團隊沒有什麼不同,但您可以而且應該採取措施使其更容易。 在大多數情況下,它只需要一些長期規劃。
對您的軟件產品、開發過程以及進入該過程的所有內容有更深入的技術和非技術理解,這將有助於從一個團隊到另一個團隊的任何過渡盡可能無縫和輕鬆。
最重要的是,您的新團隊將尊重並感謝您在比賽中的表現! 您可能會為他們節省時間和精力,這也意味著您會省錢。 此外,新團隊越早意識到堅持高專業標準越好。 一旦他們接管項目,他們很有可能會繼續實施這些做法,從而使下一次過渡也順利進行。
因此,讓我們回顧一下在您的軟件產品所有權轉讓之前應注意的要點:
- 盡可能多地收集或創建有關您的應用程序、開發環境和部署過程的文檔。
- 從內到外了解您的產品。
- 保持對應用程序的所有第三方服務和依賴項的控制,並擁有所有內容的用戶名和密碼。
- 準備好讓您的新團隊獲得啟動和運行所需的一切。
- 積極主動,不要把任何事情留給機會或即將離任的開發團隊。