l
顯示具有 C. C. Agile 標籤的文章。 顯示所有文章
顯示具有 C. C. Agile 標籤的文章。 顯示所有文章

2017年4月28日 星期五

C.C. Agile 56心得

April 28 15:55~16:49

屏幕截图 2017-04-28 15.23.28

 

昨天是C. C. Agile 第56次聚會,邀請服務於NEXCOM公司的Cobalt Chang分享Software Driven Hardware Development這個題目,談談敏捷開發如何應用於嵌入式系統開發中。

第一次認識Cobalt是在去年(2016)某一次C. C. Agile聚會,當時採用open space(開放空間)的形式討論敏捷開發的問題。Cobalt與他的主管和同事一起參加,Teddy剛好參與他們的討論小組,當下聽到了他們所遭遇到的許多問題,也聽到與會者給他們許多不錯的建議。

本以為活動結束就結束了,沒想到之後每個月Cobalt他們都來參加C. C. Agile聚會,在一次聊天當中Cobalt提到他們落實了幾項當初在open space活動中所聽到的建議之後,解決了不少團隊的問題。當下Teddy覺得很意外,因為說實話大部分的人參加活動聽到建議都只是「聽聽而已」,回去公司之後並不會採取什麼改善行動。沒想到Cobalt他們不但行動,而且還有不錯的改善成效,所以Erica和Teddy便邀請他們來C. C. Agile分享。更難得的是,Cobalt他們的產品是屬於軟硬整合的產業,在與硬體相關的產業落實敏捷開發相較於純軟體產業更加困難

屏幕截图 2017-04-28 16.35.57

***

在Cobalt昨晚的分享中,Teddy聽到幾個很有幫助的做法:

  • 以縮短交期(lead time)為做事原則:Cobalt他們採用許多Scrum實務做法與看板方法(Kanban Method)的精神,因為產品包含硬體設計,所以很難用iteration-based的開發方式在iteration開始的時候計畫這個iteration要完成的功能。因此他們採用看板方法的作法,針對專案的每一個工作項目,首先排列優先順序,在施工的時候運用各種方式儘量縮短每一個工作的lead time。因為觀念轉換,傳統上在硬體部門、韌體部門、軟體部門之間丟來丟去沒人管的工作,就由傳統工作流下游的軟體團隊一肩扛起,往上游追朔找與其他部門的人一起合作完成工作。
  • 說對方聽得懂的語言:Cobalt在演講中舉了一個例子,他們有一個案子因為硬體的限制需要把網路速度控制在100M,但原本的硬體設計並不支援。如果軟體團隊跑去跟硬體設計師說:「請把硬體改成網路速度控制在100M」那麼硬體的人會不知道你在說什麼,無從改起。但如果你跟他說:「把某個接線跳到另一個接線」那麼硬體的人就知道該如何做,也會很樂意幫忙。
  • 說明「為什麼」並請求協助:軟體團隊若只是一味地「指使」其他團隊的人改這個、做那個,對方可能會覺的「我為什麼要聽你的?」如果可以先跟對方說明遇到什麼問題,所以要做一些調整或改變,則比較容易得到對方的配合
  • PM很弱不一定是壞事:不管軟體或硬體專案,許多團隊都遇到「PM(專案經理)」有點弱(擺爛?!)的冏境,團隊成員除了碎念以外,還能怎麼辦?Cobalt提到其實團隊成員大可直接去面對客戶,既然PM不管事那就自己管,到頭來反而順利完成專案(自組織團隊的概念)
  • 把繁瑣的固定知識記錄在Wiki上:軟硬體整合的專案有很多關於設定的細節,如果設定錯誤便會造成系統無法運作。這些知識一定要在解決問題的當下趕緊記錄下來,以減少「重複學習」的浪費(精實開發的作法)。

***

