AGILE IN ACTION

Tag: continuous-integration

Thursday, 16 June 2011

Continuous Integration for the Last Mile

Posted by Simon Baker
Watch Gus talk about Continuous Integration for the Last Mile. The session looks at leveraging continuous integration techniques to deploy and operate software all the way to the end user, exploring some of the difficulties and gotchas along the way.
Read more...

Friday, 15 May 2009

Don't remove failing tests from the build

Posted by Simon Baker

Thursday, 19 February 2009

Don't break the build

Posted by Simon Baker
Comments: 2

Monday, 24 March 2008

What does it mean to be agile?

Posted by Simon Baker
Kent Beck replied:
Read more...

Sunday, 21 October 2007

Continuous Integration using Hudson

Posted by Simon Baker
We've always used Cruisecontrol but in the last project we spent a lot of time deep in the code and it stank, big time. So despite, the facelift , we've decided to try Hudson on our new project. So far, so good. We've got our avatars on the big visible build screen and we've got some new build hats from the Oktoberfest .
Read more... Comments: 1

Tuesday, 10 October 2006

Silly hats for build failures

Posted by Simon Baker
In our team, if you break the build you wear the hats.
Read more... Comments: 2

Friday, 10 February 2006

Ten-minute build, continuous integration and developer rhythm

Ten-minute build It's worth developing an automated, reliable and reproducible build for your project that builds the system and runs all the tests. It should be run many times a day, initiated by a schedule or in response to some asynchronous event such as checking source code into the repository. You should also be able to initiate the build on demand, e.g. from the command line or from within an IDE. The build needs to be fast if it's going to run frequently. Therefore, you need to invest in continual improvement and optimisation to maintain a ten-minute build cycle. Any longer than ten minutes and the build won't be used as often and won't provide as much feedback. Continuous integration Traditional integration is a big-bang affair, highly unpredictable and typically fraught with problems. A build that runs frequently allows developers to integrate and test their changes often, perhaps every 2 to 3 hours. There's no rule of thumb here; it depends on your code and how you've broken the functionality down into chunks to be developed, but the longer you wait to integrate, the more risky and unpredictable integration becomes. By integrating often, integration is broken down into many small integrations that are performed as part of the cycle: test-code-refactor~~integrate . The integration nightmare goes away and the number of integration problems are reduced. A continuous integration tool like Cruisecontrol can be configured to start the build asynchronously, triggered by a check-in of source code to the repository. If problems are encountered during the build, which includes running all the tests, the developers are automatically notified by email, RSS, or a text message (also take a look at some alternative extreme feedback devices ). The rule here is to react immediately and fix the build. A broken build should not be tolerated. Developer rhythm A ten-minute build automated with continuous integration helps developers establish a rhythm as they develop software. This rhythm reminds developers to integrate regularly. Integration should happen at least once a day and only working tested code should be checked-in. Source code should not be checked-out for days on end, and broken code should never be checked-in. The following diagram shows the steps a developer performs in the test-code-refactor~~integrate cycle. developerrhythm Originally uploaded by sjb140470 I always do a local clean build before I commit any changes to the repository. With a ten-minute build I don't have to wait long before I know whether I can proceed with the check-in. This time gives me a chance to come up for air , grab a drink, or reflect with my pair-programming partner on the work we just completed. If you don't do a local build you'll know about any integration errors as soon as the continuous integration build runs. You can then assess the problem and decide whether a quick fix can be found or whether the changes need to be backed-out of the repository, so that the builds works once again. Continuous integration tools: Cruisecontrol , Beetlejuice , Continuum
Comments: 1