login
Blurts on the Art of Software Development

Today | RSS | RDF | Atom | Other Tags
Categories : All | All | CI | .NET | General | Humour | Java | Personal | Reviews | Ruby | SW Eng

DAY 1

So, the first day of my XP development practices training in Riga is over. I'm definitely happy about how the first day turned out.

Of course, there are a bunch of things that I would've hoped to have gone better and since I'm into reflecting in the open... Well, here we go.

Before lunch, we talked about object-oriented design and refactoring. These sessions went really well, I think, although I didn't quite manage to illustrate some of the ideas. Maybe I should try more code next time. Or maybe not. It was really interesting to see the guys in the Riga office more or less exhibiting the same views on things that my fellow Finns tend to back home.

We ran some 30 minutes over the three hours I had scheduled for the OO and refactoring stuff (we also started 15 minutes late but I already know to expect that when making schedules) so we only managed to cover the very basics of developer testing before lunch.

(LUNCH)

Now, the lunch was both a good thing and a bad thing. The good about it was the guys took me to this very nice restaurant and the food was fantastic -- and with half the price of a typical Finnish industrial kitchen where the food sucks more and more every day and the prices keep on going up, up, up. The bad thing about the lunch was that it took 15 minutes longer than scheduled.

After lunch, we continued with developer testing, going through the main mock objects frameworks, how to test J2EE components such as Java Servlets, JavaServer Pages and Enterprise JavaBeans.

Observations on what I should look into improving about the set:

  • Spend more time on the different kinds of mock objects before diving into examples
  • Spend more time on the different patterns present in unit testing
  • Maybe I should've scheduled the topics in such a way that the use of different libraries would be more or less in order instead of jumping from library to library and back. Maybe. I don't know. Maybe I'll know after sleeping on it. Or when I get the feedback.
  • Don't put two exercises one after another. Either combine them into a single exercise or spread them out a bit. You can come back to comparing the various approaches/cases/whatever later on.
  • Maybe spend a bit more time on testing EJB's (using examples that are closer to Real World).
  • The TDD stuff was a bit too aggressive. I really should back this stuff up with (two-way) discussion. Being late of the schedule obviously made things worse but it would probably have been too aggressive in any case.
  • I should make a more clear separation of customer testing and writing automated functional tests. The two seemed to merge together a bit which isn't a good thing.

Ok, that's it for now. I'll have to run now to get something to eat before diving into tomorrow's lab (I got yet another idea for it so I'll try to make it happen before 9am...).

DAY 2

Alrighty. I managed to come up with a pet project that the team could practice their newly acquired knowledge with and that remotely reminded their actual real world project(s). Later on I heard that I got almost too close with my made-up application domain...

At the last minute, I decided to pull away all the source code I had managed to pound in before today. I felt that providing code would cause confusion and believed that the guys wouldn't have too big problems getting started. They didn't.

What the team did have problems with was to get into the "deliver little but often" zone. That's what I expected. We did the exact same thing when first trying out XP with Frank Westphal.

(LUNCH)

Ok. Back to work. We've still got three hours to do some iterations. So far, the idea of doing stuff in iterations hasn't really sinked in. In hindsight, I should've talked more about the process and agile project management in general, probably right before introducing the lab exercise. It would've balanced certain things during the exercise.

...

Ok. I'm back at the hotel after another long day. I have to try to get some more sleep before this kind of full-day trainings. I actually had trouble staying awake at times since I wasn't talking too much during the lab exercise.

Lots of things to write down about the lab. The core lessons I hope I'll remember were 1) stronger focus on keeping the lab exercise disciplined instead of talking to Bill (insider joke, sorry...), and 2) prepare the full environment instead of letting people download and install application servers on the spot (the idea was, of course, that I didn't want to impose too much technical decisions to the teams but I see now that--at least for this particular assignment -- it would've saved a lot of time for other, more important things that would've been more relevant to the topic).

Something that I feel I should've known by now was that people actually need more warmup for their brains to participate fully than the instructor who's doing the talking. One specific topic I perhaps should've "warmed up" with was the objectives of the course itself. In the end, it wasn't so clear which parts of XP I'm leaving out and which are covered so the big picture might've been a bit confusing without prior awareness of XP.

Also, looking at the feedback forms, I see that there's a lot of writing for the freeform questions -- that's great. That's simply great. There's nothing better than to "hear" someone explaining *why* he liked or didn't like something instead of "just giving it a rating". I love feedback. If it's bad, I don't like it at first, but it doesn't take long for me to value the "negative" feedback even more than the positive ones.

Trying to summarize the ticks on the feedback forms, I see that people liked the material and exercises very much, considered the course perhaps a bit too short (it definitely was because I didn't talk about the project management stuff explicitly, only when someone took it up in some other context), weren't being motivated enough by your's truly, and the topic people felt being most relevant to them was the testing techniques and refactoring.

...

Finally, guys, if you happen to be reading this, let me extend big thanks to all of you for a very entertaining two days. You were a fun bunch to work with. I'd be happy to come back so just say the magic words to Suba and others ;)

...

Ok. I'm out. I'm totally spacing here. Maybe I should get rid of those two Ruby/Rails .mov files on my desktop by actually watching them. Then again, I'll probably fall asleep if I stay here on the bed.