發表文章

目前顯示的是 2016的文章

Scrum 敏捷軟體開發實務班

如果你覺得敏捷很有趣,想多了解一點,可以參考以下連結: http://edu.tcfst.org.tw/query_coursedetail.asp?courseidori=06C335 來聊聊吧 :)

敏捷式結婚

圖片
我真的是個把敏捷融入到日常生活的人....XDDDD 各位知道結婚啊,是一件突發狀況會超多的事情嗎?而那些突發狀況是不可能預先被計畫的,你怎麼可能知道你三叔公六姑婆在訂婚前會說什麼什麼不合習俗?你怎麼可能!!?? 而敏捷跟 scrum 就是比較能處理突發狀況的方法,所以我把我的終身大事,也用敏捷的精神處理了一下,雖然我最熟的是scrum,但這畢竟不是開發軟體,所以我就scrum + agile的混搭了,大家參考參考。

Agile Tour Taipei 2016 心得

圖片
照例發一下心得文~ 今年好像心得文比較少~ 拋個磚一下~ 這次辦得真的很好,因為有講課、有 workshop 還有open space,感覺超充實的。 一大早,就先過去幫忙,貼 survey 的壁報跟小點點啊,因為想說,工作人員真的很辛苦,多少幫一點忙,然後 Yves 也來了,我們就聊了一下工作內容,跟敝公司目前30幾個人是不是跑 LeSS 之類的東西。 然後還是東跑跑西跑跑,就開始了。

scrum alliance 的 certificate

其實認證只是一份收據,他不會幫你加薪,不要為了拿而拿。 但是好像台灣越來越多人在這塊有興趣了,我不小心花了很多很多很多錢拿了很多收據,我的經驗,大家可以參考參考。Scrum Alliance 對 scrum 的三個角色分別有收據:Scrum Master、Product Owner 與 Developer,於是就有了 CSM、CSPO 與 CSD 三種收據,因為小弟恰好對這方面很有興趣,所以都拿到了,以下用一點篇幅稍微介紹:

Agile Tour HsinChu 2016 感想

圖片
這次好累,但是心裡很充實。 五月上完 CSPO, David 哥 就賊賊的跑來問我要不要去 agile tour Hsinchu 講一堂,當時的我,被 Daniel 的課充了滿滿的正能量,就一口答應了。 我的 workshop 這次我玩的是步的遊戲,是我去新加坡上 CSM 學到的,可是大家都說是觀落陰...XDDDD 影片請見:

台灣的敏捷的擁護者好像越來越多了... :)

這次 2016 的 agile tour taipei 早上10點開賣,下午4點多就賣完了 早鳥票也是好像一個小時就秒殺了 這是好事~ 在變動這麼快的年代 好多人還在想半年一年的 project 拉個甘特圖密密麻麻 然後 在這段時間內 又不准改變 或是一改就要去跟客戶或老闆或行銷人員拍桌子吵架 何必呢?

scrum vs deadline

scrum 是由 Ken Schwaber 與 Jeff Sutherland 發明的,而在他們寫的 scrum guide 裡面,並沒有提到 deadline 該怎麼處理,所以我用這篇來說一下小弟我對 deadline 在 scrum 裡面的想法。

如何在 mac 上重複執行指令

以下: for x in `seq 1 10` do echo ====================== echo $x ls done 就會 ls 10次了~

How to 一天一個 sprint?

前一陣子,專案兵荒馬亂的時候,我們急著上線,所以大概兩天就上一個版本。那個時候,我把自己跟我帶的QA團隊,跟那時候的狀況當作是一天一個 sprint,然後我得到了工作的節奏感,不會再慌,這篇文章跟大家分享我那時候是怎麼做的。

一個 team 開發~一個 team 維運~

當兩個 team 在同一份 code base 上開發,用 scrum、Agile 到底怎麼玩? 我把這個問題丟上 fb 大神~ 我覺得是很有意義的討論~ 請見: https://www.facebook.com/groups/179345672472/permalink/10154009349077473/

推動敏捷時,從 Leader 來的問題與阻礙

