Understanding Your Web Developer

Web Development from a Programmer’s Perspective

Every professional practice has its own required skill set, language, and canon of knowledge. It is human nature for a group of people that share some esoteric expertise to create their own culture, foreign and strange to outsiders. Web development is no exception to the rule, and our culture is pretty quirky.

Web developers often make jokes about the miseries of z-index and what our favorite text editors say about us as people. The jokes are little windows into what programming is like: it’s difficult, frustrating, and vast, requiring knowledge of hundreds of topics that non-programmers don’t know or care about. One of my favorite articles about programming describes what it’s like to be a programmer by comparing a development project to a task of a different type that more people can relate to: building a bridge. In the author’s metaphorical bridge project, different engineers employ different measurements because they can’t agree on using the metric or imperial system.

As a result, all of the other workers on the project just “forced, hammered, or welded their way through the day with whatever parts were handy.” Being a programmer and lacking an external perspective, I’m not sure how the humor translates to the non-programmer, but as a programmer myself, I can’t help but laugh, not for its absurdity but for its truth.

Complexity: the Root of All Evil

While the joke might get lost in translation, hopefully the main idea comes through: programming is filled with needless and extremely frustrating complexity. If you spend any time reading programming jokes or looking into our subculture, you’ll find this idea pop up over and over again. Complexity is the root of our problems, and simplicity is at the heart of our successes, our best code–elegant code–is simple.

It turns out that complexity is not just a programmer issue. Complex code has a huge impact on clients’ business. A complex code means bugs are more difficult to find and fix (and, indeed, creates more bugs in general), more time spent on maintenance rather than improvements, and more difficulty in implementing new features. The costs of needless complexity in our code are the client’s time and money.

What to Expect from Your Web Development Team

Much like a design team during the branding process, our first job is to distill the client’s problem down to its simplest form. Just as a logo should capture a brand’s essence in a single recognizable mark, our code should accomplish its goal simply and directly, using only necessary resources.

Although code is not as readily or easily interpreted as a logo, as a client you can still ensure that the technical workers behind your project are successfully achieving this goal. How, you ask? Put simply, ask a ton of questions. Can your project’s developers explain their decisions in simple terms that make sense? Can they describe the main functionality of the site in a straightforward way? There shouldn’t be any “man behind the curtain.” You may not know the technical details of how load balancers or cacheing servers work, but the development team should provide you with a solid conceptual understanding of what they do, why they are used, and how they benefit you.

You probably don’t need to know the specifics of how the Laravel framework routes http requests, but you should know its benefits if it’s being used in your project. Laravel is written in PHP which is a common language well known by many programmers. That means it’ll probably be easy to update in the future and won’t be obsolete within a few weeks.

In truth, when talking to your web development team, you’re not walking into a discussion about web development. Instead, you’re participating in a discussion about your business. We should give you straightforward tech solutions that you understand, and feel confident will positively impact your business.