Archive for February, 2007

technology: I/T is about integration and business process optimization. Think end-to-end.

In the old days you could create an application that automated one aspect of your business process and that was fine. And in a lot of exercises and assignments in school, that is how we are taught to do things. But that is not good enough anymore. Most everything has already been automated in isolation, but now the problem is that these silos don’t talk to each other. Here is an example:

I was talking to a co-worker. He travelled a lot and had a ton of points with a hotel chain. He decides he wants to use some of those points to get a free hotel room for an overdue trip with his wife next week. So he logs on to the hotel web site to find a room and reserve it. He wants to pay for the room with his points. He can see the reservation, and he can see his points, but it isn’t obvious how to do the transaction with both. Then the hotel’s instructions go something like this: “If you wish to use points for your hotel stay, please call our 1-800 number to redeem your points as a paper certificate. Your certificate will be mailed to your home address in approximately 14 days. Please present the certificate upon check-in to complete the redemption process. If you wish to expedite the delivery of your certificate, click here to pay $20 for the overnight shipping charges.”

How lame is that? Not only does it cost money for the hotel chain to deal with those paper certificates, but it angers the customers they are trying to reward. Systems developed in isolation that don’t talk to each other.

So not only do our applications need to do things well within their own scope, they need to connect with everything else.

If you think about how business works, it’s really more about workflow that cuts horizontally across many areas, it’s not a vertical silo. And the workflow can start other workflows (fork), or receive input from others (join). For example, a customer order that debits inventory that orders replenishment from the manufacturer that may start a new credit request.

It’s not possible to build everything into a single application. Scope your application, but enable the data flow so that it can communicate with other systems that haven’t even been built yet.

things i wish i knew before working marcelk 05 Feb 2007 No Comments

telecom: Virgin Mobile cell service

So call me old fashioned and stationary. I don’t mind at all. I’m the kind of person that talks on a cell phone only when necessary. Instead I prefer a land line. That land line may be a softphone on my laptop or my Vonage service at home (I gave my POTS monopoly the boot a year ago and haven’t looked back), but I don’t like the sound quality of cell phones, getting distracted from my driving, or burning through expensive airtime minutes. I also want a phone to be simple, I don’t need a camera or crippled web browser or email client.

I use less than 60 minutes of airtime a month. Most of my cell calls are 2 minutes. I don’t need or want 500 minutes a month. And I balk at the idea of paying $40 or more a month for a service that I don’t maximize. But I did want a cell phone for the times I’m mobile.

A friend recommended Virgin Mobile to me and it has worked great. Just go to Target and buy one of their phones from the shelf or use Virgin’s web site if you are lazy. You can get a decent phone for $20, though I recommend that you research them on the net to see which one would work best for your needs. Take the phone out of the box at home, and get it activated through Virgin’s web site in about 20 minutes. I used the prepaid plan, and it costs me about $15 a month for my usage level. There is no contract. If I don’t like the service, I can cancel with no penalty. If I break my phone I can get a new one at the same price and transfer my service to it.

I use the prepaid by-the-minute plan. I pay for what I use, so I don’t need to worry about underrunning or overrunning my stock minutes. The prepaid system is easy, I set up Virgin with my credit card to automatically buy more minutes as I need them (auto top-up). So I don’t need to logon to their web site every month.

Virgin Mobile is an MVNO. They are basically riding on top of Sprint’s network. So you should have service anywhere Sprint has service.

If you don’t have high usage and don’t like the lock-in of traditional carriers, give Virgin Mobile a try.

cool stuff that doesn't cost much marcelk 02 Feb 2007 No Comments

technology: Projects are too big to do by yourself. You must work in a team. The definition of “team” is broad.

In school there is a big emphasis on the individual. This makes sense, because the goal is for the individual to learn. So assignments are for an individual, projects are for an individual, and grades are for an individual. You’ve gotten accustomed to working by yourself, being in control, and knowing everything in the scope. So now as you enter the workforce, throw all that out the window.

I/T has gotten so large and so complex that it is completely impossible for one person to do it all by theirself. There are huge processes around the lifecycle of I/T and you’ll likely play one small part at a time. Processes are broken into tasks, and tasks are assigned to teams. Everything needs to connect to everything else. To work in isolation is to be disconnected from the process, which probably means you aren’t part of the lifecycle, and may not be contributing what is needed.

So you’ll likely be working on a team. What is a team, is it just your department? It could be, but more than likely teams don’t follow hierarchial organizational boundaries. Probably your department is performing multiple tasks, so some people in your department will be doing things that aren’t directly connected to what you are doing. That means in the most simple case, your team is a fraction of your department.