最近要推動比較大的 scrum team,是新導入的,這個案子大概有 30 人,之前是用 waterfall 做事。 因為有 30 個人,所以原本的設計有切成各個 module,各個 module 會有 leader,這次跟她們溝通,感覺到很大的阻力。 其實,身為 leader,大家大概都知道 devOps、CI/CD等等,是正確的方向與趨勢,所以這個不會遇到太大的麻煩。 但我感覺遇到最大的阻力是:

到底為什麼要敏捷啊啊啊啊啊~~~

圖片
今天舌戰群儒了一番~ 覺得講得不太好 在這邊分享一下幾篇文章與研究報告 快速講心得: 第一篇文章說 agile 專案的成功機會是 Waterfall 專案的三倍 第二篇文章說敏捷的要素 加上做軟體不應該用右下的方法來解左上的問題,所以別再用 waterfall 的方法,別再用傳統思維了啊啊啊啊啊~~~~ 什麼?用右下的方法來解左上的問題 是什麼? 那是我的法寶。 哇哈哈哈 你看不懂是正常的。

來聊一下 PBI

PBI:Product Backlog Item 有了 PBI 代表你已經先有了 Product Backlog,Product Backlog 就是對於這個 product 有什麼願景,或是想完成的事情或是想幫使用者解決什麼問題,就把它寫成一份條列式的文件,這個文件就叫做 Product Backlog。 Product Backlog 裡面每一條,就叫做 product backlog item,一份好的 product backlog 裡面每一項的 PBI 為什麼可以被放進去?因為他符合了 DoR,Definition of Ready,也就是說,他(PBI) 準備好了,可以被 team 實作了。DoR 就是“準備好了”的定義。

[agile meetup] 當敏捷遇上引導:在領導團隊變革遭遇什麼困難

圖片
在 David 哥 的安排之下,9/24 在台北的趨勢科技聚集了一群對敏捷導入有相當經驗的同好們,一起討論了各自在導入的過程中,遇到了什麼困難,這是一場非常舒服且厲害的討論。 直接貼上大家一起討論的結果: 1. 現在好好的幹嘛改變 2. 團隊不知道如何建立信任 3. 對敏捷的導入沒有共識 4. (主管/ScrumMaster) 的引導技巧不夠 5. 團隊溝通不夠有效 6. 高層的信任和支持不夠 7. 傳統的績效管理不適用 8. 不知道如何用 Agile 處理(範圍時程)硬梆梆的專案 9. 工程和領域的技能不夠 10. (因資源有限)角色重疊混淆 11. 讓member 感受到結果的價值 12. 缺乏跨界交流的機會 我的感想是: 1. 原來我不是孤單的,不是只有我遇到這些困難,甚至有些問題我已經有我自己的答案了。 2. 跟專業人士一起做事就是舒服,就算只是三個小時的討論。

[上課心得] 職場素養進階課

圖片
今天公司請了 陳嫦芬老師 來演講,嫦芬老師是台灣很多公司 CEO 的 Coach,而小弟,應該也算是公司內的小小 coach ,只是我是 coach 軟體開發團隊,而嫦芬老師是 coach CEO,功力強好多好多好多好多。今天講的是職場素養進階課,關於這堂課的內容,我很多都超有感覺,因為很多跟我學到的敏捷心態幾乎是一樣的,也讓我更確定敏捷是對的。課程內容可以看 天下雜誌的這篇介紹 ,而這個下午真是太震撼人心了! 我試著用 ORID 的方法 來寫寫看心得... 但我把 R 跟 I 寫在一起好了...每個有共鳴的點我都寫一個 O,然後一個 RI ,簡短的寫,最後用一個 D 結尾。 ====== 第一個 ORI ====== O: 什麼是職場? 職場是“協同合作”的地方 職場是“競技場” 職場是把人才轉化成人力資本的地方 職場沒有標準答案的考場 職場是有付出就有收穫的公平秤 職場不畏失敗,更求成功 R I: 第一點 協同合作 我們的敏捷宣言其中一點就提到了 Collaboration,為什麼不是用 Cooperation? 或是 team work? 第三點的把人才轉化成人力資本 為什麼說是 資本,為什麼不說是 Human Resource? 這個跟上 CSPO 課程的時候, Daniel 說的一樣,假如什麼都 SOP,什麼都 Waterfall,那”人”就是人力了,是可以被替代的一種 resource 了。 如何跟 agile / scrum 一樣,做出有 value 的事情,不管是負責什麼事情,才是我們這群”人”的價值,對公司或主管來說,才是資本。 第四點的沒有標準答案 完全一模模ㄧ樣樣,讓我貼上我在公司內部上課用的投影片: 第六點 不怕失敗 也是一模模一樣樣,fail early,fail fast,最後,failure 會是讓自己跟團隊變得 better 的事情。所以,假如一個 scrum 的團隊夠成熟,sprint 是越短越好。 至於第二點跟第五點說到的競技場跟公平秤,也是很有道理,但 scrum, agile 就比較沒提到這部分。 我能想到的比較接近的有兩個:第一個,在 scrum team 裡面,我們認為每個 team member 的年終考績都是一樣的,這聽起來不太公平,但我們都看得出來某些人表現就會是比較好,因為他在 scrum team 裡面會去 s

