Author Archive

Listen to your customers

Friday, July 11th, 2008

I was recently talking to my father-in-law, Doc (guess what, he’s a doctor), about a situation that my wife and I are in and he said something that made me realize that everyone who provides a good service to their customers has one thing in common, they all know their target audience because they listen to them.

My wife had knee surgery a few weeks ago, and just last week had to go back in for another procedure to the same knee. After the first surgery my wife had a lot of pain throughout her body, not neccessarily on the knee. We asked her dad, Doc (just a reminder that he is a doctor), about it and his response was that general anesthesia has that effect on many people. A few days later this article on MSNBC pretty much repeated what he told us over the phone. Great, we had learned something. Cool.

Well two weeks after the initial surgery we returned for another procedure to the same knee, and mentioned the general pain, and what we had learned about it to the anesthesiologist. He, in wonderful bedside manner, simply shrugged and said he had never heard of such a thing and there was nothing he could do about it. He pretty much just blew us, our concerns, and our opinions off. Needless to say we were pretty upset by the situation.

While my wife was in surgery I was sitting with Doc waiting for her to come out, and I told him about what happened. He just shook his head, sighed, and told me a story about how when he was in medical school one of his professors hammered home “I don’t care what you take out of this class, just make sure you always listen to your patients. They’ll tell you what’s wrong, and make it easier for you to do your job.”

I was immediately reminded of how important it is here at Intuit to listen to our customers and react to their needs. Doc is a well liked and respected doctor in his community. When we were in the hospital everyone we came across made a point of coming up to him, saying hello, and saying how much they missed having him around the hospital (he is now retired). In my opinion this is a direct result of him not only listening to that professor, but practicing what the professor taught on a daily basis with everyone that he encountered.

In my opinion this same principle is key to delivering software today. Listen to what your customers are saying. They’ll tell you what they want and make your job easier. Get that right, and your customers will be lining up to say hello to you and how much they enjoy to work with you as well.

How many jobs can technology replace anyway?

Monday, June 23rd, 2008

I was recently paying a toll on a highway when it hit me that the normal behavior now is for people to have a Fast Lane transmitter, rather than actually paying cash for tolls. What is significant about this? Well if you think back 20 years ago would you have predicted that the job of toll booth operator would be dying a slow death? Sure they had some competition with those machines that allowed you to toss your change into a basket, but that wasn’t a real threat. People didn’t always have the correct change, they missed the basket, or even just miscounted what they tossed. A real live human person was still the most effective way to make sure the tolls got paid. 20 years ago if you got a job as a toll booth operator, you probably figured you had a job for as long as you wanted to stick with it. It wasn’t going overseas thats for sure.

This is an example of a technology that just makes life better and easier for everyone by eliminating a job that someone has to do (Just imagine how much Sonny Corleone would have liked something like a Fast Lane). This is interesting to me because it is an additon by subraction. Sure there are other jobs that have to support the new system (technical installers for the Fast Lane signal readers, IT support for the servers involved, etc), but on a whole it is a subraction (less resource management of the toll booth workers, less construction and maintenance costs for the toll booths themselves, bank transactions that are based on transmitting data rather than actual physical money that has to be handled, counted, etc).

Come to think of it, there are a number of jobs like this that just don’t exist anymore because technology has eliminated the need for a person to do the job. Jobs like gas pump attendant, mail sorter, or telephone operator just to name a few. I’m sure there are a lot of others that you readers can come up with, or better yet, which jobs do you think are the next ones to disappear?

It knows where you are…..

Wednesday, June 18th, 2008

I was on vacation last week and found two interesting examples of location awareness.

For the first, I was at Walt Disney World where they have something called Pal Mickey. For those that aren’t familiar with it, its a Mickey Mouse stuffed animal that “knows” where you are in the parks and lets you know things accordingly. For example as you walk by Splash Mountain your Pal Mickey may say some sort of silly factoid about it, tell you the current wait time for the ride, or just comment on how fun the ride is.

What’s the big deal about this? Well with more and more phones having fully enabled GPS, and things like Google Maps being out there. The possibilities for having something similar on your phone are growing every day. Imagine if you’re walking around a a theme park and your phone, not something like Pal Mickey that you have to buy, buzzes you and lets you know about a show that is about to happen where you are, or even as you walk around a mall and your phone buzzes you to let you know about a sale that is going on in a store you’re walking by.