Cobalt在整場演講中並沒有對於Scrum或看板方法作任何說明,而是用四個專案作為例子,告訴我們如何落實敏捷與精實開發精神。許多敏捷開發的初學者經常會糾結於「XXX算不算Scrum?」而忘了原本採用敏捷開發的原意—如何在競爭的環境中保持成功。Cobalt的演講以解決問題為出發點,選用任何可以幫助他們縮短lead time並保持持續改善精神的方法,是一場非常棒的分享。

***

友藏內心獨白:從人鬼殊途到通靈少女。

2016年7月22日 星期五

C.C. Agile Sprint 47實況報導: 這一夜我們談軟體開發之給我一點空間

July 22 10:11~11:27

擷取

 

昨晚(7/21)是C. C. Agile第47次聚會,主題為「 這一夜我們談軟體開發之給我一點空間」,由Erica引導大家以Open Space Technology(開放空間技術,簡稱開放空間)的方式進行。

活動開始Erica先簡單介紹開放空間的四大原則:

  1. 出席的人都是最適當的(whoever come is the right people)
  2. 不管何時開始都是最適當的時間(whenever it starts is the right time)
  3. 不管發生什麼,都是當時只能發生的事(Whatever happen is the only thing that could have)
  4. 結束的時候就結束了(When it's over, it's over)

與會者可以自行運用「雙腳法則」(The law of two feet),自由遊走於各個討論主題。

***

▼接著與會者將想要討論的主題寫在紙上。

螢幕截圖 2016-07-22 11.04.46

 

▼將討論的議題貼在牆上。議題主持人(提出討論議題的那個人)可以自己決定討論的時間。在昨天的活動中,一共安排兩個回合,每個回合同時間有6個主題進行討論。

螢幕截圖 2016-07-22 11.06.25

 

▼兩個回合的議題都確定之後,請與會者看一下對哪些題目有興趣。

螢幕截圖 2016-07-22 11.08.58

 

▼接下來各個議題找一個角落各自帶開,開始討論。在討論的過程中,每個人隨時可以離開去參與其他主題。

螢幕截圖 2016-07-22 11.11.41螢幕截圖 2016-07-22 11.11.54螢幕截圖 2016-07-22 11.12.11

 

▼討論過程中要找人負責記錄會議重點,在活動結束之後,將討論題目與會議紀錄貼在牆上,讓所有人都可以快速知道其他各組的討論內容。

螢幕截圖 2016-07-22 11.15.22螢幕截圖 2016-07-22 11.15.32螢幕截圖 2016-07-22 11.15.40螢幕截圖 2016-07-22 11.16.20螢幕截圖 2016-07-22 11.16.39

 

▼活動結束前大家一句話分享本次心得。

螢幕截圖 2016-07-22 11.18.41

***

活動一開始大家看起來有點拘束,但每組各自帶開之後,討論其實非常熱烈。與會者來自各個不同的公司,有著不同的背景。透過自行決定議程、自己選擇參與討論的議題,聽到各種不同的看法。昨晚Teddy參加的討論,就聽到不同公司實踐Scrum的經驗,還有一位分享他們跑ScumbBan的經驗,十分有趣。

昨晚活動為一有點小遺憾,因為時間限制每個回合只有40分鐘。總覺得才剛了解討論題目的來龍去脈之後,時間就到了。只能說,聊天 討論的時間真的過得很快。

***

友藏內心獨白:每個人都有故事可分享。

2016年5月30日 星期一

C.C. Agile Sprint 45實況報導:用模式語言解決設計問題

May 29 20:38~22:38

螢幕截圖 2016-05-29 22.37.06

 

【廣告】六月「Design Patterns這樣學就會了:入門實作班」招生中。

***

5月26日是C.C. Agile第45次聚會,由Teddy分享「用模式語言解決設計問題」。 模式語言(pattern langauge)是建築師Christopher Alexander所提出的設計方法,也是Teddy最喜歡的設計方法。模式語言由一群相互關聯的模式所組成,用以達到Alexander所提倡「Quality Without A Name(無名特質)」的目的。模式語言提供了溝通的共同基礎,讓一般人可以使用模式語言來解決複雜的設計問題。

