目前分類:Continuous Integration (16)

瀏覽方式: 標題列表 簡短摘要

每次我在跟人家談論 agile, 我常說會不會 scrum 並不重要, 如果你能夠做到自動化測試, 那對團隊的品質就會有幫助, 可是很多人就會問說, CI tool 會不會要花很多時間, TDD 我不會寫, 也沒空用耶. 那我們要怎麼辦呢?

 

automation-testing  


以下是我的一些經驗談, 希望能對大家有點幫助

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

多個敏捷團隊之間的版本控制 (4)

http://www.slideshare.net/ssusere62027/4-37282728 

 

來源:

Version Control for Multiple Agile Teams

Posted by Henrik Kniberg on Mar 31, 2008

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

多個敏捷團隊之間的版本控制 (3)

http://www.slideshare.net/ssusere62027/3-37195342

 

來源:

Version Control for Multiple Agile Teams

Posted by Henrik Kniberg on Mar 31, 2008

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

多個敏捷團隊之間的版本控制 (2)

http://www.slideshare.net/ssusere62027/2-37168743

 

來源:

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

多個敏捷團隊之間的版本控制 (1)

http://www.slideshare.net/ssusere62027/1-37088237

 

來源:

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

很多人提到持續整合時, 都會想到一堆工作, CI server, source control system, automation framework 等等. 不是的, CI 和工具是沒有關聯的, 它能不能成功, 重點是在於團隊能不能遵守紀律. 因此當你們開始實施 CI, 必須和團隊溝通清楚, 不要把重心放到錯誤的地方.

以下是常見的要遵守的 practices:

PracticeMakesPerfect  

1. 編譯有錯在修復前, 不能 check-in 新程式

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

在進行持續整合時, 你需要準備以下事情

 

 

chart-continuous-delivery  

1. 版本控制

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

在大型開發團隊中, 很多時候 source tree 上所產生出來的 build 都是無法執行, 通常是最後一兩周的階段, 這個系統才有機會真的可以運轉.

為什麼會這樣呢? 主要原因是早期開發人員在寫程式時, 只在乎自己的那一塊是否寫完, 至於和別人都在一起是否能動, 那是之後的問題, 老闆只會為你寫完了沒有, 而不是這個系統能不能動.

所有通常在專案進入測試階段時, 大家才會開始處理這個系統是否能運作的事情. 也就是開始修復 bug. 這裏要花多少時間才能修復完畢, 系統要多久才能穩定, 就要祈求上天了. 

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

最近在上 CSPO (Certified Scrum Product Owner) 聽到一個蠻有趣的笑話, 你每天 check-in 程式幾次?

 

Pair_programming_1  

很多時候, 你會看到有些人宣稱他們在實施持續整合, 他們用的是 XX 系統, 然後有做測試自動化, 聽起來十分厲害, 會以為他們敏捷實行的很好.

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

幾天前遇到一個討論, 讓人印象深刻. 

在 agile 中有個 practice 叫做 continuous integration, 它能幫助你, 及早發現系統整合上的問題, 以及讓你可以保持隨時可以有運行的系統, 或是可以發佈的系統.


continuous-integration    


kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

十件有關Continuous Integration的事情

10 things you might not know about continuous integration, by Jeffery Payne

1. The name says it all
- 告訴你就是要持續整合, 以早期就排除問題
- 需大量依賴自動化

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

有關Continuous integration相關討論


目前國內對於constinuous integration(CI)的討論還真不太普遍, 目前只有收集到這些. 如果大家有看到一些好文章, 歡迎分享一下.

1. Hudson

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

Continuous Integration is an Attitude, Not a Tool
http://jamesshore.com/Blog/Continuous-Integration-is-an-Attitude.html

很多人一提到CI(Continuous Integration), 都會誤解認為它就是一堆Tools所成的集合, 事實上不是這樣的.
首先我們來看agile的宣言

Contrary to popular belief, continuous integration is an attitude, not a tool. It's a shared agreement by the team that:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

CI 是會了達到宣言中的working software, 因而所產生的practices. 也就是說我們不只口頭上說我們要agile, 並且我們的做事方法上, 也會配合agile精神來改變.

那什麼是CI呢?

Assembling software every time code changes

“ … is a software development practice where  members of a team integrate their work frequency…”

Each integration is verified by an automated build (including test) to defect integration errors as quickly as
possible

所以CI是希望程式一有變動, 便能快速確認大家的程式碼, 是否還能運作正常, 讓軟體經常保持在可運作的狀況下.

這也就作者為什麼說CI 是一種態度一種觀念, 而不是一堆tools. 根據作者的經驗, 他的觀點如下,首先他認為CI是:
   1. When we get the latest code from the repository, it will always build successfully and pass all tests.
   2. We will check in our code every two to four hours. (他這裡的經驗是大約是每2~4小時check-in 一次)

他們practice的其中一種作法是:
   1. Before check-in, run the build and tests and make sure they pass.
   2. Tell people not to update from the repository because you're doing an integration.
   3. Check in.
   4. Go to a different machine (often a dedicated "integration machine"), get the latest code from the repository, and make sure latest changes build and pass there, too.
   5. Done--tell people they can update again.

當然要完成這些工作有很多種方法, 一般常見的是利用不同的tools來加速其進行, 這也就是為什麼大家誤解CI就是一堆Tools. 其實是先有這些觀念和流程, 然後才找出一堆tool來配合工作的進行.

當然每個tool有每個tool強項的地方, 不會有一個tool可以解決所有的事情. 所以作者也提到不要一想到CI, 就只記得CI server - CruiseControl, 它也只能完成步驟4的部分內容而已

希望大家對CI的認識, 不要再只是侷限於它是一堆Tools.


kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

在 CI中如何縮短build的時間以增快feedback

from Chapter 4 Building Software at Every Change, Continuous Integration

在CI(Continuous Integration)中, feedback的時間是非常重要的. 在這段時間中, 產生build的時間所佔的比例是非常大. 因此如何縮短build產生的時間, 是run CI的人重要的課題

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

Is Pipelined Continous Integration a Good Idea?
Amr Elssamadisy

http://www.infoq.com/news/2007/09/CI_Pipeline


當我們在apply CI時會遇到一個問題: 那就是CI執行了太久.

有時候是因為compile source code太久, 像我們的程式要4~5 hrs

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

Continuous Integration

CI是最近公司流行要做的practice. 但是很多人還是不知道它是什, 以及它有什麼功用. 因此小弟在此survey了一下,來跟大家介紹.

1. Agile Software Development
不能免俗的先介紹一下agile宣言是什麼, 從這宣言中再導出什麼事CI要focus的
(1) Agile manifesto
Individuals and interactions over processes and tools

kojenchieh 發表在 痞客邦 PIXNET 留言(0) 人氣()

找更多相關文章與討論

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