These sorts of things are neat, useful, and the sorts of things that make life better by providing you with more information to make better decisions. What could be wrong with this? Well I went golfing with my Dad while on vacation, and saw an example of something annoying, and possibly bad about this. Our golf carts were equipped with GPS devices, they had maps of the course and showed you where you were on a particular hole and distance remaining, overall pretty useful stuff (although my Dad is a stickler about figuring out distance remaining on his own so having it tell you automatically wasn’t great in his book). This thing is pretty neat I was thinking to myself, until my golf cart shut itself off….

See the golf carts are also being told by this application where they could and couldn’t go, that is to say, there are parts of the course that didn’t allow carts to be driven on them, and the golf cart knew if it was in one of these areas or not. When it hit one of the bad areas the cart would just shut down and start beeping for a few minutes before allowing you to drive again for a few feet before you were shut down again (assuming you were still in the bad area).

So what’s the problem you ask? You weren’t supposed to be driving there, its your own fault. In theory I agree with you, but in practice more than half the times my cart was shut down I was just near the bad areas, not actually in them. There were a good 3 or 4 times when I was actually shut down on the cart path. That’s when it really started to annoy me and it started to feel like Big Brother was just smacking me down because it could.

Its this Big Brother aspect that scares me about location awareness. I love being told things that are relevant to me based upon where I am. Its useful, and I can decide what to do with it. Its when that information causes some other entity to force a behavior onto me that I don’t like. The problem is that it can be a real fine line for application developers to toe. If the thing that is location aware is my phone, which I have with me all the time, the potential for forcing me to do lots of things is pretty high. The people writing the golf cart application were trying to sell it to golf courses, not to golfers, so the feature that shut down the cart made a lot of sense to add, I just hated that I had to deal with it.

Remind me why I want a SOA again?

Tuesday, April 1st, 2008

I seem to have had this discussion a number of times over the years at various companies, sometimes with the same people, so I thought it might be interesting to others as well.

So what the heck is a SOA? What does it do for me? Why do I need one (or do I)?

A SOA, or Service Oriented Architecture, is a way to design and implement software. In layman’s terms you could think of it is as software that doesn’t need to have a user interface (such as a web page or a client side window), but instead provides its functionality as a service to other systems. So does that mean that my software can’t have a UI? No, it doesn’t but the UI isn’t the only way to use the software. Instead software that has a SOA has another method of interacting with it that is geared towards other software applications as the user, not a person. In short it makes it easier for applications to integrate with each other.

But wait a second. Haven’t we had systems integrating with each other for years now? What is so special about SOA that makes this so much better than the way we’ve done it in the past? Well the answer to that is in the term loosely coupled. What does that mean? Well it’s a way to define a communication between two software systems so that it doesn’t matter if the software changes at all on either end of the communication.

Oftentimes in the past (not always, but often), when two systems were integrated they were “tightly coupled”. That is they knew so much about how each other worked that they kind of cheated. The data was shoved back and forth between the systems using methods that usually were so tightly ingrained in the software that every time a system was upgraded or enhanced the integration code would break and have to be fixed. Or worse the systems were so tightly embedded with each other that they couldn’t even run without the other one being up and running as well (this is another thing that loose coupling allows, for two systems to truly be independent of each other, if one is down, who cares, talk to it when it comes back up)

So now that systems are being built to support loose coupling it is much easier to integrate software systems, and have them keep working together. The keep working together part of that statement is pretty key. I don’t know about you but I hate going through tons of effort just to have some bug fix in another system break what I just got working.

So why do you care about this? What is this going to do for your users? Well that’s where things get interesting. The way that I always talk about this stuff is that your end users aren’t going to care about this really. They just aren’t going to see it directly so why should they? However this is the sort of thing that CTO’s and their ilk really drool over. Software doesn’t just have its own data to play with and display. Software can now find other data that it is it can also display and crunch data from other systems. Data that was pulled from other systems via an SOA architecture so its always going to work even if you upgrade, and you can still work even if the other system isn’t running.

So, finally after all that, why do you need one? Well you don’t necessarily. Not all systems need an SOA, but there are huge benefits to having something in place for one. Back to those drooling CTO’s for a second. What do they care about? The data? The business processes a system implements? Or the UI? I can almost guarantee that the UI will come in third place out of those. There is no doubt that a UI is important to the system, without a good UI people won’t care to use your system. But without the correct business processes being implemented, people won’t have any reason to even look at your system to see if the UI works for them. In addition the data collected by your system can be used to help you figure out what else might be interesting to provide for your customers. Not to mention the fact that if you have no data you probably don’t have any customers.

