Are all web software projects a disaster?
Do they inevitably come in way over budget and late? Are they always full of bugs? Is launch always a frantic hellscape, possibly involving the creation of a ‘war zone’ at your office? Are they expensive to support, always needing security updates or uncovering new issues as changes are made? Are you completely burned out on doing any more web projects at your organization?
The prevailing wisdom at many organizations is that, well, this is just how it is. Therefore, there’s not much you can do to prevent it.
As someone who has spent her career executing successful web projects and continuously working to improve efficiency, quality, and predictability of results from my team, I’d like to assure you that, no, it is not inevitable that you’ll get a healthcare.gov style launch. It is not inevitable that your project will be over budget or that it will be late. It is not inevitable that it will be frantic and ruin your life. Nothing is inevitable. And often, the belief in inevitably is self-fulfilling.
Why is everything so screwed up?
First of all, you should know that web projects are deceptively complex. Web developers know this deeply, but from the outside, it can look as though our work is not very complicated, but we. just. keep. breaking. something.
Software runs on a stack of other software, which ultimately runs on hardware. For web software, we’re dealing with multiple (and changing) browsers and user devices; back-end and front-end application code that’s a mix of custom, open source, and proprietary, some on our server and some elsewhere; the server operating system; server-side software and databases; caching systems; multiple environments for testing; build systems; testing systems; hosting provider systems; and more.
On every level of this stack of software, everything is getting updates to keep it secure, to fix bugs, and to add new features. Some updates will inevitably result in new bugs. Yet skipping them leaves you insecure.
The truth is that any customized software project will need ongoing support. And any software project will involve an iterative QA process in which problems are identified and fixed. Expect that this process will occupy about 20% of the budget and that its intensity will peak leading up to launch as more and more eyeballs come into contact with the work.
You can decrease this expense and the level of chaos involved by getting more of your stakeholders testing and giving feedback earlier in the process. In terms of support, you’ll want to keep the architects of the project involved. These are the people who know the stack up and down and will be efficient at resolving new issues.
Do not choose a vendor who does not do their own support. Not only will you be screwed when you need expert support, but these vendors are not incentivized to learn to make robust software and will typically give you more brittle results. If you want to support the project in-house, keep a lifeline to the original architects so you can escalate issues if needed.
Software Development is a Talent-based Industry
Admittedly, our work is rather opaque. You probably cannot read the languages we work in. It’s very difficult to assess whether we’re even doing a good job, let alone how the quality and efficiency of our work compares against others. You often have to trust what the technical team tells you, and how do you really know if they’re right?
Many people believe that writing software is a technical skill that any trained individual is likely to do approximately as well as the next. I’ve had many people imply to me that by giving up writing music to focus on software, I had given up my creative outlet. Their view of software was that it was a monotonous, technician-style job. I’ve had monotonous, technician-style jobs (I was an analytical chemist) and, believe me, this is not one of them. I find the creativity involved in quickly solving software bugs to be more intense than what I ever did musically, which always involved a lot of repetitive practice.
Are web developers something like dental hygienists? You may have better and worse experiences with different hygienists, but the vast majority of them get the job done about equally and in a similar range of time. They do routine work highly skillfully and, once trained and experienced, there does not seem to be a great variance in their ability to do it. (Hygienists, let me know if you disagree!)
But the truth is, we are more like athletes or artists, with certain individuals and teams far out-performing others. Of course, there is technical skill and knowledge involved, but the work is very creative as well. Within the industry, we often know who are the Yankees and who are the Bad News Bears. The whispers are everywhere at tech events.
Are your web projects consistently disastrous? Do you have a growing list of bugs that never seem to get resolved? Do you literally have an FAQ page on your website telling users how to work around known issues in your software? Remember, bugs are normal, but skillful, efficient problem solving should be too. Don’t accept perceived inevitability. Seek out that rare talent, and when you find it, hold on tight.