I like to love the software I use.  I gather many of you do too. In the process of designing a new release of OneNote its important to keep this in mind, since it is easy to make a product that meets a lot of business criteria but has no soul.

For example, our product development process uses a fixed development budget (days, not dollars) and a (relatively) fixed ship date. We also have a high minimum bar for quality. So the only variable we are able to play with is what we do with our budget.

One way we could use the budget would be to gather the list of customer requests and simply list them in order of frequency. "Gee, a lot of people ask for drag and drop of section and page tabs, let's put that at the top". Maybe we also throw in a sense of how serious a problem each one is (its "severity"), not just how common it is (frequency). Then we just add up the cost of each until the budget is used up. You could say this is a great strategy because it is responsive to customers. But you could also say it is backwards looking, or lacking in vision, with a tendency to scatter the product all over the place and lead to bloat since we end up with essentially an unconnected laundry list of features to add.

Another way might be to look forward at where you want the product to be in 5-10 years. If you have a "roadmap", you can plan a path to achieve various milestones on it, and have a plan to get you to the type of functionality you want and thereby the business you want. For example, we want OneNote to be used by nearly everybody for "high value" activities (i.e. we are so useful they are all willing to pay us well for the product). Part of that vision for us is to be an application where it is as easy to share thoughts and project info with others as it is to use it yourself - i.e. we want to revolutionize the idea of "collaboration". This sort of long term goal tends not to show up on user request lists because they are looking at flaws in the current product. Obviously if you do this exclusively, you risk alienating your user base since the current users were attracted to your product by what it does (or almost does) today and not so much by what it might do in the future.

We naturally take a blend of both of these strategies to give enough customer love but also stay on our mission. But that isn’t quite enough. There's not necessarily a spark there which provides the soul of the product.

Consider the municipal budget for your community. It is no doubt full of pragmatic line items such as school funding, pothole filling, park maintenance, sewer upkeep, and so on. But many municipalities know that if they spent their whole budget on these things then life for their citizens would be a dull (albeit pleasant) existence. So a lot of communities have a philosophy called "1% for art". The idea is that if you simply grind down the list of priorities for the community you will run out of budget before you ever get to items such as "make our community more stimulating to live in" or "provide exciting experiences for our citizens". You probably won’t even make it out of schools and sewer maintenance. So rather than just have a long list of items ranked by universal priority, these municipalities appropriate "1%" of their budget to spend only on these whimsical things that make life interesting, such as public art or festivities. The theory is that 1% isn’t going to have a material impact on those other budget items but it achieves a wholly different goal.

So it goes with OneNote. We try to balance priorities around making existing customers happy with our longer term vision for the product (which involves having way more customers than we do now, also happy). Then we have some priorities whose future value likely exceeds their current value to us so we "over-invest" in them, such as Tablet PC support. Then we come to our version of "1% for art".  With this budget category we can fund features which would not survive if they had to be directly traded off against other features in the main categories. But they serve to add soul to the product (or cool, or sex appeal, or whatever tingly word works for you). Some examples include the linked audio notes in the first release, video recording and screen clipping in 2003Sp1, audio search and OCR/search of images in OneNote 2007. And then there's a little favourite of mine in 2007 which reinforces the difference between OneNote and any other tool, as well as our focus on what people do in an app like ours: quick of-the-moment activities. That feature is Napkin Math (a.k.a. the Calculator)

When I am sitting in a meeting or just at my desk trying to work my thoughts out it often happens that I need to do a little math. In these cases I am already in OneNote, either taking notes or capturing my thoughts in some way. Now I need to know what our install size is going to be if we remove a few components, or what % of our dev budget the napkin math feature will be. So I could reach for a calculator or try to find the one built in to Windows, or maybe launch Excel. If I did, it would take awhile, it’s a context switch, and I might get "the answer" but I would have no record of the calculation or how I did it unless I typed it into OneNote. Hmm. What if I just type it in to OneNote right there in my notes? These aren't the actual numbers, but for example here's 88.7MB total install size minus three components of varying size; 4.6MB, 2.9MB, and 11.3MB, oh, and we might need to add a 6.5MB component:

88.7-4.6-2.9-11.3+6.5=

Now I just hit Space bar or Enter and I get:

88.7-4.6-2.9-11.3+6.5=76.4

Well, that was nice. What about the % of effort calculation? These aren’t real numbers either but let's say there are 11 developers who work for 4 milestones each 7 weeks long (a week is 5 days), minus 30 days each of security work, minus 7 days each of service pack work, and the total cost of the napkin math feature is 5 days, the cost of OCR is 14days, and audio search is 9 days. Let's do it:

(5+14+9)/(11*4*7*5-30*11-7*11)%= 2.47

Ok, we're at 2.5%. More than 1% but in line with what we want to spend on this category.

It's not just arithmetic. You might want some other things like trigonometry:

39*sin(30)= 19.5

Or simple functions like:

Sqrt(256)= 16

Maybe you want to force more precision. If so, just make sure one of the numbers includes the number of decimals you would like to see in the result:

4/7.0000= 0.5714

The nice thing about napkin math is that it is right there where you need it. It is just "smart paper".  No need to jump to another tool, and of course your calculation is preserved for you or others to refer to later. Very handy for back of the envelope (or napkin!) estimates of market size, likely GPA, attendance at an event, budget, etc. I do want to emphasize that this is not an "equation solver" - it won’t "solve for x" or iterate or anything like that. Strictly simple arithmetic and functions. Naturally if you need something heavier duty you go to Excel or Mathematica, but this is right where you need it.

Napkin math falls into the "art" category because it clearly isn’t a top priority for our customers (zero people asked for it) or the vision for the product or any other budget category. But it is cool, it works just as I want when I need it, it is different, and it makes me love my software. We've already got a few smiles from our beta users about it.

A friend of mine told me an interesting anecdote today. One of the designers of the Windows interface prototypes (for the release *after* Vista) was showing him a cool effect where sliding a window over a background image of a bush "rustled" the leaves of the bush. My friend instinctively smiled, then found his hard headed Microsoft program manager habit came back and he almost involuntarily said "nice, but what’s the point?". The designer said, "You smiled, right? That's the point".