Wednesday, January 31, 2007

Why So Few Toronto Software Product Companies?

This morning, while reading a blog entry about Pulse by zutubi (via JavaBlogs), I was once again struck by the fact that there are so few software product companies in Toronto. Now, I'm not on the hunt for a job in Australia, so perhaps my perceptions are skewed, but I know a few interesting product companies in Australia even at this distance (zutubi, atlassian, etc.)

And yet, I know so very little about software product companies in Toronto; I know there are a few, but compared to the waves and waves of business / integration software jobs in the Toronto market, these opportunities are practically invisible.

Why is that? What is it about Toronto (or Canada) that seems to result in so few of these startups? Is it that a successful software product born in Toronto is likely to be purchased by a major American firm, and then vanish again? Is it that our entrepreneurs migrate elsewhere (e.g. Silicon Valley?) Do we just have so darned many of the business/integration jobs that people don't bother to start their own companies?

Don't get me wrong -- Toronto's a great place to live and work, but considering that it's software product jobs that really interest me, I just wish there were a few more to choose from.

Oops! That wasn't supposed to happen.

And, yet, it did.

Bad reader.

Friday, January 26, 2007

Team Dynamics, Patterns and Anti-Patterns

I've had the opportunity in my software career to witness two distinct kinds of team dynamics: self-organizing and hierarchical command-and-control. I prefer self-0rganizing by a long margin. This is not to say that it's inherently better (although I have heard interesting arguments about the self-organizing of a military unit in the field), but that I enjoy it more, and find it more productive in the world of creating software.

Command-And-Control Teams
If you and your teammates are largely given separate assignments, work on them individually (or in very small groups) and report status and or defer critical decision to one or a few team leaders, you're probably on a command-and-control team. When your work is late or incorrect, it's between you and your leaders.

On the whole, I find command-and-control teams to be less adaptive, nimble, less reactive to change. Less Agile. This is mostly because a select few are responsible for decision-making, and those few tend to be a bottleneck in the decision-making process.

The command organization is often responsible for both organizing the team internally and co-ordinating the team with all outside influences. They're seen as key stakeholders to involve in both internal and external discussions. This is a lot of responsibility for what is often a very small part of the team. Time management and organization is a constant challenge. Even when the command-structure is well-organized and practices good time management, there's still a bottleneck, and that will cause perceptible delays in decision-making.

When these team leaders are overworked, busy, or not well-suited to detail-oriented leadership, there can be a significant leadership gap. If the team they're leading has been socialized to work within a command-and-control environment, they may not pick up the slack. In these cases, you'll see a well-intentioned team where many things aren't getting done.

It can be easy for team-members on a command-and-control team to slip into dysfunctional habits. There's a whole host of problems here, ranging from 'silos' to "It's not my problem". These boil down to not operating like a team at all. Rather than working together to achieve common team goals, command-and-control teams can break down into competitive self-interested fragments whose primary goal is their own success, sometimes at the deliberate expense of other team members.

Self-Organizing Teams
If you and your team-mates have a are given a set of goals to accomplish, and allowed to structure yourselves as you see fit to accomplish those goals, you may be on a self-organizing team. You'll find that you're committing, as a team to complete team goals, but making local commitments to the team (as a whole) about work that you're taking on yourself. When your work is late or incorrect, you'll resolve it as a team.

Because each team-member is empowered to take on a fair amount of decision-making, this means that the team is adaptive to change, nimble, able to shift resourcing and address issues in a natural, community-oriented manner rather than waiting for a more formal decision-making process.

Giving teams this kind of local autonomy scares the crap out of some business leaders, so it won't work for everyone, but I have tended to find it extremely effective. I've heard it argued that this works best with a small, smart/skilled team. I'm inclined to agree, but I'd also say that's often a factor in the success of any team effort, not just in self-organizing teams building software.

One of the more common anti-patterns in a self-organizing team is slipping back into a command-and-control mindset. Many of us have worked in more hierarchical organizations than we have in self-organizing ones, and it's sometimes easy to let dysfunctionality creep in. These habits are not reinforced by the team structure, but if the mindset of self-organization to accomplish team goals hasn't fully sunk in, some people will slowly slip back into old, bad habits.


... in Ten Seconds

I'm impressed by Joost. It's the first thing I've seen that feels like a natural successor to what we call TV.

... in One Minute
I'll step back from that slightly. It's as easy to use as a good PVR, more natural and higher-quality than most web-video. As with YouTube, you can select the content you're interested in, watch as much as you please, and move on. As with a PVR, you can watch what you like, when you like. The content isn't all there yet -- there's only so much on Joost that I want to watch right now. But that'll change. And when it does, I'm not sure that I'll need or want a connection to broadcast and cable tv.

... in Five Minutes
I like TV. Probably a little too much -- I watch a fair amount, enough that I'm not going to try and estimate it in public. I find it relaxing after a day's hard mental effort to do something that isn't throughly mentally challenging, and, well, TV is good at that.

But while I like the idea -- while I like the ability to relax, unwind, take in some entertainment without working too hard at it, the specifics are pretty rotten. If you get hooked into a story, the idea that you have to be home at a particular time each week in order to stay in tune with that story is, frankly, ludicrous.

There are weeks when I feel as if I'm under pressure to 'catch up' with the PVR before it runs out of space, and there are weeks when I'm sick, bored or lazy, and I desperately start looking for interesting programming that I can PVR so that I don't completely run out of good TV.

I watched half an episode of Battlestar Galactica, decided it wasn't that good, and wrote it off. Same with the British version of the Office. Both were well-received and I wished I could revisit my decision, but I didn't want to start half-way through a season. As a result, I wasn't ever really able to engage effectively with these.

These are the side-effects of a broadcast model. Sometimes I consider switching to a DVD-only approach, but I just don't have the patience to wait. And, frankly, I shouldn't have to. I should be able to watch what I want, when I want, without deciding in advance that I want to.

Is Joost perfect? By no means. There's a search, and a directory of content, but it feels as if these are only the beginnings of what would be necessary to catalogue and search all the content that's on your average cable TV in a week. We'll want recommendations, tagging, linking. We'll want to be able to see all the movies, all episodes of a series ordered season, then release date. All these kinds of tools are still in their infancy with Joost.

But the promise is there. It's good enough, fast enough, high-enough quality that all those other things just feel as if it's a matter of time. If you're in the business of broadcast or cable tv, this is your moment to be scared. Very scared. Because life, as you know it, is ending.

Blogger: First Impressions

I have to say, the ease with which I've managed to set up a Blogger blog and get it hooked up to Flickr has already implied to me that the days of my JRoller blog may well be numbered. I'll want to make some progress with this template, but that already feels like a less onerous task.


JRoller's seemed a little creaky for years, but, well, I was established here. I've been increasingly relying on Google's applications, so it seemed as if it was time to consider giving Blogger a shot as well.

For the time being, I'm going to keep both active, but I'll decide which one that I really want to stick with in the long term.