混合軟體開發角色效果更佳

Jos Poortvliet發表於2018-12-06

為什麼在工程中混合角色對使用者更好的三個原因。

大多數開源社群沒有很多正式的角色。當然,也有一些固定人員幫助處理系統管理員任務、測試、編寫文件以及翻譯或開發程式碼。但開源社群的人員通常在不同的角色之間流動,往往同時履行幾個角色的職責。

相反,大多數傳統公司的團隊成員都定義了角色,例如,負責文件、技術支援、質量檢驗和其他領域。

為什麼開源社群採取共享角色的方法,更重要的是,這種協作方式如何影響產品和客戶?

Nextcloud 採用了這種社群式的混合角色的做法,我們看到了我們的客戶和使用者受益頗多。

1、更好的產品測試

每個測試人員都會說測試是一項困難的工作。你需要了解工程師開發的產品,並且需要設計測試案例、執行測試案例並將結果返回給開發人員。完成該過程後,開發人員將進行更改,然後重複該過程,根據需要來回進行多次,直到任務完成。

在社群中,貢獻者通常會對他們開發的專案負責,因此他們會對這些專案進行廣泛的測試和記錄,然後再將其交給使用者。貼近專案的使用者通常會與開發人員協作,幫助測試、翻譯和編寫文件。這將建立一個更緊密、更快的反饋迴圈,從而加快開發速度並提高質量。

當開發人員不斷面對他們的工作結果時,會鼓勵他們以最大限度地減少測試和除錯的方式去書寫。自動化測試是開發中的一個重要元素,反饋迴圈可以確保正確地完成操作:開發人員主觀能動的來實現自動化 —— 而不過於簡化也不過於複雜。當然,他們可能希望別人做更多的測試或自動化的測試,但當測試是正確的選擇時,他們就會這樣做。此外,他們還審查對方的程式碼,因為他們知道問題往往會在以後讓他們付出代價。

因此,雖然我不認為放棄專用測試人員更好,但在沒有社群志願者進行測試的專案中,測試人員應該是開發人員,並密切嵌入到開發團隊中。結果如何?客戶得到的產品是由 100% 有動機的人測試和開發的,以確保它是穩定和可靠的。

2、開發和客戶需求之間的密切協作

要使產品開發與客戶需求保持一致是非常困難的。每個客戶都有自己獨特的需求,有長期和短期的因素需要考慮 —— 當然,作為一家公司,你對你的發展方向有想法。你如何整合所有這些想法和願景?

公司通常會建立與工程和產品開發分開的角色,如產品管理、支援、質量檢測等。這背後的想法是,人們在專攻的時候做得最好,工程師不應該為測試或支援等 “簡單” 的任務而煩惱。

實際上,這種角色分離是一項削減成本的措施。它使管理層能夠進行微觀管理,並更能掌握全域性,因為他們可以簡單地進行產品管理,例如,確定路線圖專案的優先次序。(它還建立了更多的會議!)

另一方面,在社群,“決定權在工作者手上”。開發人員通常也是使用者(或由使用者支付報酬),因此他們自然地與使用者的需求保持一致。當使用者幫助進行測試時(如上所述),開發人員會不斷地與他們合作,因此雙方都完全瞭解什麼是可行的,什麼是需要的。

這種開放的合作方式使使用者和專案緊密協作。在沒有管理層干涉和指手畫腳的情況下,使用者最迫切的需求可以迅速得到滿足,因為工程師已經非常瞭解這些需求。

在 nextcloud 中,客戶永遠不需要解釋兩次,也不需要依靠初級支援團隊成員將問題準確地傳達給工程師。我們的工程師根據客戶的實際需求不斷調整他們的優先順序。同時,基於對客戶的深入瞭解,合作制定長期目標。

3、最佳支援

與專有的或 開放源核心open core的供應商不同,開源供應商有強大的動力提供儘可能最好的支援:這是與其他公司在其生態系統中的關鍵區別。

為什麼專案背後的推動者(比如 CollaboraLibreOffice 背後,The Qt CompanyQt 背後,或者 Red HatRHEL 背後)是客戶支援的最佳來源呢?

當然是直接接觸工程師。這些公司並不阻斷來自工程團隊的支援,而是為客戶提供了獲得工程師專業知識的機會。這有助於確保客戶始終儘快獲得最佳答案。雖然一些工程師可能比其他人在支援上花費更多的時間,但整個工程團隊在客戶成功方面發揮著作用。專有供應商可能會為客戶提供一個專門的現場工程師,費用相當高,但一個開源公司,如 OpenNMS 可以在您的支援合同中提供相同級別的服務,即使您不是財富 500 強客戶也是如此。

還有一個好處,那就是與測試和客戶協作有關:共享角色可確保工程師每天處理客戶問題和願望,從而促使他們快速解決最常見的問題。他們還傾向於構建額外的工具和功能,以滿足客戶預期。

簡單地說,將質量檢測、支援、產品管理和其他工程角色合併為一個團隊,可確保優秀開發人員的三大優點 —— 從簡、精益求精、高度自我要求laziness,impatience,and hubris —— 與客戶緊密保持一致。


via: https://opensource.com/article/18/8/mixing-roles-engineering

作者:Jos Poortvliet 選題:lujun9972 譯者:lixinyuxx 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章