Archive for October, 2005

Took some pictures today

There were some nice clouds today and I thought I should capture that. First some pictures outside work, then some while driving back. The ones taken from the car are sorta fuzzy and I think that’s as good as pictures taken at dusk while driving will ever get.

Comments

“Pates a l’ail” aka “Garlic Pasta” !!

Fabienne was in the mood for “Garlic Pasta” today. I’ve been making it every week, for a good 18 or 19 years, it’s a tradition we have now. Typically I do this on Sundays for dinner, but the girls wanted pasta today, so I obliged.

All the steps here.

Comments (1)

Age of Empires III - Collector’s Edition

Age of Empires III - Age of Discovery

After playing the AOE3 demo for a good 5 minutes, I knew I had to have the full game. I went to EB Games to get me a copy and, honest to god, I was going for the normal version. But that clerk just had to ask if I didnd’t want the Collector’s Edition instead, he just had to ask!

“No thanks, but just curious, what’s in it?” - I naively asked.

- A hardbound 200+ page artwork book
- The “Making of the game” DVD
- Soundtrack CD
- A poster
- Player’s guide
- The Game manual
- And of course the game itself

All in a very cool box too. At this point I’m drooling all over the counter, so I ask the one question that I know will solve my drooling problem because I’ll hate the answer: “how much is it?”. I was sure it was going to be $85+

“70 bucks” he says.

Damn, I *had* to have it and so I did :)

The game comes in 3 CDs instead of a just a nice DVD, but that’s okay, it’s not like I need to install it often. At this point I’ve only played the tutorial stuff, but I read the books that come with it, and they’re absolutely great.

Because the game is around “The Age of Discovery” with New World stuff and stuff, we get to play the Portuguese as well (take that Big Huge Games). The other civs are Dutch, Brits, French, Spanish, Russian, German and Ottoman.

Get the Collector’s Edition here for only $60.

Comments (1)

Change is constant…embrace it

Interesting article from Agile Advice.

A team can work with a “horizon of predictability”. This is the distance into the future which a team can be reasonably certain that plans will be stable. Depending on the environment, this may be as little as a few minutes, or as long as a month. It is rarely longer.

Failing to recognize this is what makes us say things like “I’m going to have X done in 3 weeks” only to see that prediction fail. Unfortunately we still spend too much time predicting the future and hoping that *this time* things will be just fine, because this time nothing weird can happen. Teams make this mistake way too often.

Comments

“The Bakeoff” :: Design a better cookie

I only heard about this experiment today. Three different groups sat down to try and design the best and heatlhiest cookie possible. Each group using their own “development process”: Open Source, Extreme Programming (XP) and a more traditional and hierarchical approach (dubbed R&D). Unfortunately the New Yorker article is not online, at least I couldn’t find it, but there are plenty of blogs referring to it. Maybe it will show up here at some point.

When I heard about the experiment I was also told that the XP team had won and that made me want to blog about this cookie business. Now that I read some more, as it turns out here and here for example, that was not the case. In fact the XP cookie came out last :(

Well, it’s still an interesting concept so I thought I’d share it. I guess I have no choice now but to say that cookies and software are not the same thing ;)

I couldn’t find this subject being talked about on the XP mailing list but I’m sure it was debated at some point. Must be my search-fu.

Update: The original article is now available online.

Comments

Bye bye WoW…

…at least for now.

I finally cancelled my World of Warcraft account. I could return some day if I’m bored and there’s nothing better, but for now I’m liberated.

Cancel WoW

I lasted almost 4 months which is a record if I don’t count Ultima Online. This time I really thought I was going to get to the maximum level. Instead I only levelled to level 49 (highest is 60) before I got way too bored, mostly because of the lack of decent PvP.

All the screenshots here.

Comments

To keep in mind for your next project

Article from Martin Fowler: FivePoundBag. Martin Fowler is the author of some excellent books about Agile development, namely Refactoring and Planning Extreme Programming (with Kent Beck).

The tendency is to say “hmm, let’s see, we have this big features over there, we have this much time, yeah, I think I can make it fit, we should be fine”. I know that if I hear this one more time my head won’t explode, because I’ve been hearing this all my (professional) life, so I suppose I’m used to it by now :) We just take it as inevitable, as cost of doing business. We can do better.

Here’s what I try to do so I can sleep well at night:

1. Write stories or use cases or scenarios: These are things that a user would say “Today I need to “. I do this in collaboration with the user(s) to make sure I’m not just doing the cool stuff, not necessarily the useful stuff.

For example “display the list of emails sent to me” is a story (if I am writing an email client). But “IMAP” is not a story for that same project because no user would say “Today I need to…IMAP”. IMAP is “just” a component.

In a previous life I worked for a startup here in the Silicon Valley where we would implement component after component, not really understanding what the value was for the users. It was some really cool technology, lots of novel ideas. We did really cool stuff but ultimately users didn’t care, we were just a box of cool features, nothing more. The company doesn’t exist anymore. I’m not shocked.

