Skip to main content


Showing posts from August, 2010

How to Kick Off some knowledge meetings

I've gotten some questions about Knowledge Meetings after I presented them as one of our agile practices at FrOSCon some weeks ago. Here are some more ideas/thoughts on how to do them: What are they? One hour every week. Gather the whole team together, and learn something. What should we learn about? Anything that will be of interest to your team, work-related. Some examples: This new open source library/project/technology we (can) use New programming language This cool testing technique A certain module of the business application The hardware architecture of our data-centers Some applied computer science (algorithms and stuff) What is the concrete contents of a Knowledge Meeting? Anything that'll make you learn. Examples: 10 minute lightning talks/ignites Coding Katas , or Randoris Longer presentations (try to not go over 30 minutes) Lots of discussions! Lots of live coding! Remember : Let people present the things they already know, but.. Give people time to pr

Agile in a Year - Video available

You can now find the recording of the talk  on the page for the Agile-in-a-Year presentation . Note that it's missing the first few minutes with intro, but that wasn't so interesting anyhow, I'm sure regular readers know most of the background . There's about 40 minutes of me talking, and 20 minutes of questions and discussion in the end. Sorry for not being so good at repeating your questions into the mike!

Why Distributed Revision Control increases Agility

I recently did a talk about practices we have introduced to make us more agile. At the end of the presentation, I mentioned distributed revision control as one of the next practices we want to do. Now how on earth does using Git or Mercurial increase our agility? The short answer is:  Feature Branches . The long answer is... We have a defined agile as among other things, this value: Ship working software. This value implies that we keep the mainline of the code (known to many as the stable branch) in a working state. A good way to keep it that way is by making sure that only safe changes make it into the mainline. If you've got developers continuously working on the mainline to create new features piece by piece, chances are the code is in a broken state every now and then. In order to remedy this, lots of companies (including ours) have decided that the team should maintain two versions: one experimental, where new features are developed, and  one stable, which s

Agile in a Year @ FroSCOn 2010

Just a few hour ago, I did a talk called Agile in a Year at FrOSCOn 2010 . Great conference, as it was last year. Hopefully going back tomorrow for day 2! I've put the "slides" and references from the talk on my homepage . Hopefully, a recorded video of the talk will be online soon. Unfortunately, I botched it a bit by forgetting to put on the microphone at first, but got it on about 5 minutes into the talk. Will post back here when the video is ready. And if you were in the audience: Thank you so much! Full house, great discussion and questions afterwards.

Git and Subversion summary

This post is part of  a series on Git and Subversion . To see all the related posts, screencasts and other resources, please  click here .  This post is part of a (slightly chaotic) series on Git + Subversion. Unfortunately, due to my problem with editing posts in Blogger, they've ended up a bit scattered and poorly organized. So here's a summary of the posts with more fitting titles: A big rough introduction to distributed source control and Git Why and how clone of a Subversion repo into a Git repo  (aka SVN mirror) Sharing a Git SVN mirror in a team Sharing a Git SVN mirror in a team clarifications So, if you just want to get into using Git, take a look at 1. If you want to port an existing Subversion repo, 2nd post is the thing. The 3rd and 4th are for those of you who need to stick with Subversion for a while longer. The illustration below illustrates an example workflow for the last case. Ref GitFaq . Note that devs *might* have to run update-refs before runn

Some clarifications on living with Git and SVN

This post is part of  a series on Git and Subversion . To see all the related posts, screencasts and other resources, please  click here .  I'm afraid I exaggerated in my previous   posts , and given the impression that living with Git and Subversion in parallel is easy. I would update it, but Blogger is refusing to edit the post without screwing it up. So here it is in clear text: Be prepared to face some major constraints in using Git against a Subversion repo, compared to how it using Git standalone. The manual says it best: The git svn tools are useful if you’re stuck with a Subversion server for now or are otherwise in a development environment that necessitates running a Subversion server. You should consider it crippled Git, however, or you’ll hit issues in translation that may confuse you and your collaborators. To stay out of trouble, try to follow these guidelines: Keep a linear Git history that doesn’t contain merge commits made by git merge. Rebase any work you

Syncing your Git repo with the Subversion repo

This post is part of  a series on Git and Subversion . To see all the related posts, screencasts and other resources, please  click here .  This is a follow-up to the previous post on how to live with Git and Suversion in parallel . It's really trivial stuff for any experienced user, but was worth noting down somewhere for my own sake. I've cloned a project called "fudge" from Subversion: >git svn clone So my local repo has the correct svn-remote configuration and all that to go with it inside fudge/.git/svn . This is done automatically when you svn-clone. The bad thing is that all my Git-mates at work have to wait for me doing svn-rebase before they can pull the latest code from Subversion from my repo into theirs. I want to get rid of this responsibility. I'll put something similar to my svn-rebasing repository on a server, have it run svn-rebase regularly, and push the changes to a centralized git repository,