If you're a great programmer, statistics and experience estimates that, unless you're one of those "jack of all trades" kind of people, you're perhaps the utmost talented designer out there. So, you have this great idea for a web app, and you're able to do the development work, but what about the design? Well, to be honest, you have three options: design it yourself, convince someone of your idea and get them involved to do the design work, or, taking the easy way out, buy it. The problem is, which should you choose?
1. Design it yourself
You do it yourself, and you get things to be just the way you want - and it fits nicely with your code. But, are you that much of a great designer? What do you really know about usability, contemporary web app design trends and technologies? The big trade-off from a programmer doing the design work is usually, that the user experience suffers. I know that this is a hard thing to take in, but let's face it, some people are creative, and some people are masters of the "black art" of programming. Yes, I know there are people in between, and I like to consider myself one of those, but I have no problem admitting that I'm better at programming than designing. That's the way things is.
You're probably wondering why I'm bold enough to say, that the end user experience will suffer, right? Well, first of all, as a programmer you're probably quite good at figuring out how things should work behind the scenes - and we tend to let those mechanisms shine through the user interfaces we design, instead of going the other way around; letting the structure of the code be controlled by how the designer envisioned the user experience. Think about it - you've probably used more than one application in your time in front of a computer, which just yelled "my developer killed the interface designer!" If the application is targeted at professionals, as is often the case with for example *nix shell applications, that's fine, but if you're targeting the big mainstream market, it's simply a no go.
Let's take an example, just to prove my point. Microsoft used the same UI structure for almost all revisions of Windows based Office programs until 2007, and by that time it was so packed, that you couldn't find what you needed. Enter someone's choice to throw money at a usability project which figured out that people weren't utilizing half the features the package offered, so they wound up spitting out the "ribbon" concept. Some people don't like it, but it practically employs any common usability design rules out there and has made most tasks quite a lot more efficient. The point of this? UI design matters - be it and offline or web app, it matters. Your app probably has a few more competitors than Microsoft Office, so if it's too complicated to do simple tasks with your product, they'll simply go seek salvation at one of your competitors. Simple as that.
With all that being said, a programmer designing a web app isn't all bad. Just like you can learn how to do certain programming stuff, you can also learn a lot from looking at what other apps are doing to improve your own design, and by the end you'll probably be able to build something nice. Depending on your skills as a designer, the question remains though: do you have the time?
2. Involve someone to carry part of the load
Having a design buddy on your project is great in many ways. First of all you constantly have someone to talk to about all design related matters, which will, in the case you have a designer on board, probably be controlling a lot of the development work too. Quite a lot of designers are excellent at turning ideas into reality, so you might even benefit a lot from it, as you can still make some of your ideas work without having to rework all the code.
With that being said, there's the point of economy involved in having a designer on board. Yes, some of them will love to be a part of a project for the ride and the possibility to reap the benefits down the road, but in any other case you'll probably have to cash out. The best designers are hard to come by as their reputation often means they have a lot on their plate, so asking them to give up some of their time to do something basically for free for a period, is more often than not simply not possible. Chances are too, that you're not in the project alone from the start, so if you do get a designer on board as a co-owner, it means there's that much less cash per person once it comes time to turn the first salaries. Given the varying growth rate of various apps, you're probably looking down a somewhat long road before your app is able to support even a stable income for a single person - let alone three or four people. That's the truth of it, so before signing someone up as a co-owner, make sure that you consider the long term effects of this.
3. Buy it
Some would probably say that buying a complete design in the shame of a theme or a template is just taking the easy way out. In some senses it is, but depending on your actual skills, it might just be what you need. Time and cost wise it's probably the most efficient way to do things, especially if you like the theme so much that you will only change minor details - the rest of it has already been prepared for you. Actual prices on themes are pretty low. As an example you can take the, honestly quite neat, Akio UI Template which was recently released by the guys at BigFish Creative. They offer you a complete web app theme that confines to all current web standards and is already checked to work in all major browsers at a current offer of $67, which is quite the buy if you choose to go down that path.
While buying it means that you'll save quite some time, the actual story isn't just black and white. First of all, you're probably going to need to rework the design quite a bit in order to make it look just remotely unique - at the end of the day, you don't just want to look like all the others out there, do you? So, it still requires some investment time-wise or perhaps even case-wise, if you need a designer to do the work, although the tiny cash you payed for the basic theme might just make up for some of the money you'd have to pay the designer, as you're supplying them a completed platform. Just be sure that he does his work well, so you don't need to spend time cross-browser checking it all, when it has already been done for you once.
Which should I choose?
There really isn't a right or a wrong way to go around this. Like you've probably figured, it all depends on the situation you're in, both project and money wise. If you're currently solo on a project or your project looks like it's going to spew off some cash within a decent time frame, you might just be able to get someone on board - you might even find someone who lives near you, which makes it a lot easier to collaborate on the matter. In any other case it's hard to say what you can and cannot do - just make sure that you take your time and think about what you want from your design and project in general.