January 20th, 2011 by John Reeve
Almost every web designer or developer I’ve met has a great idea for the next killer web-based app. And I must admit, a lot of the ideas I here are good ones. In fact, I’m a firm believer that success does not come from great ideas, but from great execution. So let’s say you’ve got a great idea for an online app. What’s it going to take to not only get it developed and deployed, but also turning a profit? In short, it’s going to take more than you think; a lot more thank you think. It is often said that people working for small companies — especially the owners — are required to wear a lot of different hats. And the metaphor is almost always spot on.
Depending on what you are trying to accomplish, your MPH (Miles Per Hat) may vary. In our experience at designing and developing Intervals, an online time, task and project management application, we’ve discovered it requires a diverse set of skills and talent to turn ideas into reality. Following is a list of all the different roles we’ve had to play at one time or another to turn our online project management software into what it is today.
The most important thing to understand is that these roles all play a part in what is an iterative process. Perfection is almost never achieved, but your online software should become more compelling with each iteration. Don’t be surprised to find yourself putting on hats you thought you’d hung up for good, as you continuously integrate new ideas into your app.
The Site Architect
The first thing to do with an idea is to start visualizing it in an abstract way. The site architect can create prototypes useful for making good ideas better, while giving everyone an outline of the app’s functionality — the more granular the better. There are many different methodologies available to architect a web-based application. Choose the ones that work best for you and enjoy this first, though difficult, step to building your app.
The Web Designer
What’s this app going to look like? How is the user going to approach the interface? The web designer must present an attractive and usable design, one that organizes and balances content and functionality. Anyone investing themselves in building a web app is probably already familiar with the role a web designer plays, but it’s important to stress that a clean interface can help differentiate your application from similar ones already in the market.
The Web Developer
You’ve got a direction, you’ve got a design, now you’ve got to build it. Whatever back-end technology you decide to use — PHP, Ruby, Python — be sure it’s one you are proficient in, and that you can find others who are, too. Keep the HTML and CSS clean and simple so others can work on the app without pulling their hair, strand by strand, from their heads. You will spend a lot of your time in development over the lifetime of your online app, so invest wisely up front. Use widely accepted frameworks and good coding practices and your co-developers will thank you.
The QA Team
There will always be bugs and often times they can elude even the best of developers. The QA team is responsible for finding and documenting those bugs. Without them, your app will become encumbered with bugs and it will be your customers reporting them. You want to catch as many bugs as possible before your customers do. Don’t try to bypass QA. Do whatever testing you can — ad-hoc testing, unit testing, automated testing, friends & family testing — to make your app as bug free as possible.
The System Administrator
Most OSes out there, especially those of the Linux variety, will work pretty well out of the box. And most hosting providers offer stable platforms upon which to launch your app. However, as your application grows there is going to be some system administration required. When your online software starts to grow you may be able to get away with just throwing more hardware at it, but chances are you’ll need to do some optimization. And then there is general maintenance and troubleshooting outages. System administration skills come in handy when the web server is on the blink or the number of database connections needs to be increased or the servers need any sort of TLC at all.
The biggest bottleneck affecting any web-based software is going to be the database. Your out-of-the-box queries may get you 90% of the way there but as your app grows so will the data. And so will the query times. There is going to come a day where certain queries are killing your app and they’ll need to be analyzed and rewritten to improve response times. You will end up learning a lot more about SQL qeuries than you ever thought you would, and your customers will thank you for it. We suggest monitoring all queries, identify the ten slowest ones, and optimize them. Doing this at regular intervals will keep your app running smoothly.
The Marketing Team
The Internet is not a field of dreams. Just because you’ve built some new killer online app does not mean people will come flocking to it. You’ve got to market your creation. In fact, you’ll find yourself spending as much time, if not more, marketing it then you do developing it. This means purchasing ad space on other web sites, buying ad words, and simply getting the word out via social networks and other communication channels. Let people know you are there and that you want their business, then earn it!
The SEO Expert
Most people go to Google or Bing looking for what they want. Make sure they find you when they go looking. The SEO world is filled with snake-oil salesmen selling elixers and viles of voodoo. Finding honest and genuine SEO help is a lot like finding a mechanic. In our experience, we’ve had the best success doing our own SEO, which is why we list it here as one of the many roles you’ll have to play. No one is going to care as much about your software as you do. Getting it noticed online has to be your passion, not theirs. Make yourself relevant to your audience and you will be rewarded with positive SEO results. I don’t know how Google does it, but their algorithms seem to be able to identify the genuine from the imposter. Don’t be an imposter.
The Support Staff
When the customers come, so do the questions. Provide a channel for your customers to easily ask and receive answers to your questions. Chances are your online application is going to have some competition. The key to differentiating your offering from others is often going to be customer support. The more human your app, the more your customers will embrace it and become loyal customers.
There are a lot of decisions that need to be made at the technical level. What hosting company will you use? What OS will you use? What programming language? Database? Web server? Someone needs to evaluate the pros and cons of each technical decision and make a choice as to which direction to go in. This will be an ongoing process as new features are added to the app and new technologies introduced. This role requires a lot of research and foresight. The last thing you want is to find out you chose the wrong technology for the type of app you’ve deployed to thousands of users.
Starting up a small business, even the simple act of launching a web-based app, requires money. Whether it’s coming from personal credit cards or an investor, someone needs to take charge of where the money will come from and how it will be spent. Even if you are bootstrapping your app development, you’ll need some money and you’ll need to stretch it as far as you can. If there is someone on your team with some financial skills, you’re in a good spot.
Titles denoting hierarchy aren’t our thing, but someone still has to be able to step up and take charge. There will always be big, difficult decisions to make. You need someone immune to indecision, someone who can decide on where you are going as a small business, and when. Even if they make some wrong decisions, it’s critical that they make any decisions at all. Otherwise, your venture may just circle in the air, barely leaving the ground.
The Office Manager
On the flip side of all those big decisions are the little choices that must be made on a daily basis. Someone has to keep the cupboard stocked with snacks, the closet full of pens and paper, and answer the phones. These responsibilities can be shared but not ignored. Nobody’s happy when the coffeemaker runs dry.
Every April the tax man cometh. Somebody’s got to make sure all the finances are in order. Otherwise, you may end up owing a lot of money for reasons you may never quite understand. Track your finances, keep your receipts. At the end of the year you’ll be glad you did.
The Fun Police
In the midst of the daily grind you have to keep it fun. Plan some fun events to break up the long weeks and months. Ditch work early to go bowling, road trip to a baseball game, drop in at your local happy hour. It’s good to socialize and have fun with the people you work with. Getting out and doing fun, non-work activities greases those gritty cogs that might otherwise jam up a busy team.
I’m sure there are some areas I’ve missed. Feel free to comment below and tell us about the various roles and responsibilities you’ve encountered while developing your online software. Meanwhile, keep trying out hats to find the ones that fit you best and do your best to contribute in those areas. Getting your web-based app off the ground is going to require specialization across a diverse spectrum of skills. If you can get them all covered, you’ll be sure to succeed.