10 Problems with Web Development Projects, and How We've Solved Them
Did you notice? The world's a different place. Rules for doing business have changed—there's new ways of getting hired, finding employees, reaching new customers, and (shudder) for them to reach you. Economies of scale have flipped—it's getting more expensive to do things on a huge scale, and far cheaper to do them at a micro scale. Mass market items have lost their appeal, and people yearn for authentic, individual connections in a world of franchise same-ness.
As customers, we want it all. We want to know what your products are, how much they cost, and what benefit we get from purchasing them. We want to know what others have experienced, we may go see what people are saying about you on Facebook, Google, or Twitter, or Yelp, or any of a thousand other sites. Oh yeah, and we don't want to pay more, either. Are you listening?
We've been listening to our clients, and have a created a whole new way of helping them succeed on the web. And we've had a bit of an epiphany by doing so—web development has been broken for quite a while! It's a wonder any sites get done at all. Here are 10 problems with the way web projects are typically done. We've experienced all of these problems, but more importantly, we've figured out how to solve them.
The way we used to work, we couldn't tell you what any given project would cost. One part of the problem is that we don't know what you want to buy, or how much detail work would be necessary before declaring victory and calling the project complete.
We can tell you if a budget is reasonable for what you're trying to accomplish. If it's tight, we can help you prioritize features, and make sure the critical ones are done first before the budget is exhausted.
If you've hired a company for web work in the past 15 years, you've probably learned that you need to be extremely specific and detailed about what the finished site needs to look like, and how it needs to operate. The overall cost of the project can change substantially based on seemingly minor requirements that end up making some existing platform a bad choice.
You get part way through a new web site project, and realize the requirements overlooked some critical feature you really need, or didn't specify clearly enough something about the source data. Now all work comes screeching to a halt as the developer needs to renegotiate the contract, add a change order. The customer is unhappy because they're paying more, and the project is late. The developer is unhappy about having to stop what he's doing and talk business—so all too often we'd just throw in the work without doing this, and then have trouble paying our bills.
We get part way through building a site, and realize that if we had chosen a different approach or platform, the end result would work much better for the client. But we're far enough down the path of the current development to back up, and our original approach does fulfill the requirement. We're unhappy delivering a site that could be better, and our customers end up with a clunkier, less than optimal site—but it's easier than going back and renegotiating with the client.
Requirements serve one purpose: they are a stake in the ground that one side can use to extract more work or more cash out of the other side. This almost always generates resentment, and they're also largely unnecessary for small web projects.
Don't get me wrong—it's important to have a clear agreement about what is being purchased, and what is being delivered. The problem is, there are a ton of variables, and many of them are not discovered until the project is well underway. Doing the groundwork to identify all the possible pitfalls of a project is probably about half the actual work of a project—and in most cases, that's far more of an investment than the client wants to make without an actual result. We've done a number of “discovery projects,” of this nature, and almost always put far more into the discovery than we planned—if we don't win the rest of the project, we lose money. Which means we need to charge our paying clients enough to cover that, making it more expensive all around.
Instead of having hard and fast requirements, we help our customers identify goals and rank them by priority. We start with a previously-finished configuration, and use the budget to modify that configuration towards the goals.
Once you've decided to create a new web site, identified the requirements, gotten the vendor all lined up and started, something funny happens. The developer... disappears. Off the face of the planet. You, as the customer, have no idea what happened. Two or three weeks later, you decide to call, and they've done part of it—but had other clients asking for work and so they haven't gotten to it yet. Two months later, they've gotten close, and there is something to look at, but it still needs a lot of polish. So the hard-core back-and-forth starts happening—and then the requirements document starts getting in the way. Four months down the road, you're starting to work on content. A year down the road, there's a little push of effort, and the site launches—but nobody's really that happy about it. The developers have forgotten about all the cool little tricks they employed to make your site do something slick, and you're tired of thinking about it... it's a relief to launch, but little more.
Let me tell you what's really going on. Any freelancer or development shop who's any good is juggling a bunch of clients. With a stack of different requirements, and unknown length of time to implement, it's really, really difficult to schedule out projects. You don't know when one is going to be finished so you can start the next one. You need to keep hustling to get more work. Many projects take longer than you thought. And meanwhile old customers are coming back with little changes they want done.
It can easily become a time management nightmare. So how do you manage time? Set up some constraints. With a Drupal installation profile, we can deploy a fully functioning site, with a bit of color changes and a handful of pages and everything ready for the client to plug in content in a matter of hours—and it''s getting shorter all the time.
A site sitting on a development server hidden away from the public is absolutely useless. Lots of extremely successful Internet startups started with a crappy site—people come to web sites for the content, the interaction, the stuff that's on there. The good news is, the more often you update the site, the more reasons you give your visitors to come back—especially if you're updating it based on their feedback. Don't blow your entire load at once—but get that site out early and be prepared to update.
Our goal is to get your site launched as quickly as possible, because we've learned that:
You got the site launched, but it's not perfect. You're mostly happy with it, but there's a couple more things you'd like it to do, and you're done with the developer. Even if you could get them to do more work for you, you really don't want to—you know they're going to charge extra to try to make up some of the extra cost they swallowed to get the site launched.
And there's a whole list of other things you'd like to get done at some point in the future—but at this point, you need a break. Soon, your site starts collecting cobwebs. There's a bunch of spammers who have signed up for user accounts. Your email form is collecting spam. You turn off comments because it gets spam. And after a year or so you start looking for a new developer, and go through the whole damned process again—and probably end up with the same result.
The launch of a new web site is a big milestone, for sure. But you don't get all your customers or all of your site visitors on the first day the site is launched—you're going to get far more of them over time. No matter how meticulous you are, no matter much time you've spent painting your shop, arranging your merchandise, setting everything up, your opening day is just one day.
With the kinds of web projects we do, people congregate on your site and interact with it every day. And some of them will ask to be able to use their Facebook account to log in and leave a comment. Or to give them a table that compares specific features across your product line. Or to write a review.
We find that most of our clients keep coming back for help, for finding new ways of arranging their site, new ways of streamlining their ordering process, simplifying their fulfillment steps.
And if we scrap the whole requirements thing in favor of a prioritized list of goals, we'll have a list of things we can build out for you, one at a time, each one worthy of a new announcement.
It turns out that the Internet is a bit of a nasty place. There's a lot of miscreants looking to spread spam and viruses using your web site. Or hijacking your web host's server to attack other sites. Or potentially intercepting your customers' credit card or personal information.
Any web site can be hacked. But for content management systems, e-commerce sites, and other systems that are actually programs running on a computer somewhere, there's more to keep up-to-date to keep the miscreants at bay.
Most content management systems store content in a database. Few generic web hosts tell you how to back these up. Fewer still keep a range of backups over time, or can selectively restore particular items that might've been deleted. And the vast majority of hosts still use FTP for file transfer—an extremely insecure protocol that was obsolete a decade ago—meaning if your developer copies a single file using an open wifi network, somebody could get the password and do whatever they want to your site.
These are pretty easy problems to solve when you manage your own servers.
Another issue nobody thinks about up front—developers are constantly writing new software to replace older versions. After a while, they release entirely new versions—but don't have enough time or resources to keep supporting old versions indefinitely. So two or three years down the road, all of a sudden your developer tells you your site is no longer secure. And you need to spend a few more thousand dollars to upgrade.
Ok, I'm going to tell you a dirty little secret about content management systems: They cost more. I don't care what your developer told you up front that by being able to update content yourself, you won't have to pay them to update content on your site. While that's true—you can update the content yourself—you're going to have to pay somebody to keep that program up-to-date. And it's going to cost more than having a static site.
But hey, you're not getting a content management system to save money (I hope). You're doing it to get more business. If you don't have to wait for a developer to put up a special offer that brings customers in the door, and it's easy to do, you'll run more web specials and get more business. If you're investing some of your time and marketing resources to use your web site effectively, you're going to need help with the technical stuff—somebody has to do it. It shouldn't be the business owner or the marketing person—they should be thinking about what to do to reach more customers or provide better service. It could be a tech savvy employee you have—but are they keeping up with every little security update that comes out that might affect your site? And what are you paying them? You might as well outsource these functions to a company that provides this maintenance for a bunch of other sites, who has streamlined the upgrade process, has decent backups and ability to roll back things that break, and knows where actual attacks are happening.
Ok. So now we recognize that upgrades are a necessary cost of using a content management system. Here's a corollary: s*** happens. The more complicated a system, the more corners there are where things can break. This is one of the biggest things that gets in the way of launching a web site in the first place—there's some little corner where something isn't quite right. And putting a fix in one corner ends up breaking something else.
Perfection is expensive, not to mention impossible. The perfect is the enemy of the good. While we strive for nothing short of excellence, the simple fact is that the software we use is a collective effort of thousands of developers, and there are bugs. Often, these are known—we often end up deploying an experimental module to achieve some very specific goal, and an upgrade to a related module breaks it. While we have rigorous control over our change management process, and can usually undo upgrades if something goes wrong, the fact is things go wrong all the time. Our goal is to minimize the impact of anything that goes wrong, because we can't prevent it completely. Adequate testing of every aspect of a site would multiply the cost ten-fold – not to mention taking a lot longer before the site is up making you money.
Introducing: All new Freelock package pricing!
The simple fact is that web development projects are a nightmare because they're all focused around a single, imaginary fixed point: the launch of a web site. The cost, the scope of work, and the resources all get focused on that single event—but the bigger picture, building a web presence for your business or association and adapting it as your organization changes to serve its customers are minimized during the entire process.
Our answer is to get rid of all the stuff that makes it hard, make it as easy as possible for our customers to start with a basic site of a particular configuration, and grow into it over time. We have several different plans that correspond to how much functionality you need in the site, how quickly you'd like new features developed, how much support you're going to need, and how active you want us to be in finding ways of improving the site. We're focusing all of our attention on results: web sites that get launched quickly, generate sales, reduce your costs, and do things to help your business grow. And if we succeed, your business will grow and you'll keep seeing the value in having us as an ongoing partner.
It's been a while since our last newsletter, and we've launched a bunch of sites since then. But being February, you should be thinking flowers.
So what have your customers been telling you? How have you adjusted your business to accommodate their needs? What do you think of our approach to doing projects? Leave us a comment or drop us a line!