Sunday, October 7, 2012

Go Lean, Go Agile: Are We There Yet? (GHC12)

The concept of agile development has always fascinated me, particularly because I haven't had the opportunity yet to work on an agile team. (This despite having done five 4-month co-op terms during my undergrad.)  So, the panel presentation on lean and agile development at GHC12 was definitely on my list.



The panellists included Mario Moreira (an Agile and Configuration Management industry expert), Rae Wang (Senior Program Manager at Microsoft currently working in Exchange Online), Jill Wetzler (lead software developer and scrum master at salesforce.com), and Janet Swedal (Senior Director in the Technology organization for Thomson Reuters).  Their experience and insight was amazing.

The big theme for the talk was the challenges of adopting agile in your team.  Sometimes teams really have no choice but to go agile given the frequency of releases to customers and opportunities for feedback.  But it's not easy to implement the change; it requires an all-in buy-in from team members to the executives, for example.

The speakers explained some of the benefits of going agile: agile development encourages incremental / iterative development, adaptive planning, rapid and flexible response to change, etc… The collaboration and communication the methodology encourages is seen by some as the number one benefit.  In fact, research has shown that the communication differences between men and women all but disappear in agile teams.

An interesting issue brought up through audience questioning was that of technical debt. How do you ensure that bugs are fixed and code gets refactored when needed?  The speakers suggest taking a methodological approach: have a refactoring strategy at the beginning of a project, and turn this work into a technical story.  Refactoring and bug fixing can also be part of the 'done' criteria of a particular story.  You can also take an entire sprint to work on bugs, or rotate resources to fix bugs.  You have to make it a priority before you end up with a mountain of debt.

I know a few people who have worked on agile teams.  I found this presentation very interesting because I could see why some of the problems they were complaining about might be showing up.  For instance, one team didn't appear to be taking technical debt seriously enough.  I also wondered if all the teams I know about were actually well suited to being agile (another common thread of discussion in the presentation).  It seems that the way they divide work might be contributing to lower quality output for the sake of being agile, and it's not clear whether they work in a particularly iterative way.

But all this is mostly speculation, since I am not entirely familiar with the methodology yet.  When I get a chance, I look forward to reading up more on agile, and potentially trying to use it in my own thesis work as well as any team projects I am involved with in the future.

Thursday, October 4, 2012

Lili Cheng: Creativity, Learning, and Social Software (GHC12)

Who knew a past in physical architecture would suit a career in technology research so well! Lili Cheng — general manager of Microsoft Research's FUSE labs — did! And she told us all about it in her talk at Grace Hopper today.


Lili had started her career in irrigation, worked on Canary Wharf in London, and was involved with tree-like designs for buildings in Tokyo.  She learned that your past stays with you and continues to inform you. The combination of natural and machine-made systems are unpredictable, human, and evolve over time; this idea applies to architecture and social media.

Lili gave us a whirlwind tour of the projects her group has done, including Kodu and Montage.

Kodu was inspired by the fact that kids don't make enough on PC's, but they do play a lot of games.  The group wanted to know whether they could make creating a game simple enough for five-year-olds to do it.  The kids who use the graphical, event-driven language don't learn programming per se, but they do learn logic and programming concepts.

I've known about Kodu for some time now, but never had the chance to try it.  Now that I realize it's free on the PC, I'm inspired to have another look.  Perhaps it would be a good alternative to GameMaker for my mini-course.  It seems that it's used a lot in K-12, but for some reason I don't heard about it in a concrete way very often around me.  I'm not sure what that means; either other options are more suitable or I'm just not listening to the right people to hear about it.

Montage was a neat project that I hadn't heard about before.  It works by typing in a search term, and getting back a newspaper-like collection of items about that topic.  The neat thing is that the whole thing is editable; you can change the layout and the content.  The collection includes articles, images, and Tweets found online.  You can save and share your creation with others via the So.Cl (pronounced social) site, which is technically a different project that happens to allow you to create montages in a more social way.

My first thought on Montage was that it reminded me of Paper.li, right down to the silly name and URL.  I wouldn't ever have known what Paper.li was if it weren't for the fact that others had included Tweets I'd made in their daily newspapers.  I still don't know if they curate the content manually or automatically.  I wonder if Montage is intended to be used the same way, and whether it has any similar mechanisms for allowing people whose content is included to discover the site.  If nothing else, it does look like a fun way to search and share interesting content in a Pinterest sort of way.

Hearing Lili talk about all the amazing things she and her team has done was really inspiring.  It got Andrew and I talking about putting together a five year plan that might allow us to do more interesting things in the future.  It also really encouraged me to consider trying for an internship with Microsoft Research once the baby gets older.  Maybe my varied interests will come in handy like Lili's past career did for her!

The Road to GHC12

After a one-year hiatus, I'm back at the Grace Hopper Celebration of Women in Computing! We took a road trip down to Baltimore, and despite a feverish baby and some rainy weather, we got to see some fun things.

