Programming is Exciting

Looking back at my progress, it feels almost guided. I think it’s really just the natural progression of learning in life (line upon line – a similar scripture is in Isaiah for you non-Mormons out there) but it’s amazing to see how one idea or decision leads to another. When you’re in the middle of it it seems so random, islands of victory in a sea of problems, and then one day you see it’s all led you to an idea (as defined by Mr. Miyamoto) – a solution that solves multiple problems at once.

Two or three years ago when working on the first version of our company’s website, I was working late to finish the site the night before the launch. I was putting together the form that would allow users to add a new issue. There were only two available actions: Save and Cancel. Both dismissed the form; to call it up again the user had to click a link. I realized that this was a terrible flow for how most users would be entering issues, because they normally had many issues to enter all at once. I knew I needed a better option. That night I added the “Save and Add Another” button to the form. Given my coding knowledge at the time and the fact that I only had that night to finish, I was (and still am) proud of myself for figuring out how to do it (I made the modal form an iframe that submitted to itself).

Fast forward a year or two. I understand code better and have discovered jQuery (which is awesome). I’m tasked with building a site that will track LEED projects. The project was always one that was not meant (at least initially) for anyone outside the company, and even in the company there are only a few people who are likely to use it. In other words, it’s the perfect testing grounds for me. I put in AJAX editing and used jQuery all over the place, learning a ton in the process.

Now we come to today (not literally, just generally) and I am working on launching the third major revision (v3) of our website. I have a couple of goals when it comes to data entry, most of them focusing on speed (as perceived by the end user) and just generally getting the software out of the way. I was already pretty happy with how things were going, as several of the improvements that I wanted to make over the previous version (v2) of the site were happening. In v2, although you could choose to save and add another issue rather than just save, you still had to wait for the issue to save before the blank form would come up again. The “Save and Add Another” button was basically a shortcut through several steps – it took away the clicks, but not the processing time. In v3 I was able to make the issue save in the background and allow the user to immediately start filling out the info for his next issue. I was also able to enable uploading of pictures in the same form, where in v2 you had to add the pictures in a separate step after you had added the issue (meaning that in a report where every issue had pictures, it felt as though you were entering the same report twice).

These were some nice improvements that I had known needed to happen, and some of them had even been brought to my attention by my users (like the photo uploading problem). I was only able to make these improvements because of everything that had gone before – creating the v2 site, the last minute addition of “Save and Add Another”, creating the LEED site, and everything I learned along the way. But what really made me reflect on this whole path was a flash of brilliance that struck me while working on the new issue form in v3: what if the user could lock in a value so that when he saves an issue and starts a new one, so he doesn’t need to put in the same value again? For example, one of the fields for an issue is “Priority”. The priority of an issue is almost always “Low”. It sure would be nice if the user could just say “All these issues are low priority” once without having to select it every time.

It was an immediately exciting idea because I knew that once our users saw this new feature they would wonder how they ever did without it. My initial feeling was that this would just speed things up. But as I reflected on it more, I saw that it solved a number of other problems. It allowed for one person to easily create issues on behalf of someone else, or to create issues for a date in the past. These are frequent occurrences at my company that I previously had no good solution for. Now, when a project manager hands an intern a handwritten page of notes to enter they can be a little happier about it, because it will be that much easier.

I was especially blessed to be struck with both the concept and the way to execute it at the same time, so I was able to put it together that afternoon to show to my boss. With that done the new issue creation process finally felt complete. Although I’m still not satisfied with certain aspects of the new issue dialog (the speed of the background saving, some of the aesthetics), I feel like now it’s just a matter of optimization, not invention.

And that’s where I feel almost guided. Three years ago when I was working on that v2 new issue form I knew that what I was creating wasn’t good enough. The feeling has stuck with me over these years, and although I didn’t realize it, I was choosing a path that would allow me to fix it. I’ve always felt that if there is something you really want, and you ponder and muse and ruminate on it, eventually it will be realized. Not in any mystical “The Secret” way, although it can seem miraculous at times, but rather that the act of thinking about a goal leads you to make choices that bring it closer to fruition. I reflect on James Allen’s marvelous “As a Man Thinketh” whenever I ponder the path that my life has taken:

