A few projects back, I was working with a team, that had a build server, they had automated tests, but they did not seem to care about them. At least not as much as I wanted them to care about them.
Mm, how do I motivate teams to care about their builds?
One of the things I came up with, was a Croissant build.
A croissant build is when we had enough checkins during the day (that was the teams size + 1) (yes I know that is not much, but I have to start somewhere)
And the build was never red (broken build) for more then 30 minutes
or yellow (failed tests) for more then 1 hour.
I as a scrum master brought croissants the next day.
It helped to show people how I important I found the build (I paid the croissants out of my personal money)
What I don’t like about it, is that it thinks that motivation is extrensic, where I know it is intrinsic. To have less of this problem, next time I use this, I will ask the team what they define as a croissant build.
Question I received after explaining this to other people:
1) Shouldn’t a build be green/blue all the time?
Not in my opinion, if a builds stays green all the time people have been too carefull.
(hence are not innovative enough)
2) They run all tests on their machine and see if it is broken there.
True I want people to run test locally. But I prefer them to run the test of the modules that the are working on. Not all tests, all the time.
3) Should they not run all test before checking in?
Well I want people to check in as fast as possible:
- Write a test
- Make it green
- Run the related tests
- Do a get
- Run the related tests
4) My team has to much trouble syncing, when we checkin more often, won’t be have more problems?
Yes and no. You might have more often a problem, but the problems will be smaller and easier to solve. So the time you loose will be less. (On team level) On a personal level, the faster you check in, the bigger the chance is that you won’t have the problem but somebody else (who is waiting too long to check in.)
So no reason not to check in early.
5) What if after a while my teams get’s croissants every day, that is expensive.
You make the rules stricter.
Now it is
-more checkin’s every day
-less time to fix (this depends on the time the builds run)
-same rules but now for a week, instead of a day
-let them come up with some rules.