There are many web development agencies out there who are finding themselves in the same predicament Pelago was in five years ago. The nature of a web development business is that in solving business problems online for others, we often find it just as simple to solve our own. So we developed our own internal software for managing projects, tracking our time, and streamlining workflow, using whatever technologies were en vogue at the time. At Pelago, we had duct-taped and bolted too many features to count onto an open source bug tracking application. In its final days our internal bug tracking system was unrecognizable. The code had morphed into a sticky mess of unclean code — we had done what was needed to keep it alive.
Then something happened. Technology evolved. Lightweight frameworks became commonplace. Online project management tools, like Basecamp, we’re born and could be utilized for a low monthly fee. Realizing that our custom built project management applications are limping along, web design and development agencies are finding ourselves at a crossroads. Do we scrap what we’ve built and sign up to use a hosted application? Or do we rebuild using modern technologies and throw our hat into the Software-as-a-Service ring?
At Pelago, we opted for the latter and built what today has become Intervals, a web-based time, task and project management application. While both options are completely valid, there weren’t as many online options available five years ago when we made this decision. Fast forward to today. Both options are still valid, but they are not equal. Opting to use an online service is the best solution if you want to focus on the business of your business, that is, web design and development. If you are considering rolling out your own online application, read on for some software and web development tips we have learned in our last five years of building, launching, and growing Intervals.
The Web is not a field of dreams
As web designers and developers, our core strength is in building compelling web sites and web-based applications. We can create the slickest looking app out there, but that doesn’t mean anyone is going to use it. The Web is an infinite geography, most of which is a lot of freeway noise traveling somewhere more important than the fruit stand we’ve set up on the side of the road. Once you’ve built something compelling, you have to find a way to get the fruit lovers to pull over and peruse your offering.
Convincing your target market to stop and take a look at your product offering is difficult enough as it is. Once you’ve got their attention you need to get them to try it out, and ultimately, pay for it. Not to berate the metaphor, but Farmer’s Markets do this well. Most of us are there to enjoy an afternoon in the sun and mingle with our neighbors, and maybe buy some asparagus for dinner that night. For the most part, farmers are selling the same thing, so they give out free samples to lure you in. And finally, some of us go home with a basket of raspberries.
Marketing your web-based application is much the same. The first step is to get an audience, especially one comprised of people looking for the type of service or product you are providing. A free trial will bring some of them closer in to evaluate it and see how it fits with their small business. If it’s a good fit, they’ll become a faithful customer.
Just like the Farmer’s Market, the Internet is a noisy place. You have to show up every weekend and compete with others. Even having gained traction you will still need to invest time and money into marketing. Buzz is fleeting. What you want to develop is a unique voice and a recognizable brand, an atmosphere of quality and reliability. It takes more than a post on TechCrunch to become an established online service, it takes years of commitment to being a partner and a voice in your community.
Unless you’ve done extensive market research, the customers signing up for your service are going to have ideas and criticisms you did not anticipate. How your hosted application evolves is entirely up to you, however, it would be a big mistake to ignore the insights of the people actually using your software. Think ahead a few years and figure out where you want your software to be in terms of features and number of users. Use this roadmap when making decisions about next steps along the way. You’ll have to decide when to say “no,” and when to say “yes.” There will also be times when you’ll have to shrug your shoulders and say “I don’t know” or “maybe?” The important thing is to allow your web-based application to evolve, but in a direction you’ve intended. If you choose not to evolve, you’ll stagnate.
Do not ignore your customers. Even if you don’t incorporate their ideas it is important to engage them in conversation. We built Intervals to help other web design, web development, and creative agencies like ours manage their business more effeciently. So our customers are a lot like us. We enjoy hearing stories about their experiences in the web development sphere, and we like to reciprocate with our own similar stories. Our priority is to identify with our customers so they know there is someone just like them building software to handle the same types of workflow issues. In other words, we’re all in this together. Find out who your customers are and learn to speak their language. Engage them on their level and they will respond with their loyalty. But first, you have to listen.
Envision your web-based software as a fortress, because that is exactly what it is. Not only will you be hosting a service, you will be storing customer data, the livelihood of their small business which they have entrusted to you. Security, reliability and performance must be addressed from the beginning.
Security is important at all levels of your web-based application and the infrastructure supporting it. You need to hire security experts who can audit your hosted service and the servers for vulnerabilities. You also need a very good systems administrator to keep your servers up-to-date, fully patched, and locked down. You can rely on managed services provided by your hosting company if you would like, but they won’t share the same level of concern and devotion to those servers as you would. Both server and application level security are equally important and will require your web development team to learn more about online security than they had ever imagined needing to know.
Stay away from any type of shared server or virtual dedicated server. Aside from security risks, you’ll be way undergunned if you start growing. A dedicated server is OK, if you don’t mind having a single point of failure. Ideally, you are going to want multiple dedicated servers. Some of them should function solely as load balanced web servers and the other as dedicated database servers. In addition, offsite backups are a must. When you are responsible for your customers data you want to be as reasonably redundant as possible. A loss of customer data is an irreversible detriment to any small business.
Finally, there is performance. Building an application for internal use at your own company is a lot different than building it for tens of thousands of users. You will find your application buckling under the load if you don’t go over every line of code and find ways to optimize it for a multiuser environment. Shaving a few milliseconds off of a database query may not seem like much, but when spread out over all of your customers who access that same database query, it makes a difference. The surprise to most web developers when trying to increase online software performance is that we have to make some concessions in our clean and elegant code. There are times when we have to violate the “rules” of our frameworks and design patterns, mingling business logic with the presentation layer, because it means we are loading pages twice as fast. Trust me, your customers don’t care about the cleanliness of your code, or the elegance of your algorithms. They just want the software to be responsive and reliable.