釋出時間:2019年11月5日 - 4分鐘閱讀
我已經有一段時間沒有從頭開始建立一個新的開發團隊了。然而,我最近開始著手建立Snapp的Flutter團隊。在這篇文章中,我解釋了我是如何讓Flutter在一個全新的團隊中紮根並茁壯成長的。
照片:Nik MacMillan on Unsplash。
在2019年建立一個Flutter團隊是有一些挑戰的。
-
Flutter是新的,雖然它的聲譽正在增長,但它還沒有很好地建立起來。建立一個Flutter團隊意味著您和您的同事正在對一項新技術進行押注。
-
很難找到具有Flutter重要經驗的人,即多個實時專案執行一段時間。你很可能會在沒有經驗豐富的Flutter領導的情況下建立一個團隊。
-
Flutter開發的架構和實踐正在出現。在這個階段很難評估各種方法。這使得它更難建立首選的實踐,並可能意味著初始專案可能會採取完全不同的架構方法。
-
你必須確保你能為你的團隊創造一個穩定的好專案流。閒置的團隊往往不會在一起呆很久。他們需要技術挑戰,需要構建真實世界的產品,最重要的是釋出到使用者手中。
鑑於這些挑戰,我們要如何去建設我們的Flutter團隊。
演習本
在我們的專案中,通常會看到一個移動應用的許多方面。我們正在把這些彙集到一個遊戲手冊中,可以作為團隊構建Flutter應用時的參考。
這本劇本參考了文章、pub.dev上的包、我們已經編寫的程式碼和Flutter文件。我們的目標不是要建立一個單一的架構,而是要對映出現有的Flutter知識和方法,這樣我們就可以儘快地進入主題。最終我們很可能會確定首選的做法,Flutter社群也會這樣做。
究竟哪些內容會進入遊戲手冊?諸如處理不同佈局(縱向與橫向、手機與表格)、整合推送通知、本地儲存、應用階段、api整合、多平臺構建、模組化應用、CI、測試等話題。
專注與專長
為了讓團隊儘快發揮效力,我們決定採取分而治之的策略。這意味著我們建立了3條知識軌道。
-
Layout & UI - 與構建應用程式使用者介面相關的主題,包括管理多種佈局、平臺變化、動畫和使用者互動。
-
資料與API管理--在不同場景下呼叫API(如REST與GRPC、流資料等),管理應用中的資料(如Bloc、Provider等),與UI的整合。
-
跨領域主題--這是我們的 "其他 "桶,用於CI、編寫外掛、處理深度連結、推送通知等主題。
我們的方法是讓團隊中的每個成員每次專注於一個軌道,作為一種專長。一旦我們覺得自己對當前的軌道有足夠的瞭解,我們就會輪換軌道。
傳道
在Snapp,我們對技術有很多熱情和強烈的觀點。這為我們使用的技術創造了一些健康友好的辯論。作為一個倡導新技術的團隊,還沒有長期的成功記錄,這意味著我們必須成為佈道者。
傳播者對一個團隊來說是積極的。當以一種建設性的方式進行時,它鼓勵團隊對一項技術進行更深入的挖掘,以便向其他人解釋。對於我們的團隊來說,這也意味著我們必須在與其他技術的背景和對比中理解Flutter。同樣,這也有助於拓寬知識面。
樂趣
作為一個團隊,開心總是健康的。我所說的 "樂趣 "並不是指在辦公室裡胡鬧或打乒乓球。
這裡我指的是極客的樂趣。具體來說,我們會做一些事情,比如丟擲一些小的編碼挑戰或技術問題給團隊中的其他人。當以開放和友好的方式進行時,我們發現我們能學到很多東西。這也有助於創造一種團隊文化,在這種文化中,我們可以犯錯誤(即把事情做錯),並在我們不知道什麼的時候相信別人會幫助我們。
警告--我也見過這種事情以一種有毒的方式進行,團隊成員用它來試圖讓自己看起來很聰明,而犧牲別人的利益。不要這樣做
舉個例子,最近同事提出的一個Dart語言挑戰是要從一個句子中提取所有的詞,這些詞都是迴文。
實驗
在客戶專案中,很難突破界限。一個未知的框架或未經驗證的方法會給專案帶來不必要的風險。(可以說使用Flutter本身在2019年還是有點實驗的意思)。
因此我們把一個簡單的專案作為實驗的遊樂場。例如,我對基於Flux的架構如何與Flutter合作感興趣。實驗專案是嘗試這個問題的最佳場所。
我們在Flutter團隊中選擇了兩個實驗專案。一個是一個簡單的ToDo應用--是的,不是很原始。第二個是一個最初由Juhani Lehtimäki建立的用於學習西裡爾字母表的應用程式。試試Play Store的Android版本)。
TL;DR
你如何圍繞一項相對較新的技術去建立一個團隊,該技術還沒有強大的跟蹤記錄以及新興的模式和框架? 這是任何在2019年建立Flutter團隊的人所面臨的挑戰。 在這篇文章中,我們描述了我們要去建立Flutter團隊的一些方法,並解決隨之而來的挑戰。
通過www.DeepL.com/Translator(免費版)翻譯