狠狠撸

狠狠撸Share a Scribd company logo
文化、方法、工具
跨界打造好的軟體開發環境
COSCUP 2016
共同創辦人暨技術總監 Neil Lee
時間軸科技股份有限公司
現職:
? Hiiir 時間軸共同創辦人暨技術總監
? 淡江大學資訊管理系課程委員會委員
? 台灣大學工業工程研究所(IIIEMS)研究生
經歷:
? 創辦兩間公司,待過兩間 Start-up
? 2013 COSCUP 講者
? 2012 MOCON 講者
? 淡江資管渡船頭之戀BBS站站長
? 三民高中湖畔織星BBS站創站站長
李佳憲 Neil Lee
Agenda
? 新創團隊到創新企業的過程。
? 快速成長的因果業障。
? 如何應用開源軟體解決問題。
? 結語。
與團隊「共好」
與社群「共學」
開始之前講個
從新創到創新團隊
追求卓越的故事
幹點大事
「集結了對現狀不滿想改變的各路豪傑」
出任CEO
迎娶白富美
走上人生巅峰
仔細想想還真有些小激動
2016 COSCUP 文化、方法、工具如何跨界打造好的軟體開發環境
Go Live or Go Died?
短期專案 / 累積經驗 / 累積資源
目標是什
麼?
專案
一
專案
三
專案
二
產品
一
2016 COSCUP 文化、方法、工具如何跨界打造好的軟體開發環境
出任CEO
迎娶白富美
走上人生巅峰
仔細想想還真有些小激動
故事总没有那麼美好!
升
級
團
隊
不同产物但為了共同目标前进
新創團隊到永續創新企業
? 公司成長的階段
? 產品生命週期
? 團隊成長的循環
? 組織的調整變型
四者交互影響著每個發展的階段
單一產品:貼曆
1500 萬 PVs
380 萬 User
規模:30 人
Hiiir 成長三階段
2008-2010
(天使)
2010-2012
(自給自足)
2013-Now
(資金浥注)
三網一實品牌專案:
可口可樂、全家、爭鮮
(破百項大小專案)
規模:60 人
friDay 購物、巷弄、時
間市集、AAMiner
(六項平台)
規模:300 人
衝撞市場
(追求亮點)
生存擴張
(追求效率)
建立生態圈
(追求傳承)
ECO-System
發展期 嘗試期 成長期 平原期
特性 快速變動 隨市場調整 兼顧穩定與彈
性需求
提供穩定服務
組織狀態 組織扁平 逐漸形成分工 營運及開發
需保持平衡
分工明確
市場規模 預測 驗證預測 有固定使用者 穩定佔有超過
1/3 或市場獨
佔
產品生命週期
? 新創團隊期 – 有默契目標契合的夥伴
? 低潮期 – 發展不如預期時
? 急速擴張期 – 找到浪頭逐浪而起
? 團隊崩解期 – 快速擴張導致的文化不一致性
? 核心團隊建立– 集合願意相信改變的夥伴
? 重新開始 – 透過核心團隊開始建立文化
團隊是成長重要的關鍵
個人會成就團隊,團隊也會榮耀個人
(有神快拜)
(廟要倒了神都走了)
(管他是什麼先來再說)
(有耶穌有佛祖到底那一趴)
(相信能反擊的搜查隊呀)
(開始遠征吧)
團隊成長循環
扁平化組織 專案型組織 衛星型組織
新創團隊期 低潮期
急速擴張期
團隊崩解期
核心團隊建立
重新開始
2008 2009 2010 2011 2012 2013
20人
產品研發團隊組織演進史
8人 40人
2016
邦聯型組織
俱有共識
的聚落
100人
議會
2013 展開了另外一次的挑戰
? 股東期待大
? 成長速度快
? 文化碰撞大
快速成長的難題
因
? 股東期待大
? 成長速度快
? 文化碰撞大
亂中有序因
快速成長的難題
2016 COSCUP 文化、方法、工具如何跨界打造好的軟體開發環境
? 股東期待大
? 成長速度快
? 文化碰撞大
亂中有序因
果
(出來混遲早要還的)
? 人員流動快
快速成長的難題
2016 COSCUP 文化、方法、工具如何跨界打造好的軟體開發環境
打造好的軟體開發環境因素
環境
文化
方法
工具
人
How to Open?
工廠 VS 創意
文化 方法 工具
多一點「領導」少一點「管理」
用「團隊」取代「英雄」
釋放
腦力創意
文化 方法 工具
公司文化
部門文化
個人習慣
命
令
下
達
貫
徹
服
從
管理的雙向
文化 方法 工具
公司文化
部門文化
個人習慣
教
練
引
導
創
造
動
能
領導的雙向
文化 方法 工具
文化 方法 工具
文化 方法 工具
好的軟體開發環境元素
環境
文化
方法
工具
人
? 敏捷文化
? 領導>管理
文化 方法 工具
文化 方法 工具
市場營運
可規劃有明確流程 無法預測的使用體驗
ScrumScrumbanWater-fall
? 多數人的慣性仍習慣 Water-fall 的開發方式。
? 兼顧各單位的習慣和需求,需要逐步推廣演進。
重新定義 R&R 和 建立有效 KPI:
? 事業單位是眼睛(行銷、業務、企劃、營運)
? PO 是溝通分析者(PM、企劃)
? 大腦由團隊形成共識決(Cross function Team)
? 手腳執行(Design、RD)
溝通
不同文化 不同年紀 不同部門 不同層級
文化 方法 工具
文化 方法 工具
如何建立人與人的連結
類型
參與人次
預期成效
創造內外部交流的機會
文化 方法 工具
? 約莫 30 場的內外部交流
持之以恆的舉辦 – 讓彼此知道彼此
訊息透明度解決溝通問題
? 工作任務的透明度
? 溝通內容的透明度
? 成果狀態的透明度
善用開源軟體 提升資訊透明度
自動化機制解決效率問題
? 測試的自動化
? 部署的自動化
? 監控的自動化
目標清楚 工作有效率
文化 方法 工具
2013 如何讓團隊有效率的運行
2016 清楚目標、有效率的運行
最大的關鍵的改變
文化 方法 工具
溝通
建立人與人之間的連結
提升資訊透明度
文化 方法 工具
好的軟體開發環境元素
環境
文化
方法
工具
人
? 敏捷文化
? 領導>管理
? 開發方式
? 重新定義
R&R / KPI
? 有效溝通
2008-2013 2013-Now
工作任務的透明度 Trac , SVN Redmine,GitLab,白板
溝通內容的透明度 MSN Slack,白板
成果狀態的透明度 人 Jenkins, Redmine,白板
測試的自動化 人 Jenkins,
(phpunit,clover php)
部署的自動化 人 Jenkins,Gunnery,Foreman…
監控的自動化 人 Nagios,Ganglia…
開源軟體比較對照
文化 方法 工具
文化 方法 工具
2008-2013 以 “人” 為主,工具為輔
Gunnery
Monitor:
2013-Now 營運開發流程
文化 方法 工具
RD PO
文化 方法 工具
DevOps flow All in Slack
主機警示訊號
程式部署提示
部署後狀態
程式碼品質
任務狀態
部署任務於 Redmine 派送透過 Slack 進行通知
Redmine 詳盡紀錄部署資訊
GitLab 紀錄 Code Diff 及 CodeReview / Merge Log
每次 commit code 會由 Jenkins 排程自動驗站 Quality
部署時會透過 Jenkins 進行 Auto Testing 驗證
DevOps 部署後透過 Slack 更新状态给各主管
Gunnery
Monitor:
2013-Now 營運開發流程
文化 方法 工具
RD PO
好的軟體開發環境元素
環境
文化
方法
工具
人
? 敏捷文化
? 領導>管理
? Redmine
? GitLab
? Slack
? Jenkins
? 開發方式
? 重新定義
R&R / KPI
? 有效溝通
? 文化需靠演進堆疊而來,不是革命也無法命令。
? 沒有最好的方法,只有適合的方法。
? 天下唯一「不變」的道理就是「變」。
? 這是我們的故事,但每間公司有自己的故事。
Q & A
謝謝大家
行動 商務 社群 媒體
Email:neil@hiiir.com
FB:chiahsienl
Line:chiahsienl

