關於“軟件開發”,“工程師文化”,“團隊管理”
分享一下 weibo@左耳朵耗子 陳皓的“建一支強大的小團隊”報告內容,挑選了幾點。
人物介紹
行業背景 :金融行業(Thomson Reuters) ,計算平台(Platform),電子商務(Amazon)
技術背景 : C/C++/Java,Unix/Linux/Windows ,Web
個性:碼農兼包工頭 ,敏捷恐怖分子 ,Unix/Linux/C/C++腦殘粉 ,“技術部門無技術種族”歧視者 ,程序員文化民族主義者
陳皓是酷殼coolshell的博客作者,上麵很多文章都會被大家廣泛傳播分享,可以看看最近幾篇比較火的:
xkcd 神圖“Click and Drag” geek風十足
簡明 Vim 練級攻略 前天有朋友在人人上分享
如何測試洗牌程序 兩個月前,微博上陳皓和測試人員的“大戰”,主旨是陳皓認為軟件開發不需要專職測試人員
陳皓年前加入了淘寶北京,貌似直接是P8,P9的級別,是位技術大佬。以下簡單分享幾點。
軟件開發的現況
軟件的複雜度持續不斷地提升
- 業委需求複雜度
- 部署運營覎模複雜度
- 維護支持複雜度
軟件開發迭代周期和頻率越來越快
- 開發、測試周期
- 交付周期
- 解決問題的周期
軟件的運行和質量要求的越來越高
- 擴展性
- 穩定性、可用性
- 用戶體驗
軟件開發出現的狀況
軟件的問題
- 業務分析能力的不斷提升
- 軟件產品的質量隨著複雜度的提升越來越差
- 軟件的測試和維護成本越來越大
- 解決軟件問題的成本越來越大
管理問題
- 團隊越來越大,分工越來越細
- 團隊的合作問題
- 團隊的執行力問題
- 團隊的流動問題(內部和外部)
- 團隊的成長問題
團隊現況
程序員被這些人包圍:高層老板,研發經理,產品經理,項目經理,流程SQA,架構師,敏捷教練谘詢師,QA測試,客服支持,運維Ops,BA。每一個苦逼的程序猿背後都有一群指點江山的人。
Talk is cheap, Show me the Code!
問題
- 流程控製多
- 組織單元多
- 利益牽扯多
- 消耗資源多
- 溝通會議多
其實這些也是大公司的問題,普遍大公司都存著這個問題。
思考
• 程序員不能管理項目和迚度?
• 程序員不能做測試保證軟件質量?
• 程序員不能分析需求?
• 程序員不能做運維?
• 程序員不能管理好自己的流程?
• 程序員不能架構和設計軟件係統?
• 程序員不能和別人很好的合作?
觀點
• 如果不信仸程序員,你還招他幹啥?
• 如果程序員隻會編碼,這是不合格的程序員!
• 自己管理自己是最有效的!
• 管不好自己的員工,找人來管是錯誤的!
• 程序員是生產力的主力!
• 其它大多數人都在降代團隊的生產力
• 優秀的程序員創造的價值是平庸程序員的10000倍!
• Eat Your Owe Dog Food! 隻有吃自己的狗食才會有改迚!
• 程序就是用來自動化一切機械的勞動!
• 主動工作的生產力進大於被動工作的生產力!
程序猿必備技能
• 程序員必需懂編程技術,開發工具,軟件工程
• 程序員必需理解需求
• 必需站在用戶的角度上思考問題
• 程序員必需懂測試
• 自動化測試,測試案例設計。
• 程序員必需做係統維護
• 自動化部署,自動化
• 程序員必需管理好自己的工作
• 程序員知道什麼流程方法最適合自己
• 輕重緩急,時間進度
Google的工程師文化
• 對工程師的信仸和尊重
• 每位員工都有20%的工作時間可以做自己想做的事情,很多產品 就是用這 20% 的時間做出來的,比如眾所周知的 Gmail 。
• Larry Page:"this company will be run by engineers" (not marketing not sales)
• 自由平等,信息透明
• 數據說話 (quote netscape executive)
• 層級扁平,TGIF上可以提各種尖銳問題 (dory and live questions)
• 公開所有項目的:文檔,代碼、覎劃,數據,資源
• 自己設置目標
• 激迚地目標設定,完成基本上是60%左右。
• 給管理層打分
• 不受程序員喜歡的管理人員會被離職。
Facebook的工程師文化
• 項目的資源完全來自工程師的自願
• PM遊說工程師們,試圖吸引工程師為他們的想法而工作
• 工程師自己決定去幹哪個產品經理的活
• 工程師然後去給他們的頭兒報告:“我本周要幹5件事情”。工程師的頭兒幾乎可以說是放仸手下各行其是,偶爾給點做事情 優先級的忠告。
• 工程師自己處理所有的事情,從js到db的所有邏輯。如果他們期 望得到設計師(FB裏隻有非常少的專職設計師)的幫助,他們需要自己去搞定設計師來加入他們的項目;如果需要架構師同樣也得 自己來搞定。但通常來說,工程師自己幹所有的活
Amazon的工程師文化
• SDE – Someone Do Everything
• 工程師從需求分析一直做到線上運維
• 大量的自動化工具(測試,部署,監控)
• 需求來的時候要問為什麼要做?
• 少量的QA,Designer,沒有架構師
• 沒有軟件開發流程,團隊說得算
• 非常嚴格的招人
• Pizza Team 文化
• UP the River
軟件公司的兩種管理方式
WIDGET FACTORY(小商品工廠)
• 一般人的本性是懶惰的,工作越少越好,可能的話會逃避工作,大部分人對集體(公司,機構,單位或組織等)的目標不關心,因此管理者需要以強迫,威脅處罰,指導,金錢利益等誘因激發人們的工作源動力。
• 經理總是要去做他下屬的工作。這種團隊中的每一個人都很容易被別人取代,在這種團隊裏,經理的工作能力不斷地被加強
• 這種公司一般使用樹形層級的組織結構,而不是水平式的工作角色。
• 他們對實實在在的軟件開發漠不關心,他們想要把理想中的軟件開發運作變成他們看得見的圖表。
• 經理總是要去做他下屬的工作。這種團隊中的每一個人都很容易被別人取代,在這種團隊裏,經理的工作能力不斷地被加強
• 這種公司一般使用樹形層級的組織結構,而不是水平式的工作角色。
• 他們對實實在在的軟件開發漠不關心,他們想要把理想中的軟件開發運作變成他們看得見的圖表。
FILM CREWS(電影工作組)
• 這種公司認為人是有相當高的智力和創造力的,是自己可以激發自己的。
• 每一個個體的自已專業能力,要進進優於那種被組織和協調出來的能力。人們努力工作,幵且可以享受工作。
• 工作職責變得非常地垂直——你需要具有從上到下的而比較寬泛的各種能力。
• 經理了解把一個偉大的軟件組合起來的每一個碎片。他的角色是鼓舞大家,守護著方向(Vision)
• 團隊裏的每一個人都很關鍵,因為團隊相信軟件的結果來自所有的參與者,以及他們的那種獨一無二團隊工作方式。
• 每一個個體的自已專業能力,要進進優於那種被組織和協調出來的能力。人們努力工作,幵且可以享受工作。
• 工作職責變得非常地垂直——你需要具有從上到下的而比較寬泛的各種能力。
• 經理了解把一個偉大的軟件組合起來的每一個碎片。他的角色是鼓舞大家,守護著方向(Vision)
• 團隊裏的每一個人都很關鍵,因為團隊相信軟件的結果來自所有的參與者,以及他們的那種獨一無二團隊工作方式。
小團隊的前提
• 知識密集型的企業
• 價值觀和目標一致
• 產品要簡化到簡單到不能簡單
• 資源平等,信息透明
• 個體能力要強,都是T型人才
• 沒有中心控製,通過團隊協作自治
• 自組織,自協作,自管理,自迚化
• 價值觀和目標一致
• 產品要簡化到簡單到不能簡單
• 資源平等,信息透明
• 個體能力要強,都是T型人才
• 沒有中心控製,通過團隊協作自治
• 自組織,自協作,自管理,自迚化
團隊管理三板斧
• 標準化流程(製度)
• 質量控製
• 過程管理
• 項目監控
• 過程改迚(方法)
• 持續集成和自動化測試
• 極限編程
• 快速迭代
• 激發團隊和人員(文化)
• 團隊和個人發展
• 團隊主人翁精神
• 團隊和個人的執行力
• 質量控製
• 過程管理
• 項目監控
• 過程改迚(方法)
• 持續集成和自動化測試
• 極限編程
• 快速迭代
• 激發團隊和人員(文化)
• 團隊和個人發展
• 團隊主人翁精神
• 團隊和個人的執行力
工程師文化 == 創新衝動
(全文完)
最後更新:2017-04-04 07:03:34
上一篇:
蘋果才思枯竭?
下一篇:
三星柔性屏 概念雖好市場有限
keeps the bar green to keep the code clean" - JUNIT單元測試
Myeclipse重裝後的必要配置
Flume監聽文件夾中的文件變化,並把文件下沉到hdfs
創業大佬說
Clojure世界:API文檔生成
Asp.net中Json數據的轉化,讀取與應用
Erlang ring benchmark
<轉載>通過 Docker 實現傳統應用程序的現代化
mysql不預讀數據庫信息(use dbname 更快,不會卡)—Reading table information for completion of table and column names
AsyncHttpClient 中的重定向和 setEnableRedirects 方法異常解決