Don't Take Shortcuts
Programmers and designers that work for me hear me say this all the time. And I have the stories to back this up.
My favorite comes from the time we were working on a version 2 of our most important product. It was a draw and paint program. In version 1, we did not have Bezier curves. Usually when a cool feature doesn’t make it into version 1, that tells you that it is just plain hard to program, and that was the case here.
But it was at the top of the list for version 2. That fact is acceptable. You always have to make hard decisions about where to cut off the development of version 1 and then start making the priority list for version 2.
What’s most important is that you do it right. So we put our most brilliant programmer, Jonathan Gay, on this feature (and I’m not kidding, he was absolutely brilliant – he went on to co-found my second company with me and was the technical genius and visionary for what became Adobe Flash). It took him three months to do that one feature. Like I said, it was really hard (at least back then it was).
Meanwhile, our competitor did something in two weeks and had it out before us. How the heck could they get it done in two weeks? The answer: they couldn’t. They faked it. They took a shortcut.
Bezier curves are a mathematical description of a line. And have I mentioned, really hard to program back then? So what the competitor did was, instead of a true Bezier curve, they programmed a line that had lots of very short straight-line segments that would bend around, looking like a Bezier curve.
Here’s a very crude drawing to illustrate what I’m talking about (made with SaviDraw, of course). The black line is a true Bezier curve. In the other line, I’ve made each segment a different color. These are not actually short segments, so this is just illustrative of what happened. But a line that is constructed with a bunch of short segments will not behave like a Bezier curve when you want to reshape it.
And you know what happened? Even though the competitor was first to market with their version 2, when our version 2 came out, it absolutely kicked their product to the curb, because everything about our product was better, including the all-important Bezier curve tool.
We did not take shortcuts. We did not shy away from doing the really hard design work and the really hard programming. And guess what, do you think my folks complained that they had to do the hard stuff? Hell no.
Does anyone think that people want to make shit products? No one wants to be making crappy products, they want to be making dazzling, award-winning products.
With SaviDraw, the best example of where we didn’t take the easy way out is the Path tool. Every other vector drawing program has a Pen tool. The problem is, the Pen tool is very, very difficult to master (and to be honest, I never have). So instead of just doing a Pen tool like everyone else, I invented a new tool, the Path tool, which is actually easy to use. It took more time and effort than a Pen tool would have, but when I show it to people, they smile and say, “yeah, that’s how it should work.” (We get that comment a lot, actually, about almost everything in the program.) The thing I’m most proud of in SaviDrawis the Path tool.
And that poor competitor? Went out of business, even though they were first to market with version 1 and version 2. I knew they were going out of business six months before it happened. How do you know ahead of time that a competitor is going out of business? There were a number of indications, but the main one was, we received a resume from EVERY one of their programmers, asking us for a job. Every single one of them! (How do you think I found out about their shortcuts!).
At Silicon Beach Software, one thing I can promise you is that we don’t take shortcuts . . . ever!