And you, too, youthful reader, will realize the Vision (not the idle wish) of your heart, be it base or beautiful, or a mixture of both, for you will always gravitate toward that which you secretly most love. Into your hands will be placed the exact results of your own thoughts; you will receive that which you earn, no more, no less. Whatever your present environment may be, you will fall, remain, or rise with your thoughts, your Vision, your Ideal. You will become as small as your controlling desire; as great as your dominant aspiration.


Gruber linked to this post today and noted:

Seeking out the best solution, even if obvious, rather than the solution that makes the designer look the most clever or original, is a sign of maturity.

That’s his comment in response to Mike Monteiro’s observation:

The goal of design is to nail the problem, not showcase the cleverness of the designer.

I was reminded of the realization I had while deciding on a college that I needed to pick what was right for me, regardless of the stigma associated with the college. Though this is a widely accepted truth, most people apply it in one direction: even if everyone is against your college of choice, you should still go if you think it’s right. The other direction is equally valid, though: the right school for you may be the one everyone pushes you towards.

In my case everyone wanted me to go to BYU. I didn’t want to because nearly every one of my friends went there and it’s almost expected that a “good” Mormon will go there. It was rebellion, but couched in the rationalization that I would be showing everyone my ability to think for myself by going elsewhere. It was only after I matured over my mission that I realized I wasn’t truly thinking for myself when I decided not to attend BYU.

As Mike writes in his post, sometimes the right answer is the obvious answer.

Quick Thoughts on Dragon Dictation for iPhone

I downloaded Nuance’s Dragon Dictation for the iPhone this morning on my way to work and gave it a try. It’s a free app that allows you to record short messages which are then processed by Nuance’s servers and returned as text that you can copy and paste into any other application. Dragon is pretty much the only game in town when it comes to PC and Mac dictation software, and those products routinely get great reviews from the press. However, my quick tests showed it to not be very accurate, or at least less accurate than Google’s excellent voice recognition in their app. Pondering this (and a few other things I noticed in the app) I’ve got a few ideas for them.

First, Nuance has said that although the app and service is free now, they may change that in the future. What they need to do is have a free app and a paid app. The free one would be the same as the one available now. The paid app would add one key feature: profiles. Profiles would allow the software to learn your voice just like the desktop applications. You would create an account with Nuance and every time you sent a recording to process the server would store it with your account. Over time the system would learn your particular speaking style and the accuracy would greatly increase.

This setup would have another benefit for Nuance: thousands of voice samples for them to study and use to improve their software. It would be even better if they could also get information on the corrections people made. The current app allows you to tap any word in the returned text and select a different word from a list of options (or edit it manually). I don’t know if the server returns the list of alternate words along with the text or if that is provided by a dictionary locally on the iPhone, but either way Nuance would be wise to have the app send them information on what words users changed. I would imagine having thousands of examples of words that the software got wrong, and the original voice recording that was processed, would be invaluable to Nuance. I didn’t see any indication of network access when I picked a new word from the list of alternatives so I don’t think they are currently sending that information back to them.

Oh, and the app definitely needs a clear button. I had to quit out and come back in to get a blank text box.

The Wii Situation

Stepping Up

With reports out of both Ubisoft and EA recently of flagging Wii game sales, a fresh round of “It’s a gimmick!” and “Casuals don’t buy games” has erupted on blogs. But the Wii situation is far more nuanced than the simplistic analysis that is often accepted.

In fact, I think the gaming masses have their analysis exactly backwards – the prevailing opinion is that the Wii is a gimmick, an aberration in the normal flow of the industry, peopled by idiots who don’t know what they want and who can be tricked into buying anything, and so the sooner it is swept off the stage into history, the better. Once the Wii is gone, they feel, everything can continue on as it “should”.