我自己常用的 git command

講到git,比起身邊的很多人,我比較不一樣。我是用打指令的方式在操作,以下我就列一下我自己常用的 git command,當作是筆記。 git 很強大 這一篇講的是指令,指令後面會接參數,在這篇文章,我會這樣表示:比如說 “$email” 就是你要填入 email 的位置的意思。 那就,開始了?

[AutomationTest] selenium + cucumber + ruby (5)

請先服用 第一集 、 第二集 、 第三集 第四集我寫錯了~~~~ XDD ========= 前情提要 ========= 基本上我們用前三集把一個簡單的 test case 寫出來,並且不斷的優化。到了第四集,使用物件導向的概念把 Page Object 拉出來,並把一致的操作放進去。外面的 Given-When-Then 就可以專心的寫業務目標,方便不懂程式與軟體的人與開發團隊溝通。 這集我們要來說一下小技巧。 ========= 技巧 ========= 1. 只跑一個 scenario 的方法 就是加 tag 在 scenario 前面加個 @tag_name 然後在 console 下 cucumber --tags @tag_name 就可以只跑那個 scenario 2. 只跑一個 feature 檔的方法 就是指定 feature 檔的路徑就好 console 的下法是 cucumber ./features/XXX.feature 就可以只跑那個 feature 檔 3. 參見 第二集 ,如何快速跑出那黃黃的那段,而不開真正的 browser。 就是在 console 下 cucumber --dry-run cucumber 會去比對 feature 檔裡面的東西是不是都有對應的 steps 去實作。 不管是 pre-defined steps 還是 我們自己寫的。 如果有沒對到的,黃黃的就會跑出來,你就可以拿去 copy-and-paste 了。 4. 使用不同的 browser 跑測試 在 console 裡面下: 要用 chrome 的話:cucumber BROWER=chrome 要用 firefox 的話:cucumber BROWER=ff 然後會遇到一點點錯誤,不要慌,基本上照著 cucumber 的錯誤訊息,去某個地方下載某個檔案,放進路徑變數裡,就可以了,這我很久以前做過一次,現在忘了...也無法 reproduce 了。 ========= Retrospective ========= 其實這篇沒什麼好 retro 的,就只是一些指令的下法而已,連圖都沒有貼,cucumber —help 都有寫。 好啦,這大概就是我對 web automation 的所有知識了,剩下就是不斷的練習去熟悉他了。有問題或任何建議也請在下面留

[AutomationTest] selenium + cucumber + ruby (4)

