Trust Your Geekflex

Blog Forum Gallery

CUSEC 2008

Posted by Skrud at Tuesday, January 22nd 2008 at 3:47pm

It’s no secret how passionate I am about CUSEC: the Canadian University Software Engineering Conference. I’ve been attending it diligently every year since 2004, my first semester at university. Which makes CUSEC 2008 my fifth. I guess I’ve been in school for way too long.

This year I was an organizer for the first time, and settled happily into my role as Director of Promotions. My job was to find new head delegates and make sure that the conference was well advertised. What I actually did amounted more to making sure there was enough actual content out there to convince people to come to the conference. This meant pushing people to update the web site with stuff like FAQ’s, blogging about why people should attend CUSEC, advertising it to people on Facebook, and – back at Concordia – speaking in classrooms and selling tickets.

And now I’m co-chair for CUSEC 2009. Because I refuse to disappear from CUSEC just because I’m graduating this spring.

This year was a blast! We had more delegates than ever before, so many that we were running out of places to put them, with people having to stand in the back during some of the speeches. This means that next year we’ll need some more space. Maybe we can even move into the giant auditorium (”Le Grand Salon”).

Another great thing this year: the students were unusually outgoing. We’ve never had more than 75 people show up for the pub night parties, but this year we must’ve had about 200 people. I got to experience what it was like to run around a crowded bar with plates of food, delivering nachos and quesadillas and chicken wings to hungry delegates. We’ll need to find a bigger place than Brutopia. On the second day of the conference, so many people were running up to me asking “so where are we going to party tonight?” … We had nothing planned, so I told them I was heading to Pub Distillerie. I think this was a mistake, since the bar was so packed that I couldn’t even get in… (this was after redirecting people to McKibbins, too!)

CUSEC has always had the ability to win the hearts and minds of delegates and speakers alike. And this year, as always, we’ve had a stellar lineup of speakers. Unfortunately, being an organizer means I sometimes have to miss speeches in order to run errands, or prepare for the next speech, or set up another event. Unfortunately Tim Bray’s opening keynote was one of these. Luckily we videotaped all the speeches (and we’ll be putting them up as soon as we can). I was really happy to read about Tim’s experience at the conference.

One of our speakers whom I was really excited about bringing was Jeff Atwood. He is the author of codinghorror.com and practically one of my heroes. I learn a lot from reading his blog daily, even if he’s writing about something seemingly obvious, because he often puts things into a context that I didn’t think of. You should read what he wrote about his first day at CUSEC.

Another speaker that seemed to surprise everyone with shock value, was Zed Shaw. Zed not only fulfilled his duty as a keynote speaker by giving some important life lessons during his keynote speech (i.e., don’t get an MBA because the first thing they do to geeks who get an MBA is lobotomized them), but he was at every party, every event, and hung around with delegates for the entire conference. We got to learn a lot from him, just from hanging out and talking to him.

One of the best parts of CUSEC is the fact that the speakers who come to the conference are often willing to meet and chat with students outside the context of the lectures, completely informally. Jeff Atwood, for example, came to the pub night, and we taught him and his wife to play Bunnies. Kate Hollenbach was there too, and I’m told she drank everyone under the table. Of course it’s not only drinking. We had students interview the speakers on camera, for example, and hopefully we can get those edited into a nice montage and put it up on YouTube to seed advertising for next year. :)

There is altogether way too much to talk about as far as CUSEC goes, and it only gets better each year.

Tags: , , , , | 2 comments

Brief Impressions From OOPSLA (Part 2)

Posted by Skrud at Friday, October 26th 2007 at 6:51pm

Following the Fred Brooks keynote speech, I went to the coffee break room to caffeinate before going to the Kathy Sierra presentation. I was minding my own business, sipping some coffee, reading my RSS feeds, chatting with some friends from UVic; until they walked off to go their presentations. I noticed out of the corner of my eye two old guys putting their jackers on the chairs around my table and sitting down. Looking up, I was faced with Fred Brooks and David Parnas. Wow!. These two guys practically created software engineering as we know it. What do you say to them?

I told Dr. Parnas about the time I saw him speak at CUSEC 2004: That one presentation was an extremely influential moment of my life. I remember he was talking about the importance of software quality, and how it needs to be engineered as oppose to hacked together by a rogue band of coders. Most importantly, I remember looking up at Dr. Parnas giving that speech and thinking “that’s what I want to do”. As soon as I got back to school following that conference, I applied to transfer my major from Computer Science to Software Engineering. I think that was one of the best decisions I’ve made in my life, and I thanked Dr. Parnas for that.

David Parnas replied to me: “Thanks for that! That actually just made my day.” And Fred Brooks added: “As well it should!”

And I got a picture with both of them.

Me with the grandfathers of Software Engineering

Tags: , , , , , , | 2 comments

ooPSLA 2007

Posted by Skrud at Friday, October 26th 2007 at 6:37pm

Attending ooPSLA was a phenomenal experience. My brain has been working overtime, at 150% efficiency, to try and understand and make sense of everything I’ve seen and heard and read this past week. I felt like I understood quite a bit, but I was challenged by even more. For each nugget of golden information I managed to get out of a particular lecture, I’m sure there were many more that flew a few thousand metres over my head. Whatever I write about here is ooPSLA as I was able to understand it, and I probably got a few things wrong.

I was scribbling notes during each lecture I attended, and going over them I can see one theme that permeated the entire conference more than any other: communication, starting with DesignFest, which was the first event I went to.

