與 Blue 工程團隊一起深入了解他們如何構建一個 AI 驅動的自動分類和標籤功能。
有效的項目和流程管理對於各種規模的組織至關重要。
在 Blue,我們已經將組織世界的工作視為我們的使命,通過構建地球上最好的項目管理平台來實現這一目標——簡單、強大、靈活,並且對所有人都負擔得起。
這意味著我們的平台必須適應每個團隊的獨特需求。今天,我們很高興揭開我們最強大功能之一的面紗:自訂權限。
項目管理工具是現代工作流程的支柱,存儲著敏感數據、關鍵通信和戰略計劃。因此,精細控制對這些信息的訪問不僅僅是一種奢侈——它是一種必要。
自訂權限在 B2B SaaS 平台中扮演著關鍵角色,尤其是在項目管理工具中,協作與安全之間的平衡可以決定一個項目的成功與否。
但這就是 Blue 採取不同方法的地方:我們相信企業級功能不應該僅限於企業級預算。
在 AI 使小團隊能夠以空前的規模運作的時代,為什麼強大的安全性和自訂功能會超出可及範圍?
在這次幕後的探討中,我們將探索我們如何開發自訂權限功能,挑戰 SaaS 價格層級的現狀,並為各種規模的企業帶來強大而靈活的安全選項。
無論您是一個擁有大夢想的初創公司,還是一個希望優化流程的成熟企業,自訂權限都可以啟用您從未想過的全新用例。
理解自訂用戶權限
在我們深入探討為 Blue 開發自訂權限的旅程之前,讓我們花點時間了解什麼是自訂用戶權限以及它們在項目管理軟件中為何如此重要。
自訂用戶權限是指為軟件系統中的個別用戶或群組量身定制訪問權限的能力。與依賴具有固定權限集的預定義角色不同,自訂權限允許管理員創建高度特定的訪問配置文件,與其組織的結構和工作流程需求完美對齊。
在像 Blue 這樣的項目管理軟件中,自訂權限包括:
- 細粒度訪問控制:確定誰可以查看、編輯或刪除特定類型的項目數據。
- 基於功能的限制:為特定用戶或團隊啟用或禁用某些功能。
- 數據敏感性級別:設置對項目內敏感信息的不同訪問級別。
- 工作流程特定權限:將用戶能力與項目工作流程的特定階段或方面對齊。
自訂權限在項目管理中的重要性不容小覷:
- 增強安全性:通過僅提供用戶所需的訪問權限,您降低了數據洩露或未經授權更改的風險。
- 改善合規性:自訂權限幫助組織滿足行業特定的監管要求,通過控制數據訪問。
- 簡化協作:當每個成員擁有執行其角色所需的正確訪問級別時,團隊可以更高效地工作,而不會受到不必要的限制或過多的特權。
- 適應複雜組織的靈活性:隨著公司增長和發展,自訂權限允許軟件適應不斷變化的組織結構和流程。
取得同意
我們之前寫過,Blue 中的每個功能在我們決定構建之前都必須是 堅定的 同意。我們沒有數百名工程師的奢侈,也無法浪費時間和金錢來構建客戶不需要的東西。
因此,在 Blue 實施自訂權限的過程並不是一條直線。像許多強大的功能一樣,它始於用戶的明確需求,並通過仔細考慮和規劃而演變。
多年間,我們的客戶一直在要求對用戶權限進行更細緻的控制。隨著各種規模的組織開始處理越來越複雜和敏感的項目,我們的標準基於角色的訪問控制的局限性變得顯而易見。
與外部客戶合作的小型初創公司、擁有複雜批准流程的中型公司,以及擁有嚴格合規要求的大型企業都表達了同樣的需求:
在管理用戶訪問方面需要更多的靈活性。
儘管需求明確,我們最初仍然猶豫不決,不願深入開發自訂權限。
為什麼?
我們理解其中的複雜性!
自訂權限涉及項目管理系統的每個部分,從用戶界面到數據庫結構。我們知道實施此功能將需要對我們的核心架構進行重大更改,並仔細考慮性能影響。
當我們調查市場時,我們注意到很少有競爭對手嘗試實施像我們客戶所要求的那樣強大的自訂權限引擎。那些這樣做的公司通常將其保留給其最高級別的企業計劃。
這變得明顯:開發工作量巨大,風險也很高。
不正確地實施自訂權限可能會引入關鍵錯誤或安全漏洞,可能危及整個系統。這一認識突顯了我們所考慮挑戰的重大性。
挑戰現狀
然而,隨著我們的持續增長和發展,我們達成了一個關鍵的認識:
在當今商業環境中,將強大的功能保留給企業客戶的傳統 SaaS 模型不再合理。
在 2024 年,隨著 AI 和先進工具的力量,小團隊可以在規模和複雜性上與更大的組織相媲美。一個初創公司可能在多個國家處理敏感的客戶數據。一家小型市場營銷機構可能正在處理數十個具有不同保密要求的客戶項目。這些企業需要與任何大型企業相同級別的安全性和自訂功能。
我們問自己:為什麼公司的員工數量或預算的大小應該決定他們保護數據安全和保持流程高效的能力?
企業級對所有人
這一認識使我們形成了一個核心理念,現在驅動著我們在 Blue 的大部分開發:企業級功能應該對各種規模的企業可用。
我們相信:
- 安全性不應該是一種奢侈。 每家公司,不論大小,都應擁有保護其數據和流程的工具。
- 靈活性推動創新。 通過為所有用戶提供強大的工具,我們使他們能夠創建推動行業前進的工作流程和系統。
- 增長不應該需要平台變更。 隨著我們的客戶增長,他們的工具應該無縫地隨之增長。
懷著這種心態,我們決定直面自訂權限的挑戰,致力於讓所有用戶都能使用,而不僅僅是那些在高級計劃上的用戶。
這一決定使我們走上了仔細設計、迭代開發和持續用戶反饋的道路,最終導致了我們今天自豪地提供的自訂權限功能。
在下一部分中,我們將深入探討我們如何設計和開發這一複雜功能的過程。
設計與開發
當我們決定處理自訂權限時,我們迅速意識到我們面臨著一項巨大的任務。
乍一看,“自訂權限”可能聽起來很簡單,但這是一個看似簡單但實際上非常複雜的功能,涉及我們系統的每個方面。
挑戰是艱巨的:我們需要實施級聯權限,允許即時編輯,進行重大數據庫架構更改,並確保我們整個生態系統的無縫功能——網頁、Mac、Windows、iOS 和 Android 應用程序,以及我們的 API 和網絡鉤子。
這種複雜性足以讓即使是最資深的開發人員也停下來思考。
我們的方法圍繞兩個關鍵原則:
- 將功能分解為可管理的版本
- 擁抱增量發佈。
面對全面自訂權限的複雜性,我們問自己一個關鍵問題:
這個功能的最簡單版本會是什麼?
這種方法與敏捷原則相一致,旨在交付最小可行產品(MVP),並根據反饋進行迭代。
我們的答案出乎意料地簡單:
- 引入一個切換來隱藏項目活動標籤
- 添加另一個切換來隱藏表單標籤
就這樣。
沒有花哨的功能,沒有複雜的權限矩陣——只有兩個簡單的開/關開關。
雖然乍一看可能顯得平淡無奇,但這種方法提供了幾個顯著的優勢:
- 快速實施:這些簡單的切換可以快速開發和測試,使我們能夠迅速將自訂權限的基本版本交到用戶手中。
- 明確的用戶價值:即使只有這兩個選項,我們也提供了實質性的價值。一些團隊可能希望隱藏客戶的活動記錄,而另一些團隊可能需要限制某些用戶組對表單的訪問。
- 增長的基礎:這一簡單的開始為更複雜的權限奠定了基礎。它使我們能夠設置自訂權限的基本基礎架構,而不會在一開始就被複雜性所困擾。
- 用戶反饋:通過發布這個簡單版本,我們可以收集用戶如何與自訂權限互動的實際反饋,為我們未來的開發提供信息。
- 技術學習:這一初步實施使我們的開發團隊在整個平台上修改權限方面獲得了實際經驗,為更複雜的迭代做好了準備。
你知道,對於某件事情有一個宏大的願景,然後交付的東西卻只是那個願景的一小部分,實際上是相當謙卑的。
在交付這兩個切換後,我們決定處理更複雜的功能。我們選擇了兩個新的自訂用戶角色權限。
第一個是限制用戶僅查看已特別分配給他們的記錄。如果您在一個項目中有一個客戶,而您只希望他們看到特別分配給他們的記錄,而不是您為他們處理的所有內容,這將非常有用。
第二個是為項目管理員提供一個選項,阻止用戶組邀請其他用戶。如果您有一個敏感的項目,您希望確保其保持在“需要查看”的基礎上,這將非常好。
一旦我們交付了這些,我們獲得了更多的信心,對於我們的第三個版本,我們處理了列級權限,這意味著能夠決定特定用戶組可以查看或編輯哪些自訂字段。
這是非常強大的。想像一下,您有一個 CRM 項目,裡面有與客戶將支付的金額相關的數據,但也有您的成本和利潤邊際。您可能不希望您的成本字段和項目利潤公式字段對初級員工可見,而自訂權限允許您鎖定這些字段,使其不顯示。
接下來,我們轉向創建基於列表的權限,項目管理員可以決定用戶組是否可以查看、編輯和刪除特定列表。如果他們隱藏一個列表,該列表中的所有記錄也會變得隱藏,這很好,因為這意味著您可以隱藏某些流程的部分內容,讓團隊成員或客戶無法看到。
這是最終結果:
技術考量
Blue 的技術架構的核心是 GraphQL,這一關鍵選擇顯著影響了我們實施自訂權限等複雜功能的能力。但在我們深入具體細節之前,讓我們退一步,了解什麼是 GraphQL 以及它與更傳統的 REST API 方法有何不同。
GraphQL 與 REST API:一個易於理解的解釋
想像一下您在一家餐廳。使用 REST API,就像從固定菜單上點餐。您要求一個特定的菜餚(端點),然後您獲得所有隨之而來的內容,無論您是否想要。如果您想自訂您的餐點,您可能需要多次點餐(API 調用)或要求特別準備的菜餚(自訂端點)。
而 GraphQL 則像是與一位可以準備任何東西的廚師交談。您告訴廚師您想要哪些食材(數據字段),以及需要多少。然後廚師準備出正好是您所要求的菜餚——不多也不少。這基本上就是 GraphQL 的作用——它允許客戶端精確要求所需的數據,服務器則僅提供這些數據。
一次重要的午餐
在 Blue 的初始開發約六周後,我們的首席工程師和 CEO 外出午餐。
討論的主題是?
是否應該從 REST API 切換到 GraphQL。這不是一個輕率的決定——採用 GraphQL 意味著放棄六周的初步工作。
在回辦公室的路上,CEO 向首席工程師提出了一個關鍵問題:“五年後我們會後悔不這樣做嗎?”
答案變得明確:GraphQL 是未來的方向。
我們早期就認識到這項技術的潛力,看到它如何支持我們對靈活、強大的項目管理平台的願景。
我們在採用 GraphQL 方面的前瞻性在實施自訂權限時得到了回報。使用 REST API,我們將需要為每個可能的自訂權限配置創建不同的端點——這種方法很快會變得難以維護。
然而,GraphQL 允許我們動態處理自訂權限。以下是其工作原理:
- 即時權限檢查:當客戶端發出請求時,我們的 GraphQL 服務器可以直接從數據庫檢查用戶的權限。
- 精確數據檢索:根據這些權限,GraphQL 僅返回符合用戶訪問權限的請求數據。
- 靈活查詢:隨著權限的變化,我們不需要創建新的端點或更改現有端點。相同的 GraphQL 查詢可以適應不同的權限設置。
- 高效數據提取:GraphQL 允許客戶端精確請求所需的數據。這意味著我們不會過度提取數據,這可能會暴露用戶不應訪問的信息。
這種靈活性對於像自訂權限這樣複雜的功能至關重要。它使我們能夠提供細粒度控制,而不犧牲性能或可維護性。
挑戰
在 Blue 實施自訂權限帶來了一系列挑戰,每一個挑戰都促使我們創新並完善我們的方法。性能優化迅速成為一個關鍵問題。隨著我們添加更多細粒度的權限檢查,我們冒著減慢系統速度的風險,特別是對於擁有許多用戶和複雜權限設置的大型項目。為了解決這個問題,我們實施了多層緩存策略,優化了數據庫查詢,並利用 GraphQL 的能力僅請求必要的數據。這種方法使我們即使在項目擴展和權限複雜性增長的情況下,仍能保持快速的響應時間。
自訂權限的用戶界面呈現了另一個重大挑戰。我們需要使界面對管理員直觀且可管理,即使在添加更多選項並增加系統複雜性的情況下。
我們的解決方案涉及多輪用戶測試和迭代設計。
我們引入了一個可視化的權限矩陣,允許管理員快速查看和修改不同角色和項目區域的權限。
確保跨平台一致性也帶來了自己的挑戰。我們需要在我們的網頁、桌面和移動應用程序中統一實施自訂權限,每個應用程序都有其獨特的界面和用戶體驗考量。這對於我們的移動應用程序特別棘手,因為它們必須根據用戶的權限動態隱藏和顯示功能。我們通過將權限邏輯集中在 API 層來解決這個問題,確保所有平台都接收到一致的權限數據。
然後,我們開發了一個靈活的 UI 框架,可以實時適應這些權限變化,無論使用哪個平台都能提供無縫的體驗。
用戶教育和採用是我們自訂權限旅程中的最後一個障礙。引入如此強大的功能意味著我們需要幫助用戶理解並有效利用自訂權限。
我們最初將自訂權限推出給我們用戶基礎的一部分,仔細監控他們的體驗並收集見解。這種方法使我們能夠根據實際使用情況完善功能和我們的教育材料,然後再向整個用戶基礎推出。
這種分階段推出的方式證明是無價的,幫助我們識別和解決一些小問題和用戶困惑點,最終使所有用戶都能獲得更完善和友好的功能。
這種向部分用戶推出的方式,以及我們通常的 2-3 週“測試版”期間,讓我們晚上能夠安心入睡。 :)
展望未來
與所有功能一樣,沒有任何東西是*“完成”*的。
我們對自訂權限功能的長期願景涵蓋了標籤、自訂字段過濾器、可自訂的項目導航和評論控制。
讓我們深入探討每個方面。
標籤權限
我們認為能夠根據記錄是否擁有一個或多個標籤來創建權限將是驚人的。最明顯的用例是,您創建一個名為“客戶”的自訂用戶角色,並僅允許該角色中的用戶查看標記為“客戶”的記錄。
這使您可以一目了然地查看記錄是否可以被您的客戶看到。
這可以通過 AND/OR 組合器變得更強大,您可以指定更複雜的規則。例如,您可以設置一條規則,允許訪問同時標記為“客戶”和“公共”的記錄,或標記為“內部”或“機密”的記錄。這種靈活性將允許非常細緻的權限設置,滿足即使是最複雜的組織結構和工作流程。
潛在的應用範圍廣泛。項目經理可以輕鬆隔離敏感信息,銷售團隊可以自動訪問相關的客戶數據,外部合作者可以無縫集成到項目的特定部分,而不會冒著暴露敏感內部信息的風險。
自訂字段過濾器
我們對自訂字段過濾器的願景代表了在細粒度訪問控制方面的一次重大飛躍。此功能將使項目管理員能夠根據自訂字段的值定義特定用戶組可以看到的記錄。這是關於為信息訪問創建動態、數據驅動的邊界。
想像一下能夠設置如下的權限:
- 僅顯示“項目狀態”下拉選單設置為“公共”的記錄
- 限制可見性為“部門”多選字段包含“市場營銷”的項目
- 允許訪問“優先級”復選框被勾選的任務
- 顯示“預算”數字字段高於某個閾值的項目
可自訂的項目導航
這僅僅是我們已經擁有的切換的擴展。我們希望將其擴展到項目導航的每一個部分,而不僅僅是“活動”和“表單”的切換。這樣,項目管理員可以創建專注的界面,並刪除他們不需要的工具。
評論控制
未來,我們希望在如何讓客戶決定誰可以看到評論和誰不能看到評論方面進行創新。我們可能會允許在一個記錄下有多個標籤的評論區域,每個區域對不同的用戶組可見或不可見。
此外,我們還可能允許一個功能,僅顯示用戶特別提到的評論,而不顯示其他評論。這將使在項目中有客戶的團隊能夠確保只有他們希望客戶看到的評論是可見的。
結論
所以我們有了,這就是我們如何構建最有趣和強大的功能之一!正如您在我們的項目管理比較工具中所見,很少有項目管理系統擁有如此強大的權限矩陣設置,而那些擁有的系統通常將其保留給最昂貴的企業計劃,使其對典型的小型或中型公司無法接觸。
有了 Blue,您擁有我們計劃中的所有功能——我們不相信企業級功能應該僅限於企業客戶!