But the thing that is happening with increasing frequency is a matrix team. Instead of the team being vertically oriented along hierarchy lines as in a hierarchial management model, it ends up being scatter-shot, with team members in a horizontal or diagonal orientation. What this means is that team members cross hierarchy boundaries, and the only level at which all the team members have a common manager is the CEO. So the CEO isn’t going to have the time to manage your team, so you’ll need to learn how peer management works. This is sometimes called “dotted-line” management. It is about taking and giving direction to and from people that have no direct hierarchial management of you. It’s basically all the responsibility with none of the authority. Yes, hierarchial managers can get involved if necessary, but that should be only if something is broken. It’s about getting people to do things by persuation instead of punishment. And a team can expand even outside the classical organization to include contractors, 3rd-party business partners, customers, and even competitors. And if everyone has a slightly different agenda or goal, it can be challenging.

But working at a large company I’ve learned that our competitive advantage isn’t about nimbleness, raw capital, or even established market power. The advantage is in the network of people. These are people that are on your team outside of your department, or folks that can provide information and insight from their experience that you can’t get anywhere else, or folks that have an interest in what you are doing and help in small ways. The power of the network is what enables you to do things that you simply can’t do by yourself. But with that network you can achieve some amazing things in a small amount of time. You need to crawl out of your personal shell and plug in to the network.

things i wish i knew before working marcelk 02 Feb 2007 No Comments

technology: Doing is typically straightforward. Figuring out what to do is hard.

The era I grew up in is different than what it is now. Or at least than what I thought it was. It seemed that the hard stuff was getting things done. The challenge was in basic engineering, the execution of the plan. It was obvious what problem needed to be solved, so everyone focused on the execution.

But now in the IT industry, it has changed. It has grown to the point where there are a ton of off-the-shelf building blocks available. In the old days you had to build everything from scratch. And you spent all your time building core infrastructure and getting it optimized for your purposes. But now there is so much infrastructure available it frees up your time to work on all kinds of new possibilities that weren’t remotely in reach before. Because of standards, open source, commodities, etc., you no longer have to build the core infrastructure. And because of huge performance gains in processors, memory, network bandwidth, etc., optimization isn’t nearly as important. So then what do you spend your time on? Do things higher up the value chain. As has been stated elsewhere, all kinds of innovative opportunities open up when you purposely waste things that had previously been in short supply (i.e., processors, memory, network). It turns the status quo on its side. If you can store 1GB of data on Amazon S3 for 13 cents, why bother to buy an $80 hard drive to do backups which doesn’t give you off-site protection?

There are all kinds of things that could be done. But just like the TV ad says, just because you can doesn’t mean you should. And we don’t have the time and resources to do everything. So out of all the possibilities, which ones are the right ones to be working on? I can guarantee a common answer for each one: “it depends”. There are a lot of variables to consider even before you can frame the problem statement. Given some smart people and the rich infrastructure available, generally executing on the plan is straightforward. But figuring out what to do, that is the hard part, it’s not a strength of CS people. So talk with business people and really put yourself in the shoes of customers. Beware that technical people like to jump in and immediately start working on technology. Before you spend 6 months executing a project, be sure to invest more than 5 minutes to make sure it is the right project to do. That investment could yield the biggest payback and innovation of all.

things i wish i knew before working marcelk 01 Feb 2007 No Comments

things I wish I knew before working in industry: Introduction

This category of posts is meant to capture some of the important career lessons that I’ve learned.

Alternate titles for this category could be:

  • Things I Learned the Hard Way
  • I Would Have Been More Productive If I Knew…
  • What They Don’t Teach You in CS Classes
  • select lessons from life where date > graduation
  • Confessions of a Tech Weenie

When I was approaching college graduation, I had a lot of preconceptions about what working would be like. Some of those were grounded because I had spent more than two years in internships and co-ops, but even all that didn’t totally prepare me for knowing all that I needed. If you know how things really work, you’ll be more successful.

So this category of posts is aimed at the young professional who just started working, or at the student that is in college preparing for working. The more you know, the better you can do.

Although I’ve spent my career so far at large technology companies, I believe the majority of the concepts I’ll describe can be applied wherever you work.

These set of posts are meant to be read in forward chronological order, so start with the oldest post in this category and work your way up to the most recent post. For a quick view of all the posts in this category in the intended order, take a look at the table of contents.

things i wish i knew before working marcelk 01 Feb 2007 No Comments

« Previous Page