More Related Content

2016 COSCUP 文化、方法、工具如何跨界打造好的軟體開發環境

Editor's Notes

  1. 很高興又有機會再次踏上 Coscup 的舞台,我是 Hiiir 時間軸的共同創辦人 Neil, 還記得三年前在 Ticc 時曾經也站在過台上,當時分享了 2013 年當時我們怎麼應用 OpenSource 的工具讓團隊運作得更有效率。 三年後的今天,我們又進步了一些,希望今天的分享也讓大家能有所收獲。 我今天不是代表個人來分享,是代表 Hiiir 產品和技術團隊每個一起在建立這個環境的同事,與團隊共好,希望今天能在這個場合與社群共學。 開始之前我們先講個故事來回味一下一間新創公司走到創新公司的感覺。
  2. Product driven -> Consumer Driven
  3. 我們從一個共好開始講起,去年記得於 Hiiir TownHall Meetinf 邀請了李邵堂老師來進行演講,他說了 松鼠 / 海獺 / 雁子的故事,一間企業如何從了無生氣,走向創造卓越的故事。
  4. 我们期待又酷又帅,但现实往往惨忍又无奈。
  5. 当遇到第一个挫折,生存或是解散?要生存就要想办法赚到活下去的本钱,在台湾一个拥有技术的团队通常选择就是走上接案之路。这时候内部会产生许多专案型团队,有着一个又一个的目标。但却不一定一致。
  6. 在當時或許大家都是,搶錢 搶糧 搶地盤
  7. 在我们以為有了资源就万事搞定时,就会发现这是否与团队的初衷一致?我们不是怀抱颠覆世界的坏主意吗。怎麼只是在追求赚钱就好?
  8. 懷抱著這樣的不滿足,會開始期待要升級團隊成為默契十足的 A Team。
  9. 叁个维度的成长阶段
  10. 资金和资源的溢助是另外一个挑战的开始。
  11. 當理解在公司成長 , 產品生命週期 投資人投資只有一個目的,就是如何及早獲利。在一年內 Hiiir 開發上線了四個內外平台,並持續服務過去的品牌客戶。有這樣的期待我們的規模在一年間成長 5 倍到了 300 多人,這股成長的速度也帶來了文化的碰撞,
  12. 這陣子聊天有聽到,會有 RD 堅持不把寫的 Code 讓其他人看,這其實就是對於文化的不同。
  13. 会走上创业这条路,一定是怀有某些初衷『兴趣使然的英雄』,至少我的髮线逐年变高,也应该要变强些。
  14. 我們要如何解決成長速度所所造成人員流動的問題,過去專注在達成目標而忽略了如何建立一個好的開發環境, 以人為本,
  15. 如何把开源和社群的精神带进公司?
  16. 我們最優先的任務,是透過及早並持續地交付有價值的軟體來滿足客戶需求。 竭誠歡迎改變需求,甚至已處開發後期亦然。敏捷流程掌控變更,以維護客戶的競爭優勢。 經常交付可用的軟體,頻率可以從數週到數個月,以較短時間間隔為佳。 業務人員與開發者必須在專案全程中天天一起工作。 以積極的個人來建構專案,給予他們所需的環境與支援,並信任他們可以完成工作。 面對面的溝通是傳遞資訊給開發團隊及團隊成員之間效率最高且效果最佳的方法。 可用的軟體是最主要的進度量測方法。 敏捷程序提倡可持續的開發。贊助者、開發者及使用者應當能不斷地維持穩定的步調。 持續追求優越的技術與優良的設計,以強化敏捷性。 精簡──或最大化未完成工作量之技藝──是不可或缺的。 最佳的架構、需求與設計皆來自於能自我組織的團隊。 團隊定期自省如何更有效率,並據之適當地調整與修正自己的行為。
  17. 依照貼近市場及營運善用不同方式來進行開發,另外目前台灣多數的 PM , RD 其實叫習慣 Water-fall 的方式,要能全面採用敏捷方式,並且兼顧 需要逐步演進。
  18. 由主管自发,公司赞助。
  19. 有內部各團隊在玩的技術分享,Agile 內訓,和團隊默契訓練,
  20. 10min
  21. 2013 年以前
  22. 隨著公司開始轉向營運,我們導入了更多開源軟體來配合我們的文化和方法進行開發,我這邊舉 friDay shopping 營運開發為例
  23. Sniffer = Codeing Style C/P Status Mess Dectector Current Rulesets List of rulesets and rules contained in each ruleset. Clean Code Rules: The Clean Code ruleset contains rules that enforce a clean code base. This includes rules from SOLID and object calisthenics. Code Size Rules: The Code Size Ruleset contains a collection of rules that find code size related problems. Controversial Rules: This ruleset contains a collection of controversial rules. Design Rules: The Code Size Ruleset contains a collection of rules that find software design related problems. Naming Rules: The Naming Ruleset contains a collection of rules about names - too long, too short, and so forth. Unused Code Rules: The Unused Code Ruleset contains a collection of rules that find unused code.
  24. 隨著公司開始轉向營運,我們導入了更多開源軟體來配合我們的文化和方法進行開發,我這邊舉 friDay shopping 營運開發為例
  25. 文化是靠演進堆疊而來,不是革命。 沒有最好的方法,只有適合的方法。 天下唯一「不變」的道理就是「變」。 這是我們的故事,但每間公司有自己的故事。