News for hackers. Stuff that matters.

Ask YC: How To Prioritize

For me, one of the hardest parts of doing a start-up is deciding what to do first. I know what has to be done, I know how to do it, but I find it much harder to determine what my site biggest issue is.

To give a few examples: I haven't implemented billing yet. This is obviously essential, but now may be premature, since ... I've got very few users. So, maybe I should do more marketing, but ... My site may not be good enough yet, so most visitors won't stay around. So maybe I should listen carefully to my current users and make the site ... prettier? Easier to use? Create more content? Make it more fun? More addictive? More viral?

This is a hard problem no matter what, but does anybody have useful suggestions on dealing with these issues?

( 35 comments | 21 points | on HN )
Re:Ask YC: How To Prioritize by thorax on Saturday February 23, 2008 @04:13PM (#122203)
I'll start by saying I'm a weird guy.

A long time ago I realized that people mean different things when they say 'priority'. If you only mean the 'value' of a certain task, then that's not a good way to prioritize, IMHO.

I've changed my model to prioritize strictly according to return on investment. I.e., how much value I or the company receives for unit of work.

In my professional project management and in my company, here's the algorithm that I pretty much use for every sort of task prioritization:

(1) I put together a list of items

(2) I put a relative cost (RC or C) associated with each item-- for a task list this tends just to be the hours you predict you'll spend.

(3) I hide those costs and then add some number that represents the relative business value (RBV or BV) of each item. (More on this in a second)

(4) I unhide things and then put another column that just calculates RBV/RC which indicates the return on investment (ROI) for each task.

(5) I then sort it all by ROI and work my way down the list in ROI priority order, always working on the tasks that offer the most ROI, I adjust values and costs (and re-sort) as my needs change, work completes, and as my understanding of each task changes.

The units used to value each assigned task is not really important. It's only important that tasks have a value that makes sense relative to each other.

For example, if I have these tasks:

  * Setup tech support email account
  * Improve usability for site logon page
  * Write a blog article about our recent features
I might then give these costs:

     01 hour  - Write a blog article about our recent features
     01 hour  - Setup tech support email account
     16 hours - Improve usability for site logon page
Having a tech support email account, I know that's important and I must have it, so it gets a high value. In this case, I'd say "Improving usability" is something we could survive without, but I firmly believe it could increase our revenue.

I might then give these relative business values (I'll just say points):

      200 pts - Write a blog article about our recent features
    10000 pts - Setup tech support email account
     5000 pts - Improve usability for site logon page
When I calculate the ROI and sort them, I get this list that I work from top to bottom:

    10000 pts/h - Setup tech support email account
      313 pts/h - Improve usability for site logon page
      200 pts/h - Write a blog article about our recent features

As long as when I add new tasks, I evaluate them against the other values and costs to ensure they're all relatively correct, the list always sorts to provide the tasks with the 'biggest bang for the buck' at the top.
Re:Ask YC: How To Prioritize by skmurphy on Saturday February 23, 2008 @05:55PM (#122249)
I believe that the challenge is not "how to prioritize given the relative business values" but "what is the most important thing to be working on." Getting a business moving can be a little like opening a combination lock: you can be working on the right things, but if you don't focus on them in the right sequence they may not have any impact.
Re:Ask YC: How To Prioritize by thorax on Saturday February 23, 2008 @07:59PM (#122291)
True, I agree.

That being said, I try to capture items like that via a constantly evolving list (which is pretty much necessary no matter what). The relative business value of the next item in 'the sequence' would be higher that day/week than than it would be otherwise and would bubble to the top if it was the highest return on investment.

Likewise, it's possible for the 'cost' of certain tasks to drop/rise based on what's happened recently (i.e. you just learned more about something, or you're in a really productive mood or office setting).

In the end, my ideal would be just to figure out what's the highest return for my time __right now__ and work on that. I.e., it's a continuously updating function and the list is never set in stone.

Re:Ask YC: How To Prioritize by mdemare on Saturday February 23, 2008 @04:22PM (#122208)
I think I'm weird too, because I love the idea. But please tell me you only use this for work.

I don't have Excel, so I'll start writing a Ruby DSL to implement this right away.

    *mdemare eyes himself warily*
Re:Ask YC: How To Prioritize by thorax on Saturday February 23, 2008 @04:39PM (#122218)
We actually juse use Google Spreadsheets, and it's simple enough that I use it for personal stuff sometimes, too. It sounds far more complicated than it is.

Here's an example sheet that you should be able to copy via Google's menu:

http://spreadsheets.google.com/ccc?key=pvOwoUYoNUFTmGZhwyjK4...

Having used this specific approach on many projects, there's considerations that should be kept in mind that I haven't solved 100%:

It's difficult to track dependencies between tasks and have those sort efficiently. As a human you have to realize the sheet is a tool and that you have to look to catch these things from time-to-time.

If you're not careful, you can defer 'infrastructure' tasks that have no obvious/direct BV. I work around this by temporarily having infrastructure tasks inherit the combined BV of all things that they'll help and for all tasks to add the infrastructure item's cost to theirs.

There's probably a more accurate formula for dependents and dependencies to use, but I find that if you have 99 tasks dependent on an infrastructure task, it's not unreasonable to say that task is pretty durned important to open 'doors' for the company.

For example, refactoring tasks often fall into this category. Changing from an Access database backend to a MySQL backend might not give you immediate ROI, but the sheer number of things that open up to you as possibilities after that need to be considered somehow. The conventional naive approach might not get you there without the item inheriting some of the value.

Re:Ask YC: How To Prioritize by anewaccountname on Sunday February 24, 2008 @01:52PM (#122594)
>I don't have Excel, so I'll start writing a Ruby DSL to implement this right away.

You didn't listen to a word he said. I mean, just do the smallest list possible that you can fit into your head (so that you don't need Excel): this can only have two items if you want--find an Excel alternative; write a Ruby DSL. Weight those the way he said, and you will end up crossing the Ruby DSL off of your list.

Re:Ask YC: How To Prioritize by reeses on Wednesday February 27, 2008 @05:37PM (#125048)
Do you add an NPV to account for not getting the return until some date in the future? I.e., a 10000 pts/hr task might be better prioritized after a 100 pts/hr task if the duration of the first is two years and the duration of the second is two days.

(Yes, these are silly and inflated and completely hypothetical. I'm interested in how you solve them within your structure, as I'm a huge ROI fan.)

Re:Ask YC: How To Prioritize by pg on Saturday February 23, 2008 @04:37PM (#122215)
Do whatever would make users love you so much that they spontaneously recommend you to their friends.
Re:Ask YC: How To Prioritize by sarosh on Saturday February 23, 2008 @09:53PM (#122338)
There needs to be a way to save this comment alone for posterity.
Re:Ask YC: How To Prioritize by pg on Sunday February 24, 2008 @12:47AM (#122379)
Re:Ask YC: How To Prioritize by boredguy8 on Sunday February 24, 2008 @12:49AM (#122380)
Isn't that Bowles' point in "Raving Fans"? Definitely the right way to go.
Re:Ask YC: How To Prioritize by Tichy on Saturday February 23, 2008 @03:46PM (#122190)
Sounds like a case for structured procrastination: http://www.structuredprocrastination.com/

I suspect it is best to focus first on the task you most feel like doing.

Re:Ask YC: How To Prioritize by mdemare on Saturday February 23, 2008 @04:09PM (#122201)
Thanks for this fascinating article! But my problem is not one of motivation, but one of knowledge. i.e.: I have no idea what the most efficient use of my time is. I just do what I feel like doing, not (necessarily) what gives the best R.O.I.
Re:Ask YC: How To Prioritize by webwright on Saturday February 23, 2008 @04:31PM (#122209)
If the analysis is time consuming/paralyzing, take a guess and proceed. If you literally have no clue, chat with your co-founders. If you're still unsure, grab 10 random target users and give them the list-- as them which thing on the list they'd want you to work on.
Re:Ask YC: How To Prioritize by Tichy on Saturday February 23, 2008 @08:36PM (#122311)
Perhaps you could use the Adwords test as described in number crunchers: create Google Ads for the various features you could be working on, and see which ones get clicked more. The ads could point to messages of the form "we are working on feature X".
Re:Ask YC: How To Prioritize by mixmax on Saturday February 23, 2008 @01:34PM (#122133)
It is a hard problem, but by addressing it you are already ahead of the crowd.

What I would do is to set up some goals (get more visitors, increase ROI, etc.) and then look through your list of stuff that needs to be done, with these goals in mind. Do the ones that are most likely to get you towards your goals.

Just writing it down will probably help a lot.

Re:Ask YC: How To Prioritize by ashu on Saturday February 23, 2008 @04:41PM (#122221)
If you are at a fairly early stage in your start-up (< 1 year), I would suggest you focus on your product and ONLY on your product. Forget marketing, addictiveness, virality. Figure out what is the core value you want to provide to users and just focus on that the hardest. Make your product the absolute best that can be.

Within your product, do the most important thing your users need or you think your users need. (The former is better if you have a significant user base.) If that thing is billing, do it, else postpone it. Don't think about what will cause a media splash, or what is "cool". Stay focused on what people want.

If you have been live / launched for quite some time, marketing, addictiveness and virality become somewhat more important, but from your question, I suspect that isn't yet the case.

Re:Ask YC: How To Prioritize by skmurphy on Saturday February 23, 2008 @05:38PM (#122243)
Bijoy Goswami, the prime mover behind the Bootstrap Network http://www.bootstrapnetwork.com/ has an approach he calls "Demo Sell Build" that recognizes that most of the risk in a startup is not technology but market. I agree with "figure out the core value you want to provide users" but I would give short presentations or briefings (e.g. one page handout, one slide, one HTML mockup page) to make sure you've nailed it before developing the full app. Bijoy goes into more detail on his model in the "Bootstrap Bootcamp Fall 2007" DVD here http://www.amazon.com/Bootstrap-Bootcamp-Fall-Bijoy-Goswami/...
Re:Ask YC: How To Prioritize by skmurphy on Saturday February 23, 2008 @05:48PM (#122246)
Don Reinertsen http://www.reinertsenassociates.com/ author of "Developing Products in Half the Time" and "Managing the Design Factory" has a great quote about managing product priorities that bears on this.

"Priorities: Last Refuge of the Innumerate

What is our highest product development priority, cycle time or unit manufacturing cost? To even ask this question, suggests a fundamental misunderstanding of product development economics. If cycle time takes priority over unit cost, then it follows that we would prefer the smallest improvement in cycle time to the largest improvement in unit cost. If unit cost takes priority, then we would prefer the smallest improvement in unit cost to the largest improvement in cycle time. Does this make any sense? Of course not. When we prioritize we give strict precedence to one objective over another. Such strict precedence leads to bad economic choices.

The value of cycle time and the value of unit cost must be expressed in the same unit of measure: life cycle profit impact. It is only with this quantification that we can make good economic decisions to trade one for the other. Setting priorities for individual measures of performance is simply avoiding the important job of understanding how performance influences economics."

It sounds like you need a simple model for what the site will look like when it's profitable (e.g. number of customers, how often they visit and how many times in total do they visit (customer lifetime), what does it cost to acquire them, what and how much do you charge for, how often do they refer other customers...). Once you have some numbers on your model you can then build a plan to evolve toward it.

I am inferring that you are going to be a subscription site ("haven't implemented billing") I would get that done right away and see if you've built something that even a small number of folks will pay for. There can be a world of difference between what people like and what they will pay for. Focus on what they will pay for in a subscription site.

Re:Ask YC: How To Prioritize by NickSmith on Saturday February 23, 2008 @03:20PM (#122175)
I've found that when we are confident, relaxed and grounded in the present moment, prioritisation tends to take care of itself, in as much as 'what's next' becomes quite clear and obvious. So (at least to me) the problem of priorities is really a symptom of the greater issue of how stay relaxed and centred in the natural 'flow' of your project/start-up. This is not so easy, particularly if this is your first start up because, almost by definition, you are working outside of your old comfort zones. But I wrote a little piece* about this that might help.

Also, it can help if you keep a list of low complexity, low priority tasks that you can pick from as your fancy takes you, when your motivation is low or you are just having an off day. You'll be suprised how ticking off these low priority tasks will give you a sense of progress that restores your clarity and motivation to tackle those bigger, more complex milestones. Good luck :)

* http://www.life2point0.com/2006/06/the_little_book.html

Re:Ask YC: How To Prioritize by iamdave on Saturday February 23, 2008 @07:07PM (#122272)
I'm not sure if you've read 37Signal's book on Application Development "Get Real" (http://gettingreal.37signals.com/) but you can accomplish a lot of things when developing applications by knowing not how to prioritize, but what to prioritize. The one thing that I appreciated the most from the book was this one principle:

"A great way to build software is to start out by solving your own problems. You'll be the target audience and you'll know what's important and what's not. That gives you a great head start on delivering a breakout product."

Start off by figuring out what you need to progress, and once you get to that point, build on it and make it better, and before you know it you're trucking along on the next great web app.

Re:Ask YC: How To Prioritize by wallflower on Sunday February 24, 2008 @12:30PM (#122557)
In the network marketing world (of which I observed as a passive participant briefly), they have a saying - don't confuse activity as productivity. For example, in network marketing, filling out paperwork and reading web sites and listening to tapes are (low-value) spin your wheel activities. Approaching prospects, inviting people to meetings, mentoring, and selling product are high-value productivity. These productive activities can all be measured: As one of the co-founders of HP said in a maxim: "You can't make what you don't measure". For your startup, intend to focus on activities where you can measure results and success. Billing will be one - you can even see if people actually use it.
Re:Ask YC: How To Prioritize by mooneater on Saturday February 23, 2008 @02:34PM (#122148)
I maintain a spreadsheet list of smaller tasks that need doing, vaguely inspired by Getting Things Done. Add a priority column and sort. Then each day, review the list to update priorities, and flag items I intend to complete that day.

Separate list for major features I intend to add. Works the same as the task list, except on a much slower timescale. That one has ended up being much more valuable.

The simple act of collecting this all in one spreadsheet doc has resulted in way more clarity in my thinking and planning. It allows me to bounce between many major areas of work, without losing track.

Best of luck!

Re:Ask YC: How To Prioritize by crystalarchives on Saturday February 23, 2008 @02:35PM (#122149)
I try to maximize productivity and efficiency; if I have a lot of time, I do something I'm less familiar with since I'll probably have to look things up and experiment, without losing state. If I just have a little bit of time, I work on the parts I know I could do in my sleep, so if I get interrupted it's no big deal, I can easily pick up where I left off.

But most importantly, I try never to procrastinate, although I don't always succeed... Good luck!

Re:Ask YC: How To Prioritize by mrtron on Saturday February 23, 2008 @01:30PM (#122130)
Focus on your core competency. Whatever makes your site good and unique. There are a zillion other sites, why would someone come to yours?

Obviously listen to your users! Prioritize on things that you think will grow your site - like ALL of the things you listed. Some are easier to address than others, so tackle those first.

Re:Ask YC: How To Prioritize by mdemare on Saturday February 23, 2008 @01:38PM (#122135)
But any on my list could be a full time job. And yet I must choose. But how? Are there rules of thumb?

How do other start-ups prioritize?

Re:Ask YC: How To Prioritize by xirium on Saturday February 23, 2008 @04:16PM (#122205)
From the book Eat That Frog! - 21 Great Ways To Stop Procrastinating And Get More Done in Less Time: Doing something is better than doing nothing. Make a list of five tasks. Order the tasks by strict priority. Work your way through the list, skipping as you get stuck. If your list has more than five items then you're spending too long making lists.
Re:Ask YC: How To Prioritize by gscott on Saturday February 23, 2008 @02:18PM (#122143)
Keep doing something on what you are building and eventually you will have it done.
Re:Ask YC: How To Prioritize by edw519 on Saturday February 23, 2008 @03:01PM (#122157)
What's the ONE THING that MOST differentiates you from everyone else?

THAT's what you should focus on.

You can do later, delegate, or outsource the stuff others can do to the others who can do them.

Re:Ask YC: How To Prioritize by mdemare on Saturday February 23, 2008 @03:06PM (#122162)
Oh, I'm focusing on that, but there's just me, so no outsourcing or delegating, and stuff like web-design, marketing and billing needs to be done too.
Re:Ask YC: How To Prioritize by edw519 on Saturday February 23, 2008 @03:22PM (#122177)
Understood. I guess the point I was trying to make was that if you do your key differentiator well, then the web-design, marketing, and billing will be much easier to do. It's much easier to sell a game breaker than just another thing.

OTOH, there's not much need for billing if you don't have something fantastic to sell.

My experience is that when you really focus on the one big thing all the small things get even smaller once you get around to them. Hope that helps.

EDIT: It just occured to me that pg describes this concept (What's the best thing you could be working on, and why aren't you?) much more eloquently here:

http://paulgraham.com/procrastination.html

Re:Ask YC: How To Prioritize by skmurphy on Saturday February 23, 2008 @05:50PM (#122247)
I would gently disagree, if he is running a subscription site he needs to get billing working to determine what folks will actually pay for. Having a billing system communicates a serious intent to your prospective customers that you want to provide value and are in it for the long haul.
Re:Ask YC: How To Prioritize by mdemare on Saturday February 23, 2008 @04:15PM (#122204)
Good point. My problem is that I find it hard to delegate (or am too stingy to spend money on services). So I've wasted endless hours on fiddling with CSS. Since I'm a very good programmer but a very bad designer, that was probably not efficient. Law of comparative advantage and all that.
Re:Ask YC: How To Prioritize by JackDanger on Sunday February 24, 2008 @04:31AM (#122423)
You might be able to outsource more than you think. I've had to learn the hard (read: expensive) way that putting my sweat into a site is only worthwhile when the piece that I'm building is unique to the internet. Everything else has been done before, done better and is available for cheap or free.

Are you building a storefront? Shopify.com might take care of 99% of your work. Managing invoices? Use BlinkSale.com. Getting stuck on unending CSS issues? Use an open-source CSS framework.

I'm sure this isn't news to you but I thought you could use the reminder - I know I need it frequently. We who can do anything often try to do everything.

Re:Ask YC: How To Prioritize by prakash on Sunday February 24, 2008 @12:34AM (#122374)
one word: VALUE.

In your case that translates to which features translate to the maximum number of users.