練習題目

此次分享沒有製作投影片,活動主題為「設計小家庭的六個居住空間」,將與會者分成六組,透過動手練習理解模式語言。這六個空間包含:

  • 客廳
  • 飯廳
  • 廚房
  • 主臥
  • 廁所
  • 空房(自行決定如何運用)

 

決定空間風格

▼活動開始首先請每一組決定所屬空間的風格,例如廚房組決定要設計「童話風廚房」,飯廳組想要「庭園式飯廳」。

螢幕截圖 2016-05-29 21.23.59螢幕截圖 2016-05-29 21.24.44

 

設計空間

▼決定空間風格之後,每一組開始寫下他們期望這個空間應該具備哪些家具。

螢幕快照 2016-05-29 下午9.32.45螢幕截圖 2016-05-29 21.33.46

 

視覺化設計

▼接著請每個人挑選一個自己最喜歡的家具,然後拿出手機上網找出最能代表這個家具的照片。

螢幕快照 2016-05-29 下午9.38.20

 

▼選好之後用手機擺設出各組所設計的空間,「童話風廚房」重點是有童話人物。

螢幕截圖 2016-05-29 21.40.05

 

▼「一百坪的休閒娛樂房」,裡面被塞了有的沒的奇怪物品。

螢幕截圖 2016-05-29 21.51.24

 

▼「間約風的主臥」真的很簡約。

螢幕截圖 2016-05-29 21.54.43

***

看到這裡鄉民們可能會想「這和模式語言有何關係?」把空間風格與家具視為一個模式,由它們所組成的空間設計,就是一個模式語言

▼這個模式語言可以畫成一張有方向性的圖(graph):

  • 套用模式語言的設計是一種由上而下的過程,上面的家具(pattern)決定整體的感覺,下面的家具讓整體感覺更加具體。
  • 模式語言經由「一次挑選一個模式」所形成。
  • 模式語言圖中位於上面的家具是下方家具的context,下方家具讓上方家具更完整、更成型。
  • 設計者可透過「說話(運用語言)」做出設計,語言中用以設計單位是「模式」,所以稱為「模式語言」。

螢幕截圖 2016-05-29 21.57.32螢幕截圖 2016-05-29 22.08.22

 

▼最後回顧原本要解決的問題是「設計小家庭的六個居住空間」,分組之後得到「家庭劇院式客廳」、「庭園式飯廳」、「極簡約的主人房」、「乾濕分離的溫泉浴室」、「童話風廚房」、「休閒娛樂房」。由這六個空間所組成的住宅,要怎麼稱呼它?好像有點難,雖然每個空間獨立來看都還算完整,但整合起來卻沒有一致性。這是因為一開始練習時特別請每一組先決定空間風格(決定整體的感覺),但是並沒有要求六組需要有一個共同的風格。由此可知由下而上的設計如果沒有事先共享願景(整體的感覺),最後整合的結果很可能變成四不像,或是變成很有「創意」的成品

螢幕截圖 2016-05-29 22.14.34

***

友藏內心獨白:部分的集合不等於全部。

2016年3月14日 星期一

C.C. Agile Sprint 43實況報導:重構三兩事

March 13 21:30~23:10

螢幕截圖 2016-03-13 21.42.30

▲發生什麼事那麼好笑?

 

3月10日是C.C. Agile第43次聚會,由Teddy分享「重構三兩事」。 從去年底到今年三月,因為密集製作重構課程教材,這次活動談談最近對於重構的心得。想不到什麼好題目,就隨便取個「重構三兩事」的名字。把題目給了Erica之後,他問Teddy第一個問題就是:「為什是三兩事,不是兩三事?」