2. Now that I have these user stories, or at least a good chunk of them, I work with the user or an expert or whatever to prioritize the stories. I avoid doing it alone, because I know I’ll put the cool stuff on top and I might wind up implementing the really cool LDAP/BER address book for my email client, before the budget runs out, and then I have something really cool from a technical point of view, but totally useless to the user.

3. Break the first stories into 1-2 day tasks. Anything that I would guess “a couple of weeks” really means “at least a couple of weeks” so I stay away from it, because it means I really don’t know. Breaking features down to tasks that can be done in days is hard. But that’s why we’re professionals. Having these one-day tasks is a huge step, it’s design!

4. Now that I have some rough design (or not so rough, but I definitely don’t have big architectural diagrams at this point), I can start implementing things. Ideally “Test first”, so my code is always fully unit tested.

5. Keep track of how long these tasks really take. If a 1-day task ends up taking two days, that means my next tasks are likely to take twice as long (this is called “Yesterday’s Weather”). I then adjust my schedule accordingly. If I thought I could implement 30 stories in 30 days and the first story, and the second, and the third, take 2 days each, then I can really do 15 stories in 30 days or 30 stories in 60 days. No ifs, no buts. The list is prioritized though, so the important stuff gets done first.

6. I keep adjusting it. At first I have no choice but to say “it’s going to take 30 days give or take 15 days”. The more I do the better I know how accurate that is. Soon enough the margin will be measured in days, not weeks (for a 30-day project). But just saying, before I even write a single line of code “it’s going to take 28.52 days” is very precise but not accurate at all. I *hope* it’s true, but I *know* it’s not.

7. Repeat

Comments

Joel Spolsky on setting priorities

I enjoyed Joel’s most recent post, for once it wasn’t just about selling his stuff. I enjoyed Set your priorities mainly for two reasons:

1. I agree it’s probably better to try to reach more folks rather than less. We should be doing what’s important to most customers, not what’s important to *one* customer.

2. Seeing Joel doing the Extreme Programming Planning Game without admitting that’s what he’s doing, was quite enjoyable :) Joel often speaks *against* XP, though he also makes it clear that he’s never tried it. I enjoy Joel’s articles, but he has this irrational thing against XP that’s hard to understand. Which made this article, even more enjoyable in a way.

There are really two parts to it, one about doing what’s good for the customer base vs. TheBigCustomer and the other half is about what looks, talks, and walks like The Xp Planning Game.

“The nattering scorekeepers of the BDUF/Agile beauty contest are now thoroughly confused. “Was that a vote for BDUF? Or Agile? What does he want? Can’t he just take sides for once?!”"

Go Joel! One of these days he might get the whole thing ;)

Comments

Painless Software Schedules by Joel Spolsky

I’ve been reading Joel Spolsky’s “Joel on Software” blog for several years now and though his good stuff is becoming more and more rare, you can still find really good gems on his site.

More specifically I would like to revive his Painless Software Schedules article, which it’s still at least as relevant today as it was five years ago.

Here Joel recommends a very light (and useful) way for developers to schedule their stuff. I’m not going to paste his entire article here. Just enough to give you a taste, and hopefully raise awareness that, in fact, estimates don’t have to be hard, and more importantly they can actually be useful.

Here is the skinny:

1. Keep it Simple — it’s the old “less is more”
2. Each feature should consist of several tasks — Break it down to simple, manageable tasks
3. Only the programmer who is going to write the code can schedule it — You’re the one doing it, don’t let anyone else tell you how long it’s to take you to do it.
4. Pick very fine grained tasks — keep each task at the *hour* level, not week or even worse
5. Keep track of the original and current estimate — Keep track of your estimates (Ideal Engineering Time) vs. what actually happened (Real Engineering Time)
6. Update the elapsed column every day — Spend only a few minutes a day doing this, nothing more
7. Put in line items for Vacations, Holidays, etc. — Make sure you take those, if you don’t do it for you, do you for your team!!
8. Never, ever let managers tell programmers to reduce an estimate. Again, if someone thinks they can do it better, let them do it
9. A schedule is like wood blocks. — Work on the critical stuff first, so when the schedule starts to slip, management has options: add more people if it makes sense, cut features (the non critical features are done last, so it’s all good), delay the release, or even cancel the project if that’s what makes sense.

The keyword here is “options”. The more accurately and frequently you update your schedule, the more options management will have. If they discover in the last week that the 6-month project is not going to make it, then they are left with much less options. Perhaps just miss the deadline or delay it.

The next recommendations I don’t entirely agree with, but for completeness, here they are:

1. Use Microsoft Excel — I actually agree that there’s no need to use heavy duty specialized software such as MS Project, but I’d also argue that MSP has its place and can be a good tool if you use it properly. Either way is fine, it’s just a tool, can be misused.
2. Put debugging time into the schedule! — It should be part of the task itself instead
3. Put integration time into the schedule. — Integrate often and your life will be better
4. Put buffer into the schedule. — Work on the most critical stuff first, update your estimates often, at least once a week, and there will be no need for buffers.

