Will someone please think of the user?

12 12 2006

Recently I was in the market for a DVD burner since my laptop has just a regular DVD ROM. For flexibility, I was looking at buying an external USB 2.0 burner. This would nicely complement the external 250G hard drive that I had also just purchased for backup purposes. After hunting around in the usual places – Amazon, Fatwallet, eBay, TigerDirect etc. – I found a good deal with free shipping on NewEgg. That’s where all the troubles started…

Firstly, the site won’t work with Firefox. After adding the item to the cart I could not create an account nor enter my details for checkout. The worst thing is that there is no error message as well. In this day and age, how hard is it to make a website that works with at least the #2 browser? So I switched to the IETab extension, which allows you to open any page in IE within Firefox. This refused to work as well.

So I had to open up IE and go through the whole rigmarole from scratch. The (newegg) gods must have been in a good mood at that time since I managed to proceed, create an account and actually get to the Payment options page.

  • This page presents a plethora of options (Credit card, PayPal, Money Order, NewEgg credit etc.) all assembled together in the most confusing way possible.
  • You can use PayPal, but the email addresses in your NewEgg and PayPal accounts must match; they don’t inform you of this requirement when you register for an account. There’s no way of specifying an existing PayPal account.
  • They accept credit cards (hallelujah), but need the 1-800 customer service for “card verification”.
  • There are tons of other minor annoyances with the entire checkout flow and presentation.

I understand most people who visit and purchase from NewEgg and its ilk are looking for a deal and don’t mind jumping through a few extra hoops to do so. My first experience has left a sour taste though, and I won’t be buying from them again, unless there’s a really good deal of course :)

This really seems like Product and UED 101 (I wonder, is there such a course that’s taught anywhere? If not it should be, but I digress…), especially for checkout, which is very much a solved problem in the e-commerce world.

In an ideal world, potential customers should be treated equal to existing customers. Most (there are always notable exceptions) companies offer preferential treatment to potential customers via snazzy brochures, aggressive marketing, sales talks, while doing the minimum to keep the existing customer base satisfied and loyal. NewEgg seems to subscribe to the opposite philosophy – treat potential customers as badly as possible; if they still get through, then they are going to be loyal anyways and we don’t have to work any harder.

Remember:

First impressions leave lasting impressions

Make the user experience as seamless and as simple as possible

Every user interaction with your product is an opportunity to acquire a customer, or increase loyalty





20 rules for delivering software products

5 11 2006

During my time as a software developer, I’ve observed that many of the problems affecting product development in the software world can be resolved if you follow the following rules. Product and project managers: please take note.

  • Make sure you know what you are building. Many project delays are because the “customer”- the manager, corporate head, (you?) doesn’t actually know what they want.

[Update] Recognize that what you need to build will change all the time. Make sure your process supports this and that you reconcile the change with the point above.

  • Make sure you only work on things that you need to ship with version 1.0.
  • Make sure you always keep the prototype running.
  • Show demos every few days to make sure no one is confused about what is going on.
  • Don’t make any project your time to show how clever, cute, or interesting you can be.
  • Small is good. Keep Teams/Egos/Methods/Files/Modules/Projects/build times small.
  • If someone is not clicking with the rest of the team:
    1. talk to them privately,
    2. reassign them,
    3. if this person is you, read #9, and consider if you want to build this project, or do something else. Follow your heart.
  • Do the riskiest part of the project first.
  • Make sure you’re in total control of your toolset and improve it systematically
  • Do not take the clients’ deadlines literally – first accept the project, then renegotiate the deadline.

[Update] I do not mean to imply that the clients’ constraints are not important. I’ve seen too many examples of team heroics to meet deadlines, when it would have been OK from the client’s perspective to slip by a reasonable amount of time. Keep the lines of communication open and balance the needs of both parties.

  • Design your software around interfaces so you can make massive changes cheaply.
  • Document the interfaces perfectly, but don’t document code (see next point).
  • Be fanatical about the readability of code.
  • Remember that the enemy of the better is the best.
  • Push all QC, packaging, and issue management through a single team.
  • Build regression testing into the build process.
  • When debugging a problem, never ask, “how come it works on my box?”
  • If some code is too complex to understand on a Monday morning before coffee, redesign it.
  • Never add new code while there are still major bugs in the existing code.
  • Don’t worry about it. If you are working hard, and follow 1-19, you are doing your part.




    Lets get this thing started

    4 11 2006

    I am a product manager at one of the major internet companies in Silicon Valley. Prior to that, I was a software engineer with a computer science background.

    Why product management?

    Ken Norton, Director of Product Management, JotSpot (recently acquired by Google) describes it best in his blog:

    Product management is a weird discipline full of oddballs and rejects that never quite fit in anywhere else. For my part, I loved the technical challenges of solving problems, but I hated having other people tell me what to do. I wanted to be a part of the strategic decisions, I wanted to own the product. Marketing appealed to my creativity, but I knew I’d dislike being too far away from the technology. Engineers respected me, but knew my heart was elsewhere and generally thought I was too “marketing-ish.” People like me naturally gravitate to product management.

    My favorite line is “Remember buddy, nobody asked you to show up.” This is how one colleague greeted me on my first day in the new role – “Oh hey and by the way, this is going to be fuzzy and vague and you are going to constantly question the purpose of your position. That is part of the job. Congratulations on your new position.

    Why do I need product managers?

    Because. No, really. In the long run great product management usually makes the difference between winning and losing, but you have to prove it, which can get pretty tricky.

    Why this blog?

    Product management combines elements of lots of other specialties – engineering, design, marketing, sales, business development. There is no official course or training that one can take. No one graduates with a BS in Product Management. You learn the tricks of the trade either

    • on the job, or
    • talking to those who have travelled this road before you, or
    • reading books and blogs.

    I find that I learn something better if I write it down. Hence this blog, where I hope to note down my experiences, thoughts and pointers to the wisdom of others.

    Hopefully it will help other folks too.








    Follow

    Get every new post delivered to your Inbox.