▼題目取得不好,活動當下第一件事就是「重構題目」,把題目改成「嘴砲重構」。顧名思義,這個分享就是Teddy想鬼扯什麼都可以,百無禁忌。

螢幕截圖 2016-03-13 21.48.34

***

▼進入主題之前先說明一下,這次活動所收費用全部捐給「社團法人台北市支持流浪貓絕育計畫協會 」和「流浪動物花園」。

螢幕截圖 2016-03-13 21.51.14

 

▼因為自從2015年1月Teddy領養Eiffel之後,加入了幾個Facebook上面的貓咪社團,後來經常看到貓咪需要幫助的消息。有一次發現「社團法人台北市支持流浪貓絕育計畫協會 」有一個幫助流浪貓結紮的項目,最小捐助單位300元,剛好和C. C. Agile的費用一樣。因此想試看看「用捐助代替C. C. Agile入場費」的活動。至於活動的食物、場地等費用,就由泰迪軟體贊助。

螢幕截圖 2016-03-13 21.54.23螢幕截圖 2016-03-13 21.54.41螢幕截圖 2016-03-13 21.54.57

 

▼在兩個月前鈦坦科技的Kevin協助之下,經過一番討論與「民意調查」,最後終於決定在Teddy分享的這次舉辦。

螢幕截圖 2016-03-13 23.12.05

螢幕截圖 2016-03-13 23.11.41螢幕截圖 2016-03-13 23.11.58螢幕截圖 2016-03-13 23.12.56

 

▼但是,台灣有愛心的人實在太多,原本還有很多等待贊助的貓,現在居然連一隻都沒有了。所以活動只好改成由泰迪軟體代捐。

螢幕截圖 2016-03-13 21.55.29

***

▼回到本次分享的主題。為什麼需要重構?因為希望程式可以持續維持在「軟體的狀況」而不是由軟體變成改不動的「硬體」。

螢幕截圖 2016-03-14 00.06.48螢幕截圖 2016-03-13 22.14.09

 

 

▼接著Teddy從「重構的定義」來談三個議題:如何定義程式外在行為、有哪些程式內部結構可以改變、重構的設計品質提升目標有哪些?

螢幕截圖 2016-03-13 22.14.50

螢幕截圖 2016-03-13 22.17.03螢幕截圖 2016-03-13 22.17.25螢幕截圖 2016-03-13 22.17.37

***

▼第二個話題談重構的定位,重構是一種模式嗎?如果重構是一種模式,為什麼重構用動詞而不像大部份設計模式採用名詞?

螢幕截圖 2016-03-13 22.19.07

***

▼第三個話題從設計方法來看重構。

螢幕截圖 2016-03-13 22.20.47

螢幕截圖 2016-03-13 22.22.20螢幕截圖 2016-03-13 22.22.32螢幕截圖 2016-03-13 22.22.46

 

▼Eiffel告訴大家體驗整體的感覺有其必要。

螢幕截圖 2016-03-13 22.23.31

***

▼最後談一下嘴砲重構的原因。即戰力雖好,但對於全局掌握的程度,將會影響自己幫助別人的能力。

螢幕截圖 2016-03-13 22.25.00螢幕截圖 2016-03-13 22.26.28螢幕截圖 2016-03-13 22.30.52

***

▼分享最後總結重點,以及四點思考的議題。

螢幕截圖 2016-03-13 22.32.05螢幕截圖 2016-03-13 22.32.16

***

▼結束前再看幾張活動照片。

12794793_10153916483263150_6662896723635478969_o12841327_10153916483193150_7133573324395146744_o12841441_10153916483173150_1659671910238096006_o10603977_10153916483168150_6055122797113794337_o10458975_10153916483028150_4051817601953584031_o12794715_10153916483038150_7347775569250934689_o

 

投影片已分享至Slideshare

***

友藏內心獨白:聊天話題也太硬了吧。