圖片
請先服用 第一集 、 第二集 與 第三集 。 ========= 前情提要 ========= 在前三集中,我們寫了一個簡短的中文的 test case。 因為是中文的,所以方便溝通。 在實作部分,使用了 ruby 跟 selenium-cucumber 。 ========= 大師提點 ========= 假如有看我的臉書的,就會發現有大師來留言了: 如果是自动化测试,那么Gherkin中通常较少出现操作页面的细节,更多的是这个业务的描述。点击之类的操作通常在是step中,或者更好一点放入page object。最后,关闭浏览器用cucumber的after hook,确保每个scenario执行完后,不管结果如何都会关闭浏览器 留言的大師是Jackson Zhang,是 odd-e 上海的顧問群之一,非常厲害,是技術牛人啊! 也剛好我這篇原本想講的就是 Page 的寫法,所以就合在一起來做看看~~ 1. 业务的描述 Gherkin 就是 Given-When-Then 那些,所以我們來放業務的描述,讓他更平易近人一點。 但因為這個 scenario 實在太簡單,我只好硬著頭皮寫了 ... 程式碼在這裡: Feature: 用yahoo查到台積電的股價 Scenario: 從首頁進去 然後去查詢台積電股價 Given 從yahoo首頁進到yahoo的股市首頁 When 查詢台積電 Then 我會看到台積電的股價在 "50" 到 "500" 之間 為什麼是 50 ~ 500? 因為假設 PO 說台積電的股價超過了這個範圍就一定有問題,一定是我們系統有錯。 (假設的麻) 2. 执行完后 关闭浏览器 這個很簡單,在 support/hooks.rb 裡面,加一行 $driver.quit 即可。 3. 操作通常在是step中,或者放入page object 3-1 $driver 哪來的 有這個錢字號啊,在 ruby 裡面,就是 global 變數,他是在 support/env.rb 裡面被 assign 的。 有興趣的可以去深究,這邊我就先不追了。 3-2 拉出一個 StockPage 的類別 因為這只是個很簡單的範例,所

如何不讓 agile project 掉入 local maximum

之前在上課的時候,常常會跟學員說,要小心不要讓你的 project 掉入”區域最佳值”,做法是什麼什麼什麼什麼 (太長,先略過)。 下面這篇文章寫得更詳細了,比我說的更好,所以丟上來跟大家分享.. :) ̨

[AutomationTest] selenium + cucumber + ruby (3)

圖片
請先服用 第一集 、 第二集 。 ========= 前情提要 ========= 我們用中文寫了一個可以自動執行的 test case,這樣的 test case 讓不懂程式的人有一個共同的平台與溝通方式可以溝通,然後我們就寫了 ruby 的程式來執行測試。 這一篇,我們要來仔細看看那個 ruby 程式。 ========= 手把手教學? ========= 1. 開啟yahoo首頁 這邊就是在第 8 行加入 navigate_to 的敘述,那我是怎麼知道要加這個呢? 就是去 這個連結 然後看到第一行,就覺得用用看,就中了。 2. 到 "股市" 首頁去 也是一樣,click 一個 link 以後,等待 3 秒。 其實這邊有一個 predefined step,在 這個連結 的第 21 ~ 23 行: 所以我就把它的 click 的部分拿出來用了。 後面那個 arg1 是一個參數,這裡是 ruby 的標準寫法,我就跳過不介紹了。 3. When 輸入 "台積電" 在輸入框裡面 這邊的寫法應該有很多種,你也可以像前面一樣,去找 predefined steps的實作方法,然後填入。我的寫法是,用 xpath 找到一個網頁上的 element,然後用 send_keys 這個 api,把字串傳過去,然後傳一個 enter 過去。 那這些資料是哪裡找到的呢? find_element 在 這裡 。 找到的 element 在 這裡 ,你也會在這裡找到這個 class 的 send_keys 方法 那傳一個 enter 出去呢?在 這裡 你可以找到。 4. 我會看到 "2330台積電" 的股價在 "50" 到 "500" 之間 首先,這邊會有三個字串參數傳進來:"2330台積電”、”50"與"500" 。 我分別叫他是 tsmc, low, high,來看看 code: line 23:check_element_presence 這個 method ,我也是先去找 predefined steps,然後去找他的實作,最後在 這裡 找到,在第 39 ~ 42 行,這些參數需要摸索一下XDDD。 line 25 ~ 最後面:幹,我摸索超久

[AutomationTest] selenium + cucumber + ruby (2)

