If youâ€™re going to build a web-based solution from the ground up, you have to start by making choices about what to build with: choices of web server, database, programming language, front end framework, back end framework, and probably half a dozen other options. The combinations of these are practically limitless, they change all the time, and everyone is happy to tell you what they think is the right choice.
So how do you keep up with all these options? Basically, you donâ€™t. We here in the Web department canâ€™t even keep up with it all, and we do this for a living. The truth is, there isnâ€™t one perfect fit for all websites. Each of our clients has different needs, and we need to use different packages of software to help meet those needs. We wouldnâ€™t suggest that this is the only way to do it, but itâ€™s what works best for us. We have a well-built toolbox of software that helps us build excellent websites that will suit the project and keep running after launch.
Of course, the crotchety, grey-bearded old man in me would still be using 1998-era software if he could get away with it. Most of my favorite music and movies are more than 20 years old. I drive a car that Iâ€™ve owned for 14 years. If youâ€™re of a certain age, you know what Iâ€™m talking about. But I love the challenge of my job, and sometimes that means learning new tricks and better ways of doing things. When we come across new software that looks useful, we have to think about how (and whether) we can use it. I tend to ask myself a few questions to help decide.
Is it better, or is it just new?
We all like new shiny things, but we sometimes find that just because itâ€™s new doesnâ€™t mean itâ€™s better. Software that does some things better than the old way might also have profound disadvantages that we hadnâ€™t thought of. I sometimes use the analogy of the fable about stone soup: by the time youâ€™re done with all those â€œtime-savingâ€ new tools, youâ€™ve spent more time fiddling with them that you would have just doing it the old way.
Will it make things simpler, or more complex?Â (If itâ€™s more complex, is that complexity worth it?)
Making things simpler is usually good. But sometimes itâ€™s necessary to make things more complex so you can solve a problem better. Itâ€™s been difficult to get my colleagues to use git for version control, because itâ€™s complex at first and seems to make things more complex. But now that we have projects in version control, we can have multiple developers working on the same site at the same time, and we donâ€™t have to worry about overwriting each otherâ€™s work. The extra complexity lets us do better work, which is a trade-off Iâ€™m happy with.
Will it last?
In a perfect world, everyone would have unlimited resources to give their website a nice refresh every year or two, and keep it up with the latest standards and practices on the Web. In the real world, a website is a big project, and most of what gets built is going to have to last for several years with nothing more than an occasional tweak. The worry I have when I evaluate any new piece of software is that people will stop using it. If that happens, then the developers who built it will move on to other projects, the resources available to developers will shrink, and new functionality and fixes will never appear. Part of deciding to adopt new software, for us, depends on having a sizable user base already using it. A guarantee that it will continue be a viable choice in the years to come is important for us and for our clients.
Nobody knows everything
In the coming years, the choices will only continue to grow. Iâ€™ve resigned myself to the fact that I canâ€™t know everything. There might be lots of great web development tools out there that we could be using, and we might never get a chance to use them. Iâ€™m okay with that, because I know that weâ€™re able to use what we know to do good work. I try to be as knowledgable as possible on the tools I use, and to be on the lookout for new things I should know.
Now if I could just do something about these dang kids, with their baggy pants and their hippety-hop music and their Node.js-based, NoSQL, client-side frameworksâ€¦
by Michael Hall
on October 23, 2013
in All Things Tech