混合軟體開發角色效果更佳
為什麼在工程中混合角色對使用者更好的三個原因。
大多數開源社群沒有很多正式的角色。當然,也有一些固定人員幫助處理系統管理員任務、測試、編寫文件以及翻譯或開發程式碼。但開源社群的人員通常在不同的角色之間流動,往往同時履行幾個角色的職責。
相反,大多數傳統公司的團隊成員都定義了角色,例如,負責文件、技術支援、質量檢驗和其他領域。
為什麼開源社群採取共享角色的方法,更重要的是,這種協作方式如何影響產品和客戶?
Nextcloud 採用了這種社群式的混合角色的做法,我們看到了我們的客戶和使用者受益頗多。
1、更好的產品測試
每個測試人員都會說測試是一項困難的工作。你需要了解工程師開發的產品,並且需要設計測試案例、執行測試案例並將結果返回給開發人員。完成該過程後,開發人員將進行更改,然後重複該過程,根據需要來回進行多次,直到任務完成。
在社群中,貢獻者通常會對他們開發的專案負責,因此他們會對這些專案進行廣泛的測試和記錄,然後再將其交給使用者。貼近專案的使用者通常會與開發人員協作,幫助測試、翻譯和編寫文件。這將建立一個更緊密、更快的反饋迴圈,從而加快開發速度並提高質量。
當開發人員不斷面對他們的工作結果時,會鼓勵他們以最大限度地減少測試和除錯的方式去書寫。自動化測試是開發中的一個重要元素,反饋迴圈可以確保正確地完成操作:開發人員主觀能動的來實現自動化 —— 而不過於簡化也不過於複雜。當然,他們可能希望別人做更多的測試或自動化的測試,但當測試是正確的選擇時,他們就會這樣做。此外,他們還審查對方的程式碼,因為他們知道問題往往會在以後讓他們付出代價。
因此,雖然我不認為放棄專用測試人員更好,但在沒有社群志願者進行測試的專案中,測試人員應該是開發人員,並密切嵌入到開發團隊中。結果如何?客戶得到的產品是由 100% 有動機的人測試和開發的,以確保它是穩定和可靠的。
2、開發和客戶需求之間的密切協作
要使產品開發與客戶需求保持一致是非常困難的。每個客戶都有自己獨特的需求,有長期和短期的因素需要考慮 —— 當然,作為一家公司,你對你的發展方向有想法。你如何整合所有這些想法和願景?
公司通常會建立與工程和產品開發分開的角色,如產品管理、支援、質量檢測等。這背後的想法是,人們在專攻的時候做得最好,工程師不應該為測試或支援等 “簡單” 的任務而煩惱。
實際上,這種角色分離是一項削減成本的措施。它使管理層能夠進行微觀管理,並更能掌握全域性,因為他們可以簡單地進行產品管理,例如,確定路線圖專案的優先次序。(它還建立了更多的會議!)
另一方面,在社群,“決定權在工作者手上”。開發人員通常也是使用者(或由使用者支付報酬),因此他們自然地與使用者的需求保持一致。當使用者幫助進行測試時(如上所述),開發人員會不斷地與他們合作,因此雙方都完全瞭解什麼是可行的,什麼是需要的。
這種開放的合作方式使使用者和專案緊密協作。在沒有管理層干涉和指手畫腳的情況下,使用者最迫切的需求可以迅速得到滿足,因為工程師已經非常瞭解這些需求。
在 nextcloud 中,客戶永遠不需要解釋兩次,也不需要依靠初級支援團隊成員將問題準確地傳達給工程師。我們的工程師根據客戶的實際需求不斷調整他們的優先順序。同時,基於對客戶的深入瞭解,合作制定長期目標。
3、最佳支援
與專有的或 開放源核心的供應商不同,開源供應商有強大的動力提供儘可能最好的支援:這是與其他公司在其生態系統中的關鍵區別。
為什麼專案背後的推動者(比如 Collabora 在 LibreOffice 背後,The Qt Company 在 Qt 背後,或者 Red Hat 在 RHEL 背後)是客戶支援的最佳來源呢?
當然是直接接觸工程師。這些公司並不阻斷來自工程團隊的支援,而是為客戶提供了獲得工程師專業知識的機會。這有助於確保客戶始終儘快獲得最佳答案。雖然一些工程師可能比其他人在支援上花費更多的時間,但整個工程團隊在客戶成功方面發揮著作用。專有供應商可能會為客戶提供一個專門的現場工程師,費用相當高,但一個開源公司,如 OpenNMS 可以在您的支援合同中提供相同級別的服務,即使您不是財富 500 強客戶也是如此。
還有一個好處,那就是與測試和客戶協作有關:共享角色可確保工程師每天處理客戶問題和願望,從而促使他們快速解決最常見的問題。他們還傾向於構建額外的工具和功能,以滿足客戶預期。
簡單地說,將質量檢測、支援、產品管理和其他工程角色合併為一個團隊,可確保優秀開發人員的三大優點 —— 從簡、精益求精、高度自我要求 —— 與客戶緊密保持一致。
via: https://opensource.com/article/18/8/mixing-roles-engineering
作者:Jos Poortvliet 選題:lujun9972 譯者:lixinyuxx 校對:wxy
相關文章
- 軟體開發流程和角色分工
- 論軟體開發中的三種重要角色(轉)
- 短視訊軟體開發,RecyclerView實現拖拽效果View
- 軟體開發:app軟體開發,pc端軟體開發,微商城/小程式開發APP
- 直播軟體開發,工具類的自定義彈窗效果
- 商業軟體與開源“混合”有利開源運動持續發展(轉)
- 軟體開發與軟體研發
- 自上而下的軟體開發和自下而上軟體開發
- Flutter - 混合開發Flutter
- Flutter混合開發Flutter
- 軟體“吃”掉了軟體開發
- 軟體開發mac常用軟體Mac
- 軟體開發模式模式
- 軟體開發之道
- 軟體開發流程
- 軟體開發2
- 軟體開發3
- Flutter混合開發-iOSFlutteriOS
- Flutter原生混合開發Flutter
- 短視訊軟體開發,實現簡單的輪播圖效果
- 軟體開發新模式:敏捷開發模式敏捷
- 社交app開發功能,社交軟體開發功能,社交app,社交軟體。APP
- 軟體開發命名指南
- Ubuntu 開發軟體集合Ubuntu
- 軟體開發的難
- DSP軟體開發心得
- 求才(軟體開發高手)
- Android開發學習之路--React-Native混合開發初體驗AndroidReact
- Flutter & Native 混合開發Flutter
- Flutter混合開發—iOS篇FlutteriOS
- Flutter混合工程開發探究Flutter
- uni-app 混合開發APP
- Hybrid 混合App開發APP
- 短視訊軟體開發,各個圖示自帶漸變色效果
- 軟體測試真的比不上軟體開發嗎?
- 【軟體測試】軟體及其開發過程
- 應用版本控制軟體管理軟體開發
- Zuora招聘JAVA軟體開發\軟體測試Java