There are other techniques, namely Extreme Programming which go beyond Joel’s recommendations, and I’ll save those for some other time.

If you are sloppy, and pick big “chunky” tasks (”implement grammar correction”), then you haven’t really thought about what you are going to do. And when you haven’t thought about what you’re going to do, you just can’t know how long it will take. — Joel Spolsky

Comments

Download ‘05 Festival - Shoreline, California

12 hours of a mix of hot sun, chilly wind, expensive beer, flying seat cushions, screaming teens and crappy performances. Sounds like hell right? Well, in fact it was fun. I don’t know if I would do it again tomorrow or even next month, but I would do it again…sometime. Spending the day outdoors with family and friends, is so good even crappy performances can’t ruin it.

But to the actual festival: I had never heard of the Download Festival and was pretty excited to see Modest Mouse live. Morgane was going for Modest Mouse and The Killers, Fabienne had no agenda.

We know how cold Shoreline can get when the sun sets, and how much of a rip-off the food is, so we were ready: blankets, lawn chairs, baguettes, cheese, water even magazines. After all it’s going to be a 12-hour marathon!

There were 2 stages, one going from noon to 5-ish, the other going from 4-ish to midnight. We got there a little bit late, around 1, and Bobby and his family were already there. They had just watched Every Move a Picture and the verdict was “pretty good”. I had never heard of them (in fact, from the whole thing, I only knew Modest Mouse and The Killers) so it’s good to know that the opening bands are good, that’s usually a good sign. As it turned out, this sign was the exception to confirm the rule.

I missed the next two bands, The Lovemakers and Ambulance Ltd and don’t think any of us saw them. No idea if they are any good, what they sound like, what type of music they play, nothing. I did see the next one however, Mindless Self Indulgence and it was pretty damn good. In fact, I’m sad to say that it was the best performance of the whole show. MSI is a cross between Marilyn Manson, Faith No More and Prodigy (at least that’s what they sounded like, to me), with a pretty good energy on stage. I wouldn’t be surprised to hear more about them in the near future.

I missed the last band on the “other” stage, HIM. I decided to skip them, mostly because Morgane knew the band and she said “they’re crap”, that’s good enough for me. Bobby went and his verdict was…”crap”. Ha-ha-ha.

While Bobby and his gang were watching HIM on the other stage, I was busy watching British Sea Power on the main one. “Boring” describes it well. Maybe because we had just watched MSI. Nah, they really were booooring, performance and music, boring.

Then it’s up to Arcade Fire. Again, never heard of them, but at this point I’m having a bad feeling. Most bands are dull and I’m afraid this is going to be another one. Sure enough, they are. The surprising thing though, is that they had a huge audience cheering and screaming! Not only I had never heard of them but apparently I was the only one, and even more strange, people, especially young people, liked them!! What the effe!? Since when are kids supposed to like boring music!? Anyway, the band has 9 or 10 people on stage, and they like to play all the instruments you can think of.

Luckily they were followed by the very funny and energetic The Extra Action Marching Band. So now I’m up to two good performances.

Then, between the marching band and what I was there for, Modest Mouse, there was some DJ stuff going on. It was really just a super long live ad for the organizers. Their DJ’ing sucked, they just played a couple of tunes while the giant screens show you what to buy next. Fortunately they were booed off the stage…good.

Ah, Modest Mouse, finally. Well, sad to say that THEY SUCKED!! WTF!? Sound was bad. The singer seemed bored out of his mind. No solos. No talking to the audience. Nothing. Just show up, play a few songs, get out. Meh.

There was no encore…thank goodness.

And finally the main attraction, The Killers. They were more interacting, more motivated, but frankly, they have one album out, what are they going to play for 90 minutes or so? Yeah, that’s right, the entire album. We left while people were calling for an encore but not before participating in the “throwing of the cushions” action. There were dozens and dozens of cushions flying at one point. That was in fact a lot of fun. Third good performance of the day!! Too bad it wasn’t a scheduled event.

Then we left (we didn’t like their performance that much, and we were getting tired, of them and also physically). While walking back to the car, we heard the band playing some David Bowie song. Good for them.

So, that was our Saturday. Lessons learned:

  • Don’t go for a 12-hour festival when you only know 20% of the bands.
  • Shoreline is cold in the evening and hot during the day, with no shade…bring a hat and lots of blankets.
  • In fact, it doesn’t matter, because I’m not going to go back to Shoreline. It’s my 4th or 5th concert there, and it’s always bad. Even Pearl Jam and Metallica were so-so.
  • Avoid festivals. 12 hours, even of good stuff, can be painful. Hate it to have my last festival a sucky one though.

Oh yeah, if you read this far, you deserve to see pictures and even a short movie.


Edit: Brad Kava from the local newspaper, the San Jose Mercury News, wrote his review here.

Mindless Self Indulgence’s singer, named Urine, turned out to be a charmer, who could really sing.

And rock historians will want to note an important moment: two deejays doing mashups were booed off the stage, marking the day the music form which mixes two songs together jumped the shark … at least with a rock crowd.

Comments (3)