Sunday, March 30, 2008

Apple wired article

Yesterday I read a wired article of how Apple creates their products. Working at MS right now, it is interesting to me the comparison of how Apple vs. the rest of the industry, where is seems like most is designed by committee. The article highlights that Apple products can only be a result of employees having less power and that most decisions are made by a benevolent dictator (AKA Steve Jobs).

This model of not giving employees’ power only works when Steve is around, and is the reason why he is so revered by Apple. When Steve was out, Apple did not innovate; the model did not work, and the rest of the industry passed them. Now that Jobs is back, it seems like a great model to follow. So, the reality here is that, simply put, Steve Jobs has good taste.

Witness other companies that have higher level executive making decisions on what is good for customers: mobile companies. They demand certain designs from manufacturers and had (until the iPhone) the final call. Some executive have really bad taste and are the opposite of hip-Steve. Thus the need to give control back to employees so they can innovate.

But having employees control causes another problem. How do you create a seamless user experience if you have every single person thinking about their own feature in a different way. The only solution I see is to have a good process to review and merge different feature into one consistent way. I've seen these processes at work, but they tend to only focus on review and fail at the merging stage. This is why you see some products as a frankefeature of things, instead of a consistent whole.

Wednesday, March 26, 2008

Why I joined Microsoft?

So I finished school, joined a big corporation, received my first 3 paychecks and settle down. Honeymoon period is over...Now I can reflect why I joined MS Office Live Workspace.Even more...why as a Program Manager when I'm a hacker at heart?

The main reason is that I got a little bored of coding. I used to think that I am really good at it, and enjoy it a lot, but just didn't get the kick out of it as I used to. I love writing code because I like to see the program do what I want it to do. The problem in my career was that I had to do what other people wanted the computer to, even though it didn't make sense to me sometimes.

In consulting companies, the decision was left to the client, which normally didn't care much for technology. This made my coding experience miserable. In product companies, the role normally falls to a Product Manager. Product Managers tend care about the product itself but are sometimes too focuses on the marketing aspect, pricing and other stuff that don't necessarily translate into what the product should do.

In Microsoft, there is a special role called Program Manager that is responsible exactly for this middle piece of deciding what the software should do, without actually be responsible for coding it. This role objective is to translate (or parse) the costumer needs, which can be captured by a Product Manager, to a working software. Additionally, this role need to be able to make sure that all the parts are collaborating correctly to deliver that vision, without actually having the power of a programmer to code the things you would like.

So far I'm happy and excited, although I feel sometimes the weigh of the Microsoft culture on me. It is difficult and irritating to work on some ideas and suddenly realize that they don't fit nicely with other people's items, and as a result, PM's compromise their work just to make sure their stuff get in, sacrificing the end product in the process. I guess this is the really challenge after all..getting people to do what you want them to do :)