So an SOA makes it easier to integrate? Sure that’s cool, but is that all? Well not exactly. That ease of integration also allows you to think differently about how you build your software. For example an interesting feature of an SOA system is that you could build the system and not build a UI; let other people build the UI for you. People’s thoughts on what a good UI is change all the time. Just think about what has changed in web design in the last five years or so. What people once thought was cool is now just plain nasty. What if you didn’t have to keep pace with the changing UI world? What if you just focused on getting the business processes right and let third parties create UIs for your application? Sure sounds crazy at first, but other applications are already starting down that path (for example Twitter has an API that people are using to build their own Twitter clients).

SOA systems are what allow the wave of mashups that are currently the rage in development circles. Now that there are systems like this in place your web site can easily tie in with other web sites that before it couldn’t, or didn’t realize it wanted to. For example your traffic site, could start to grab weather information from a weather site, or construction information from a government site, or even event information from things like golf courses along a route that might cause more traffic.

They’re like the legos of the IT world. A single Lego block alone doesn’t do you much good, but when you get a big pile together the only thing that limits what you can build is your imagination in how to plug them together.

Technology is surprisingly useful

Wednesday, March 5th, 2008

Yup, believe it or not, I think technology can actually be useful. When I say things like that, and people learn that I’m a developer, I sometimes get funny looks because well a developer is supposed to like technology right?

Yes I am a developer, but no, I’m not the kind that goes out and has to have the latest tech toy just because. It actually has to have a need in my life, it has to make my life easier/better in some way. Recently (well ok the past year or so) I’ve found a few things that really had a surprising amount of positive impact in my every day life. The first is my GPS on my phone and the second is an iPod Touch.

So first my phone, its not just a phone, its a Swiss Army knife of phones. A year ago I was toying around with the idea of getting a new phone, and also with the idea of getting a PDA, but I know myself. I’m lazy. I knew I wouldn’t want to carry both and would end up forgetting one or the other on a fairly regular basis. So I decided to look for a phone/PDA combo. I settled on a Cingular 8525. It was fairly small, had a full qwerty keyboard (which I really wanted), had a decent screen, and ran Windows mobile (I’ve done a lot of windows development so I figured I could easily play with the platform).

It was cool, I was synching, I was emailing, I was calling, I was really diggin the phone. But was it changing my life? Nope, net yet, but I would soon get GPS software installed on it, and then I really started to love the thing. I can’t say enough good things about GPS. When I first heard about it I was kind of skeptical. Why would I need a GPS when Mapquest could get me any directions I wanted? Was it really that much better? Well, yeah it really was. Its the first thing in a while that I had encountered a technology where, sure I didn’t need it, but it changed the way I did things in a much better way. It was safer than having to keep looking at a piece of paper, easier because instead of trying to find your place on the directions list you just listened for the system to tell you where to go. On top of that I actually was getting information I didn’t have before such as how far away I was both time and distance wise. I’m still surprised that this one piece of technology, while truly an unnecessary luxury, was proving to be so incredibly useful.

So now my iPod touch. So, a little more background, I’m not really a music person. Sure I do like it, but I don’t feel like I always have to listen to it. If its on great, if its not I usually don’t notice. As a result I never really wanted an iPod at all. Then I got my wife an iPod Touch for her birthday (she is a huge music fan so it made sense), and as a result I started to play around with it. The more I used it the more I liked it and wanted one for myself, I was still hesitant, but at the same time I knew that if I got any iPod I’d want the Touch version because even if the music aspect didn’t really connect with me, the UI of it would. So finally I just I went ahead had got one.

Man am I glad I did, first I find myself listening to music much more than I thought I would. I never realized how much more accessible music could be when your entire library was in one place and you didn’t have to flip around CDs. On top of that I found myself listening to Audiobooks in the car. Something that I’ve never done before (I’m a pretty avid reader, but I never saw the point of audiobooks) , but now I find myself getting a new Audiobook as soon as I finish one. Yet again I was surprised that this one piece of technology, while truly an unnecessary luxury, was proving to be so incredibly useful.

So what’s the point of all this? Well if you think back there is a lot of technology out there that fits this bill. Cell phones, back when they first came out did people really think they’d need to have a phone on them all the time? From what I remember, no. Or even television. People had radios, why would they need a TV? It kills the imagination! Or even something closer to home like Turbo Tax. Did I do my taxes on my own before I started using Turbo Tax, sure, and I still feel like I could, but I never would because it makes my life easier and better to use Turbo Tax.

All of this makes me realize that the technology that improves and changes peoples lives the most are the things that aren’t necessarily a necessity, but things that quickly become a neccessity because the technology is used/seen in action people can’t imagine how to conduct their lives the way they did before.