Archive for November, 2009

Update Much?

Monday, November 30th, 2009

Wow has this ever been a busy month. I dare say this was the busiest November of my entire life. I’ll be resuming my steady stream of Cutting-Edge Blog Posts and Tech World Commentary soon, but as filler an insightful look into what’s been keeping me busy, I present you with a run-down of some of the more notable things I’ve been up to lately:

Google Wave Hack-a-thon

I’ve been pretty quiet about Google Wave since it came out, which is odd because it’s a technology I fully endorse (ok, I did have one post about the invites). The Ottawa Wave Group was kind enough to hold their own “WaveCamp” hack-a-thon with an open invitation to local technophiles. It was a great time and really strapped my boots for the wonderful world of Wave development. They have posted an event wrap-up for the curious and there are some slides there I’d definitely recommend checking out if you want to start developing for Wave but don’t know how/where to begin.

I’ll definitely have a post or two about Wave in the near future, so keep your eyes peeled and your RSS reader at the ready.

Bringing High Tech to High School

I’m involved with something called the Ottawa High School Technology Program. I should really have a full post about what the program is and what I do there (I’ll make a point to have one up soon) but the jist of it is that enrolment in high-tech fields at the college/university level in Ottawa has been way down in recent years, which is worrisome for a city that has been nicknamed Silicon Valley North. Seeing this problem, a number of local high-tech companies and organizations got together and started cooking up ideas for how to increase enrolment, and the result was a program that takes industry representatives (such as myself) and sends them to local high schools to help students develop real, working software for the XO laptop. It’s always great to see what the students are capable of with a little guidance, and every semester we’re amazed with the results.

November is a significant month for the program because at this point the fall semester students have been ramped up on the XO and its target audience, branched into small groups, and started on actual development. It’s a very fun time for them and for those of us involved, but also very busy when added to an already packed work schedule!

And then there’s my Day Job

After a few extra-busy weeks, the project I’m working on at my nine-to-five has finally hit private beta. While it’s not something I can really talk about (at least not until it goes GA) nor something that would be of much interest to most of you (it’s a very niche product) it does feel good to hit such a major milestone after many months of hard work.

With things cooling off a bit at work, I should be able to get some neat posts up soon. A lot of neat things have been traversing the net the past few weeks, and I’m bursting with arguably valuable input.

Distraction through Gaming

Busy times call for stress relief, and I often rely on gaming to fill those ever-crucial relaxation needs. Here’s a list of what I’ve been into lately:

  • Typewar is a fantastic game that teaches you how to identify popular typefaces. We need more games with this blend of education and fun.
  • Ka-Glom is actually the first game I’ve ever kept
    on my iPhone. It’s an extremely fun and highly addictive tetris/bomberman mash-up made by local mobile gaming firm Magmic. Apparently it’s also widly popular in Japan.

  • Left 4 Dead 2 was released a couple of weeks ago, and on time no less. Some of you may remember the train-wreck of a release that brought us the demo, which we can all learn a few things from. It’s an absolutely wild time, but by now I’m sure you know whether or not this game is for you.
  • Torchlight is something I’ve heard fantastic things about. I haven’t actually gotten around to playing it yet, but I absolutely will as soon as I can spare some time for it.

What’s been Keeping You Busy?

I’d love to hear about it; leave a comment!

Adobe “gets” Integration

Tuesday, November 10th, 2009

In the world of software development, I submit that the hardest thing to do is to continue developing your code after it has been integrated into someone else’s code, which they are also continuing to develop.

The challenge here is that you and this other person are now co-dependent. If you break the build, it’s broken for both of you, and vice-versa. If your next feature requires some "almost finished" feature from the other party, your deadline depends on their deadline. This isn’t so bad with literally you and one other person, but what if you’re part of a large team working on one product, and the other person is an entirely different team working on a different product altogether, with different priorities and different deadlines? That’s just asking for headaches.

Adobe has some kind of magic handle on how to do this really well. Let’s start from the beginning: for a while, they just did Photoshop, which was pretty neat. Then they added Illustrator, a great Photoshop companion. Interoperability was a bit rocky at first, but now it’s a piece of cake moving a design from one tool to the other.

Then from the opposite direction, they released Flex Builder. Web mark-up integrated with Flash. Adobe gets it right again, bridging the gap between two like technologies. But do you know what made things really interesting? Catalyst.

With the release of Catalyst, suddenly everything has to work together. Designs made with a combination of Photoshop and Illustrator have to be compatible with Catalyst, which has to play nice with Flex Builder, which relies on Flash. This is a lot of complex products interacting with a lot of complex technologies; it’s an absolute mess of dependencies. And you know what? They made it work. Seamlessly.

Take a moment and appreciate how awesome that is. Imagine what would happen if they wanted to add a new feature to Catalyst. First, there are the normal issues that may come up in Catalyst:

  • Will this break any of Catalyst’s existing features?
  • Does the user interface match the rest of Catalyst?
  • Does it introduce any new bugs into Catalyst?
  • Does it open up any regressions in Catalyst?
  • etc

Then, you have to consider what this will do to any incoming Photoshop/Illustrator design files:

  • How will new design files take advantage of this feature?
  • How will existing design files react to this feature?
  • Does the underlying design file format have to change?
    • If so, does that cause any bugs/regressions in Photoshop or Illustrator?
    • Who is expected to report/fix/test these issues? The Photoshop/Illustrator guys? The Catalyst team? Some combination of both?
  • Besides that, is there any work at all required on the Photoshop/Illustrator side?
    • If so, do the Photoshop/Illustrator guys have time budgeted for it?
    • What parts of the Photoshop/Illustrator changes depend on what parts of the Catalyst changes?
    • Can any of the Photoshop/Illustrator work be done in parallel with the Catalyst work? How much?
    • How will this affect the deadline?

And of course, that same list applies to how this feature affects the content Catalyst exports for Flex Builder. And that’s just the obvious dependencies — it gets even worse:

  • What if a team can’t fulfil their side of the changes? Reschedule? Cancel? Release anyway?
  • If one team is late, what does that mean for the others? What if several teams are late? What if everyone is late?
  • What happens if the release cycles between any of these products don’t match up?
    • Can we release Catalyst with its changes before the changes to Photoshop/Illustrator/Flex Builder/Flash are released?
    • What if a user upgrades one product but not another? For that matter, how backwards compatible is this for outdated versions of any of the products?
      • Aren’t there thousands of possible version combinations? How many should be tested? Who’s managing this?

And this is just what I’m thinking of as I type. I can’t even imagine what a mess it must be to coordinate features in all these applications. How do you even measure what effect a new feature in one product will have on any of the other products’ thousands of features?

I don’t know how Adobe does it, but they do it and they do it well. If they can keep this up, they’re going to be around for a very long time.