Software engineers face an infinite number of challenges involving communication. We’re not only talking about communication between software designers and customers, but also between software engineers and each other. How do you get people to communicate clearly and precisely? How can you distribute the intellectual work of software design and still maintain Conceptual Integrity? You need to be able to not only work together with someone face-to-face, but more and more you need to be able to work with people in other places, so called “telecollaboration” (more on this topic when I write about Fred Brooks’ keynote).

Think about the overhead and the time it takes in order to make another person understand the design you have going on in your head? UML models can only express so much, but they have their limits (as does any language). That’s why there were even tutorials, such as the one I attended – “The Art of Telling Your Design Story”, by Rebecca Wirfs-Brock – which are all about how to communicate your design to someone else.

As a whole, ooPSLA was a legendary experience that I never want to forget. This is one more aspect of my life that I have to thank Dominique for. She told me about the ooPSLA Student Volunteer program, and if it weren’t that I probably never would’ve even found out that the conference was in Montreal! Thanks, Dom! :D

Tags: , , , | 1 comment

Brief Impressions from OOPSLA (Part 1)

Posted by Skrud at Tuesday, October 23rd 2007 at 9:05am

Being at OOPSLA is like seeing a live show of all the blogs that I read. The discussions are profound, and they’re everywhere, at every turn. The attendees at ooPSLA all seem passionate, smart and opinionated. I’m learning incredible amounts just being around it all!

Anecdote from Rebecca Wirfs-Brock: “What’s the difference between an extroverted software developer and an introverted software developer? The extroverted one stares at your feet when talking to you.”

Quote from Don Roberts: “Teaching C++ to freshmen makes me feel like a child molester.”

Here’s the fancy jersey that all student volunteers get to wear this year. I love the colours!

OOPSLA 2007 Jersey

Apparently, attendees often try to buy Student Volunteer shirts at the conference — or afterwards on eBay. I’m not sure I want to sell mine. I think it’ll be an awesome souvenir.

Tags: , , , , | no comments

Software Design is a Social Activity

Posted by Skrud at Tuesday, October 23rd 2007 at 1:26am

Early Sunday morning at ooPSLA I had the pleasure of participating in DesignFest ‘07. The concept is simple: Get people to try attacking the same problem but in different ways, and have them compare notes at the end. We were a pretty small collection of people, ranging from programmers working in various industries (military, medicine, academia), to consultants, professors, and students.

The problem we were given came from Don Roberts, whose wife is a veterinarian. We were tasked with coming up with a design that would allow a veterinary hospital to keep track of its patients and their owners and bill them appropriately. Sounds simple, until you realize that you can have race horses owned by multiple people, each with a different percentage stake… and, of course, many more complications. The group quickly divided into two. One group wanted to try a pure Test-Driven Development (TDD) approach, while others wanted to go for a Prototype. I was in the prototype camp.

The interesting thing about a prototype, is that while the actual development is quick (in theory), there’s still a good deal of work that needs to go into the design before you can start programming. A prototype is usually a set of minimal functional requirements that sort of work. In that sense, it’s not too different from “hacking”. (Yes, we got into a discussion about “prototyping vs. hacking” that derailed us for a few minutes). What happened was we ended up focusing all of our energy (and time) on coming up with a solid, complete Object-Oriented design for our solution. The result of our design was little more than a class diagram on paper, but we were able to work through every use case thrown at us.

The TDD team found that they, too, needed some initial design work to be done before they could start writing the test cases that would yield code. I have trouble wrapping my head around a pure TDD approach. I understand how TDD can work if your requirements are well-defined and you already have a design that you can code tests against. The idea is that you write test cases for the design before you write the actual code. They will fail initially, and your goal as a programmer is to make them pass. In that sense, it is indeed Test-Driven Development. I’m not sure the concept can be extended to Test-Driven Design. The TDD team had little more than one test case, but they had actual code for one of the use cases, which is more than what we had.

The ensuing discussion was extremely stimulating. It’s amazing what happens when you get a bunch of really smart software geeks in a room together.

The key realization that I took away from this experience was that software design is a social activity. Even though we hadn’t met each other previously, our team had to work together. We had to help each other out and make sure we were all on the same page. We had to communicate. It was amazing that we didn’t have a lot of trouble doing it, though. We mostly seemed to agree and moved along at very reasonable pace. Maybe it’s just because we’ve all trained our brains on OOP for so long.

One question in the discussion stuck in my head the most, and I’m still thinking about it. Don asked “What is the language of design?”. Since software is collaborative and social, it follows that like any human language, we must take some concept from our minds and communicate it to someone else. If any non-programmer happened to be walking by our table, we would have sounded like the Children of Tamar. Our speech consisted of terms taken from object-oriented programming (”object”, “class”, “instance”), UML (”association”, “composition”, “aggregation”), and Design Patterns (”state pattern”, “template method”, “strategy”). And that was just the spoken part.

Software Design has a grammar. There is a way of communicating design that involves a vocabulary as well as a set of rules describing how to put sentences together. And I don’t mean English. Design is more like a mash-up that derives itself from UML and Design Patterns and English. Whatever it is, we need to ensure that those designs we have floating around in our heads can remain intact after we’ve thrown them into the ether. I think this is where a formal design language specification like UML falls short. It’s so restrictive that most UML tools require you to input far too much information before they’ll display a simple diagram. Thus defeating the purpose. UML diagrams need to be free-flowing and erasable. The language doesn’t have to be perfect, it has to be understood. More importantly, it doesn’t have to be understood by a computer — that’s what programmers are for. But programmers are people. So, design has to be understood by people. People are capable of parsing an imperfect sentence that might not be “grammatical” according to a formal specification, but can still be understood by those natural language processing mechanisms we call brains. It all comes back to software design being a social activity.

Tags: , , , , , , , | 4 comments

Older Entries