We started off in Stowe, Vermont.  We went there because it's a popular ski resort for people in our area, given the size of the mountain and relatively short drive.
While there we drove to the top of Mount Mansfield and hiked along the top toward the summit.  We didn't make it the whole way before the rain started.  Granted, it was just a drizzle when we turned around, but with the baby on Andrew's back we didn't want to risk it getting worse. The visibility was pretty bad anyway.


On the way back down, I got a nice photo of the gorgeous fall colours. I'm glad the weather didn't completely obscure this view!


Molly's fever broke when we were done in Stowe.  On our way to Connecticut, we stopped by King Arthur Flour. Our strategy for deciding how much to buy -- we wanted a lot! -- was to ask ourselves how much it would cost to ship it to Canada if we didn't get it.


We stayed in Norwalk, Connecticut because it was halfway between Stowe and Baltimore (we didn't want to drive too long any given day because of the baby).  We stopped by the aquarium, and were happy to see that Molly actually interacted with the fish.




We made it to Baltimore late Tuesday night and are enjoying the conference very much so far.  Looking forward to posting about the awesome sessions we've attended soon!

Friday, September 28, 2012

My Processing Workshop Materials

Last weekend I taught a one-day workshop called 'Create Interactive Art and More! Learn to Program with Processing.'  I developed the materials from scratch for the workshop and hope to use them again.  Overall the day went quite well, but as always, there are things to improve.


In the morning, I did a round of intros from the group.  This was for two reasons: first, to allow those who were late to make their way in (the weather wasn't great and even I had a hard time finding the door to get in), and second to build a sense of community.  Although this took a little longer than I would have liked, it seems that both goals were met.  I had some students say how great it was to see how many other non-programmers and artists were there.

The morning largely involved me talking about a programming concept using some analogy, and then getting the students to type in some example code.  I had them play around with the specifics of the code to learn about how Processing worked experimentally rather than just hearing me describe the syntax.

 
This worked fairly well, though there were times I would have liked to move on a bit quicker.  One challenge was getting everyone's attention while they were playing with code.  Sometimes the TA's would continue helping someone even when I wanted to tell the class something; next time, I should be sure to ask the TA's to pause for a bit when I need to move on.  The analogies themselves seemed to work well.

In the afternoon, I had some programming concepts to finish covering.  Next time, I should schedule more than two hours for this portion of the workshop.

After the formal part, I got the students to look at four tutorials I had written up.  To make the tutorials, I had first programmed four little projects in Processing, then tried to put myself in a beginner's shoes to describe the steps to writing the code.

I tried to keep the tutorials fairly simple, though my last tutorial for a memory game ended up being much more complex.  I decided to finish the tutorial for that one anyway just in case there were some folks who had programmed before (and there were).


My goal in writing the tutorials was to entice the students to ask questions during the class.  I wanted to use a 'just-in-time' teaching technique where things would come up as questions the TA's could help with while they worked through the tutorials.  So there were definitely things in the tutorials that weren't discussed much or at all in the formal portion of the workshop.

However, it seems that my tutorials weren't quite clear enough.  Students had a bit of trouble knowing exactly what to do if they hadn't programmed before.  So, since the workshop has ended, I have modified all but the memory game tutorials, adding specific, highlighted instructions on what to do.

My course notes and tutorials are all available online so the students can try them after the workshop as well.  If you'd like to give Processing a try, or just see whether I've done a good job with the tutorials, I'd love to have you look at them and post feedback as a comment here on the blog.


I'm hoping to collect some more data on how well the workshop went through a survey I sent out to the participants.  It has been challenging to get many responses, but hopefully they'll continue to come in.  I am already considering running the same workshop (with improvements) next semester, perhaps targeted toward students, so hopefully I can get some more data then as well.

Tuesday, September 25, 2012

Interactive Storytelling Talk at a Local Sci-Fi Con

An unexpected opportunity presented itself when I was asked to speak at a local sci-fi convention, Can-Con.  A friend had referred me as a potential academic speaker who could talk about augmented reality. But, since my thesis topic had taken a turn toward nonlinear narrative and interactive storytelling, and because I figured this audience would enjoy this topic, that's what I ended up speaking about instead.

I focused on the big question of what it would take to create the holodeck in terms of storytelling.  My aim was to explore the creative and technical side to answer which area we needed a breakthrough in most.  My personal opinion is that we need a creative breakthrough first; there's a lot of technology out there that hasn't resulted in many particularly compelling stories. I think we need to figure out how to write for this medium in a mainstream kind of way before we can truly determine what needs to improve technology-wise.

I had a small but attentive and interactive audience, which made the talk not only a pleasure to give, but useful for me, too.  I got quite a few good ideas and references that will help me in my thesis work.  The conference seems pretty interesting in itself, so if you're interested in sci-fi, you should check out next year's edition!