圖片
請先服用 第一集 ========= 前情提要 ========= 在上一集裡面我用了應該是全球最短的篇幅就把 安裝 跟 執行 selenium, cucumber 講完了這一篇要開始把鹹豬手伸過去 ruby 那邊 ========= 中文版 test case ========= 1. 改成中文版 這是在第一集出現的程式碼: Feature: 用yahoo查到查台積電的股價 Scenario: 從首頁進去 然後去查詢台積電股價 Given I navigate to "https://tw.yahoo.com" When I click on link having text "股市" When I enter "台積電" into input field having xpath ".//*[@id='stock_id']" When I click on element having xpath ".//*[@id='ystkglonav']/table/tbody/tr[3]/td/table/tbody/tr/td[4]/label/input" Then link having text "2330台積電" should be present 我把它改成: Feature: 用yahoo查到查台積電的股價 Scenario: 從首頁進去 然後去查詢台積電股價 Given 開啟yahoo首頁 When 到 "股市" 首頁去 When 輸入 "台積電" 在輸入框裡面 Then 我會看到 "2330台積電" 的股價在 "50" 到 "500" 之間 Then I close browser 是不是平易近人許多? 2. 執行看看,然後哭哭在 console 裡面,打cucumber,結果出現一堆黃字: 3. 解決黃字的方法 囧 4. Copy-and-Paste 大法 先用你的 IDE or editor 開啟 feature/step_definition

[AutomationTest] selenium + cucumber + ruby (1)

圖片
這一篇來講講怎麼用 selenium + cucumber 來幫 tw.yahoo.com 來做測試 ========= 安裝 ========= 我是用 mac 所以 我很快的帶過安裝的部分 gem install rails gem install cucumber-rails gem install selenium-cucumber gem install selenium-webdriver gem install Selenium gem install selenium-client 假如不知道 gem 是什麼的朋友 請先去 google 一下 然後 我還裝了 firefox 跟他的兩個 plugin: firebug, firepath ========= 準備工作 ========= 1. 開 console,找個資料夾,cd過去 2. 鍵入 selenium-cucumber gen 他會問你 我要做!@#@!#$!@#$!@#$ 事情囉 你確定嗎? 就按下 enter 吧 然後 你會發現多了一個 feature 的 folder 3. cd 進去 feature folder 找一個副檔名是 .feature 的檔 通常是 my_first.feature 用你喜歡的 IDE 或 editor 打開它 我是用 eclipse 你假如發現了 有其他兩個 project 是 android_auto, iOS_auto 沒錯 大概就是他的名字暗示的 以後我再寫怎麼在 android 與 iOS 上 做自動化測試吧~ 4. cucumber 簡單的介紹 cucumber 系列的東西就是由這三個主要的詞組成:Given, When, Then 怎麼用呢? 大概可以先這樣理解: Given 後面寫的是前條件 When 是操作 Then 是預期結果 至於 Feature 跟 scenario 是給人類看的 不影響程式與執行結果 5. 開始想測試 一開始說 我要幫tw.yahoo.com做測試 因為這是第一篇 所以先簡單的: 我想測試能用yahoo查到查台積電的股價的功能 測試場景是 從首頁進去 然後去查詢台積電股價 所以我要打開首頁 按下股市 輸入台積電 螢幕上就會出現2330台積電 6. 把剛剛想的東西翻譯成 given-when-then 以下是程式

[翻譯] Bring Agile to the Whole Organization

原文出自: https://hbr.org/2014/11/bring-agile-to-the-whole-organization by Jeff Gothelf Software has eaten the world. And as it continues to consume new and diverse industries it’s transforming the way business is done. We are all in the “software business” now, regardless of the product or service we provide, forcing us to reexamine how we structure and manage our organizations. 軟體正蠶食鯨吞著這個世界,當他把新興的或不同的產業吞下肚子時,也正在改變做生意的方法,我們所有人現在都在所謂的『軟體產業』裡面了,不管我們做什麼服務或產品,我們都必須重新檢視如何組織並管理我們的公司。 When I ask managers if their organizations practice  “agile”  they almost always say yes. Probing a bit deeper reveals that most of this agility starts and ends with the product development teams – specifically software engineering. There is rarely a mention of “agile in the HR group” or “continuous improvement in finance.” And yet, it is in these infrastructural disciplines that agility must take root to support software-driven businesses. 當我問主管們說,你們的公司是否有在實行敏捷,他們大部分都說 Yes。深入一點了解的話,會發現其實所謂的敏捷只在 product d