I made a quick video of a day of work at our client’s site.
-
Recent Posts
Archives
Recent Comments
I made a quick video of a day of work at our client’s site.
I have arranged a visit in Valtech by Agitar UK people last week. We had a presentation of AgitarOne (Agitator + Dashboard), their recently-released product. Frankly, the documentation and video presentations on their website do not give it justice: there is much more to it than it seems.
On the surface, it would appear to be limited to an Eclipse plug-in that does monkey testing. Well, that is true, but the extensions around this are what make it really interesting. Agitator would generally discover many assertions in the code by static and dynamic analysis, which allow it to run reasonably powerful unit tests. Assertions can be added by the developer as well.
In case of repetitive situations, factories can be created and in order to get more useful assertions created. These factories can go very far, down to replacing code dynamically, even static methods, which in effect is similar to using Mock objects on code that has not been prepared to do that. Private members of classes are accessible too.
There is no doubt that Agitar is doing something very useful here. And, considering the team seem very good technically, they have the resources to go far. Testing at such a technical level still seems like a hard sell. The question is whether they can sell enough, or at least last long enough until that happens?
Pricing: apparently, it depends on the size of the project. According to an article in InfoWorld, one quote is 25,000 US$ per project, per year for the version from early 2006 for small project.
Sun has officially announced that the JVM and the compiler are now open-sourced, under the GPL license, no less. The API is to be open-sourced in 2007, too.
My employer is organizing an Agile Seminar on the morning of December 5th, in Paris. Entrance is free.
Keynotes will be given by a couple of VT guys I know and will be worth it.
Note that most of the seminar will be in French, though one session will be in English.
Considering that we are a distributed team (well, 80% offshore anyway), Craig Larman has been pushing for us to use webcams extensively.
He suggested that each project manager for the project (one offshore, one onshore) should get one, and systematically use them on conference calls.
I consider today that this initiative has been a failure.
In practice, only the offshore manager bought one. The onshore manager couldn’t get around to do it, so I brought my own.
Interestingly, if the offshore manager was not available for a conf call, the Team members offshore would not use his webcam. Presumably it is considered rude (or maybe too aggressive) to borrow someone else’s camera.
Another issue is that it was often too much of a burden to setup a video conf call. Simply, clicking around and ensuring that the other party does the same, is just too much work for what it’s worth. Not only that, but we often had issues where the video feed simply stopped, or even the client crashed.
In the end, it was just too painful to use webcams. It has been at least 2 months that we haven’t used one.
These days, I have setup a “static” camera. That is, one that stays on all the time. No need to request for it: just point a browser to the camera’s URL. Rather like a surveillance camera. The idea behind it is that the other team would have a permanent view of ours, and would get a “proximity” feeling. We’ll see how it turns out.
I am getting more questions in the office about Open Space Technology. There are quite a lot of information on the web — once you know were to find it.
I find this one a useful introduction. Though it describes how a past conference was to be organized, it does summarize quite well what the basic principles are.
This page lists a few short stories regarding the outcome of a Open Space conference. Quite fascinating.
It should also be noted that Open Space will be used in a part of Agile 2007, as it has been the case in previous editions of the conference.
Something to keep in mind for the future: during CITCON, Joe used a projector to display his computer while he was taking notes on the same computer. In this way, anyone who shows up would have an idea of the subject immediately discussed. It might be useful too for people attending the session, as seeing things written down might give them more time to reflect on things.
I had suggested a topic covering “Beyond Installing CruiseControl – CI Culture with Management and Developers”. It actually got merged with “Social Impact of CI”, suggested by Michael, and “How to introduce CI”, from Jeffrey. Jeffrey had, in fact, a presentation that he had already discussed in a previous conference, so most of the session ran around it.
Michael reported that he had witnessed situations where the developers distrusted their management so much that they were quite opposed to CI in general, figuring that it would be used to identify and fire people that break the build often. It could be said that the culture of blame was already there, though.
Jeffrey’s presentation argued that changing habits is extremely hard. He quoted a sociologist who wrote that “familiarity exerts a powerful force”. Essentially, people rather do something that is painful, but that they know about, rather that something better that they do not know.
To leave this vicious circle, one solution is to give small bonuses to the developers. For example, give one sticker per unit test written. The personal impact of this is important; people would probably not do it for money (which would have to be small amounts anyway), but they would do it when it makes them feel good. Douglas commented that he couldn’t imagine doing this sort of things with his team, as it would be perceived as childish (maybe giving tickets for a beer at a company party who work better?).
I think the root of the matter is that constant vigilance is paramount. Basically, it is not possible to simply tell people to write unit tests, or to install CruiseControl. Some will probably start doing so, but precious few will keep on doing for good. Those that do, however, should probably be used as relays to remind the other developers to keep on writing tests, and add new techniques and tools.
That reminds me of a study on productivity. A consultant had realized that, in a factory, productivity would go up when the light is stronger. However, he also noted that, when the light was dimmed, productivity would *also* go up! The point is that productivity increases when people feel that someone is paying attention to them. Or maybe it is the simple fact of changing something in their environment which prevented them from sinking in monotony.
Notes on the session are available on the CITCON website.
I have older posts on CITCON.
Update: quoted sociologist is Virginia Satir.
Mike from Atlassian was quite a vocal participant to CITCON. During the talk on CI Culture, he explained that the developers in his team were among the top 5%, but that they wanted to reach the top 1%. Someone then asked: “where did you get those figures from?” “I just made them up!”
Here are some other random data that could be useful:
I have an older post on CITCON.
I have just finished reading Freakonomics. It’s a great book, but it’s gone too fast! It took me about 3 days to complete it. Also, the authors are right to indicate early on that there is no real unifying topic. Maybe a longer discussion on how they obtained those data would have been useful.
Anyway, it just happens that I read recently about Mass Observation in the New Yorker. It strikes me that the data collected by MO is exactly the kind of data that Steven Levitt would use. I wonder if he has already consider it? Or maybe the data are simply not formalized enough to be useful.
I was generally impressed by what people seems to have put in place for Continuous Integration. Here is a list, from the top of my head:
The Bamboo thing sounds nice, but wouldn’t it be even better to store many other data, such as the number of developers over time, the number of commits, etc.? Some data could be obtained by a tool like Bloof, others from the bug tracking system… The grand plan would be to obtain a huge wealth of information, which could then be exploited by a manager, maybe even with the help of a data analyst. And then, some tendencies would be infered by some brilliant Levitt-wannabe! I can’t wait ;-)
I have an older post on CITCON.
At CITCON, I was quite happy to see one person suggest the topic “CI and offshore”, as I am involved on an offshore project myself. Unfortunately, this person didn’t show up, and just we were just 3 in the session.
At any rate, it seems that the same old problems appear with offshore when using Continuous Integration. Basically, the distance is simply too much of a problem when trying to spread the word.
Someone from Nokia did report that he had good success in encouraging people to use CruiseControl and unit tests. But it must be said that he is not part of a particular project, so presumably he has less pressure to deliver immediate results. Though, he did have to travel extensively to get people to use and keep using CC and JUnit.
I’ve left more detailed notes on the CITCON website.
I have older posts on CITCON.
Someone at CITCON (I’m pretty sure it was Mike) had a really good idea: use the service offered by Amazon Elastic Compute Cloud (Amazon EC2) to run CruiseControl.
Basically, Amazon EC2 offers virtual machines where anything can be uploaded. No need for a physical machine anymore.
If we assume the equivalent of a machine with a 10 Gigs hard drive running 12 hours a day with 5 Gigs of daily traffic (probably vastly more than necessary), the monthly cost would be around:
10 Gigs x 0.15$ + 12 hours x 30 days x 0.10$ + 5 Gigs x 30 days x 0,2$ = 67.5$
Less than 70US$ per month! That’s what it would cost to run a full-fledged machine running CruiseControl. And it appears easy to upgrade to more instances.
This could lead to very innovative usages. For example, as a consultancy, you could setup your system remotely, and get ready as soon as you move to the client site. As a service company, you could easily scale as your customer base grows.
Of course, the main limitation I see is that most companies would be very reluctant to open their local environment to external resources…
I have an older post on CITCON.
At CITCON, there were no pre-arranged sessions with star presenters. To be sure, some participants to the conference were more renowned than others; some of them had even brought papers and presentations they had written that they thought might be of interest. But nobody had been booked to present them at a given date and time. Instead, the setup used was OpenSpace.
OpenSpace appears to be a way of organizing conferences devised in the eighties. It is difficult to find official reference on it. The CITCON organizers (Jeffrey Fredrick and Paul Julius) referred to an “Open Information Group” that they had founded that promotes it. However, the real information seems to be available on openspaceworld.org.
At any rate, the idea behind OpenSpace is to allow attendants to define their own agenda. In a first common session, people suggest topics. Later, during the sessions themselves, they naturally drive the topic to whatever they are most interested in. If someone feels that the discussion has drifted too much from the original topic, or simply is not interested anymore in it, he is encouraged to use the Law of Two Feet. That is, walk away and visit another session. Also, it is considered good practice, though not necessary, to have a facilitator or a scribe. Note that the organizers of the conference invited 120 participants, considering it is the generally accepted optimal number for members of a “tribe”, a group of people where everyone can still recognize everyone.
Though it sounds a bit counter-intuitive, or even hippie-ish, by and large, it seems to work. I’ve been to incredibly lively and rich sessions, where I had things to contribute (and learn). I must also add that some talks were not that focused. In some cases, it appeared that some “star” topics pulled the attention away from less popular ones. So, sessions that received more than 10 “I’m interested” marks, would actually easily attract three quarters of the crowd, leaving those with less than 4 marks empty.
This setup was great to promote conversations outside the sessions too, which is quite an accomplishment, if I compare that to my experience in traditional conferences. Also, and that came as a surprise to me, it appeared to be useful to people with no experience of the main theme. For one, they could suggest candid topics (“What is Continuous Integration”), knowing that seasoned practitioners could always leave to another session. And second, their topics actually did attract experienced people too, sometimes pushing the talks to a slightly more philosophical level.
All in all, OpenSpace was a enriching experience. I wonder if it would turn out in a different context. Would that work in a less focused conference? What if the people were of vastly different backgrounds? or were involved in traditional trades that are not naturally open to new ideas?
Here are my own pictures from the Continuous Integration and Testing Conference, London 2006. Official website here. More pictures there, there and there.