But they’re wrong.

In reality, the industry as it stands today (or as it stood three years ago, depending on how much the Wii has already changed things) is an insular environment that kills originality and creativity. The same people have been marketed to, in the same way, for years. Whether it’s out of laziness, shortsightedness, or fear, the industy has avoided “manning up” and setting their sights on something bigger, harder, and riskier – the mainstream market. With that risk comes the potential for far more profit.

Nintendo (possibly more out of necessity than true desire) stepped up. They took a deep breath and said “We’re going to move into the bigger mainstream market and try to sell to people that, rather than being stupid, are busy. They have divided interest, and don’t play games for 20 hours a week, and won’t spend two hours figuring out our control scheme, and won’t give us the ‘benefit of the doubt’.”

They decided to sell to, in many ways, a more discerning market, at least when it comes to accessibility and fun. And that’s scary. It takes a lot of work. You can tell Nintendo knows to what it’s committed – the executives often talk of the need to constantly strive to come up with fresh, surprising, fun products in order to keep consumer interest. But the rewards can be so much greater. Just ask Nintendo.

Wii Considerations

For companies that decide to step up to the challenge and sell to the mainstream market via the Wii, there are some unique challenges. Beyond the fact that both creating product for, and selling to, the mainstream market is harder than selling to “gamers”, the Wii’s attributes (especially in relation to the other consoles on the market) create unique challenges.

First of all, “hardcore” games (where “hardcore” means involved, lengthy games with a large learning curve) on the Wii that are merely a lesser version of an existing Xbox 360/PS3 game are unlikely to sell, because most of those interested in these games will buy the “real” version on one of the other consoles. If the game is still fun and technically competent, maintains all the features of the other versions, and suffers only reduced graphical quality, it has a better chance, as it may sell to those who are interested in the game but only own a Wii. If the game, however, is a “spinoff” or in some way a subset of the other versions, it has even less chance of selling, because even those that only own a Wii may lose interest in the title when they find out it is not the same as the game they’ve been seeing ads for and hearing about from their friends. Dead Space Extraction failed because of this dynamic.

Next, good, original games that are hard to grasp or overly abstract (MadWorld, Okami, No More Heroes) are unlikely to sell because they have limited appeal. You may sell to the small group of “hardcore” Wii players because there is not a “real” version on another console and because they read gaming magazines/websites and so know about it or use review scores for purchasing decisions. For the majority of Wii owners, however, if the appeal or fun is not evident with just a glance it is going to be very tough to sell.

Third, both poorly-made “hardcore” games and poorly-made “casual” games (where “casual” means shorter games with a small learning curve), in general, are unlikely to sell. Word spreads even among casual gamers about a crappy product (if the packaging doesn’t tip them off to start with).

So that leaves well-made, original (as in not a subset of another game, rather than new IP), easy to approach games. Well there aren’t many of those, are there? Most of what Nintendo makes, of course, and then what – Boom Blox? World of Goo? I can’t think of many.


There are other factors. Marketing is a huge one, and what’s more difficult, an unusual (for the industry) type of marketing – mainstream marketing that targets just people rather than “gamers”. Creating a brand is much more important for the mainstream market. Recognizable mascots and a reputation of quality are two huge factors on Nintendo’s side that no other company in the industry really has. Given that, I think there is a lot of opportunity here. Nintendo has a reputation of quality and benefits immensely from it. Most people probably don’t even know the companies behind other games, though. If one of the companies out there could build their brand through quality and recognizable mascots, all carefully tied to brand awareness, they have a much greater profit potential on the Wii. Ubisoft has made progress on this with their Rabbids line.


The really good CEOs in the industry know that the Wii is an opportunity. They may recognize that its more than just a short-term opportunity – companies that through trial and error build successful strategies for the Wii will be that much more prepared for where the entire industry is headed in the long term.