The Diablog™

The Mind of a Developer

You might guess that all programmers are like that scene in The Matrix, staring into the flickering symbols on a screen, seeing beyond the code to the action it represents. If so, you're absolutely right! Except that the robots haven't taken over the world. If not, then you probably just need to watch the movie again.

In either case, I'd like to take a few minutes to share some insights I've learned in my time as a developer.

Everything is a Data Structure. No matter what kind of project we embark on, the first goal is always to understand what kind of information we're manipulating. What are the discreet pieces of this particular puzzle? What are the inputs and outputs of the machine we're building? How are they expected to interconnect? In the modern world, information is perhaps the most valuable resource. If we don't first "get our heads around" what we're working on, our chance of success is slim indeed.

Always Expect Exceptions. Every project has "gotchas"—those awkward pieces that just don't fit into an otherwise very straightforward solution. They can come at any time, but by far the worst is after you're looking back over your work, a couple hours before go-live. As a developer, part of my job is to anticipate where these one-offs and anomalies might pop up and to account for them. And as a corollary to that, part of my job is to be responsive and flexible when they do appear. I'm a professional deviation handler!

Efficiency and Elegance are Requirements. If you set out from your office to the local airport, you would plan your route according to the weather, the traffic for that time of day, and any known construction on the roads. You would plan to maximize your fuel efficiency, minimize your time behind the wheel, and take the safest possible route. Among all your possible routes, you'd probably stick to the major roads, and cross your fingers to make every traffic light green. The same is true for writing an application. You have to make plans for how to solve various problems in order to get the best balance of server resources, load time, and database performance. You use only the precise functions you need, but you build for flexibility and simplicity. If I haven't written an efficient and elegant program, then I often don't feel that I've really solved the problem.

Improvement and Optimization are Always Ongoing. Just like Six Sigma doctrine suggests, as a developer I embrace the fact that any solution can be revised and that no solution is final. Meeting the final deliverable functions of a given application is, of course, a requirement to any project, but a clever developer is also continually evaluating the application's economy.

Clarity is Critical. Working in a team – in any capacity – means that your work must be understandable to others on the team. The more complex a project is, the more important the need to use simple, concise methods that your teammates can understand. If a particular block of code looks scary or overly complex, a bit of documentation can help make sense of what you're doing. I need to make my code simple to understand for other developers on my team, and I rely on them to do the same.

Beauty is in the Eye of the Coder. Looking at lines and lines of code, for hours on end, may sound tedious to you, but there is a certain unique aesthetic to it. Carefully indented lines, well-spaced statements, repetitive and consistently formatted statements can be quite lovely. It's something like being able to listen to the steady flow of a waterfall, yet hear its melody—and be able to conduct its music!

Dialogs has a team of experienced developers who can see things about your busines that you may have missed. Let us show you how we can help you make your business better. Call us at 800-707-0106 x:123 or contact us today.