Comment Home / Reviews & Opinions

Gluing, hacking, and the realities of corporate programming

The truth is, any created thing requires a fair bit of work that, on its face, seems mundane and pedestrian.

Computer programming, to someone outside the practice, evokes certain mental images. There is the solitary nerd, hunched over his (it's always a man, right?) IBM Model M keyboard, entering his incantations, the jibberish appearing on a flickering CRT monitor. Of course, there is also the hacker cracker, perhaps a bit more sexy (and perhaps even a woman), surrounded by half-built computers and other bits of hardware, finding holes in the security systems around ever-larger computer systems. And finally, perhaps, there is the professorial programmer, with his bushy beard and unkempt appearance, solving hard problems and pushing the limits of computation.

Reality, however, is a bit different.

According to the latest information from the Bureau of Labour Statistics, there are roughly 1.3 million programmers of various stripes in the United States, and I would wager that a large percentage of them do not resemble the stereotypes above.

The reality many of us face as corporate programmers is that our jobs offer a spectrum of experiences (by "corporate" I mean we write software that either provides a valuable service for a consumer, whether that consumer actually buys the software or is the employee one cube over). Some of us may work for a bleeding edge technology company like Google, where pushing computational boundaries is simply what you do. Some of us may work for a security firm where we are paid to crack software and break things. Most of us, however, write software that provides some limited service to a known set of users, usually providing a solution to a domain-specific problem. While it is easy to dismiss this sort of software development, it generally serves a valuable purpose to its users. What's more, this development consists of more than simply head-down programming. Yes, weeks may pass when I write hundreds, perhaps even thousands of lines of code. But, soon after a release to our testing department, I spend weeks and weeks not writing code, instead focusing on bug fixes, some of which may only require the modification of a few characters in the source code.

Many programmers, myself included, see themselves as hackers—even craftspeople. We build things, and unlike engineers, there is a certain degree of creativity in what we do (Paul Graham once famously compared hackers and painters). Give us a problem, and we will design and implement an elegant solution for it. Some of us even go so far as to criticize programming languages as "ugly" (see Perl) and others as "beautiful" (see LISP). (Of course, while LISPers call Perl "line noise" and Perl-ites call LISP "parentheses soup," the truth is that you can write elegant code in almost any language.)

What can be forgotten in all this talk of beauty and craft, however, is that any created thing often requires a fair bit of work that, on its face, seems mundane and pedestrian. Add to that the pressures of market, and the elegance of the code suddenly takes a back seat to shipping usable software.

Yes, software development is full of mundane tasks, even in the most interesting and elegant pieces of software. Bugs need to be fixed. Third-party frameworks and libraries need to be integrated. Software and hardware need to talk to one another. New features need to be shoehorned into existing applications. Instead of wielding our hammers and saws, instead we're armed with glue and duct tape. Programmers like to chafe against these tasks, preferring hacking to gluing and fixing, but if the goal is to produce a usable, good piece of software, every detail counts.

Those seemingly endless nights of tracking down Heisenbugs do matter, and make the software better. The same applies for gluing code or hardware together. I will be the first to admit that spending my Thanksgiving determining why data was being truncated between our software and our server was not ideal, but in finding and patching the issue, we delivered a new product on time for a customer.

Gluing and long debugging sessions are a part of life in this industry, like them or not. As Christians, we have a unique call to sweat the boring details—if Christ does indeed claim every square of Creation as His own, every bit of our work, regardless of how mundane, is done for His glory. If you find yourself stuck in an endless cycle of drudgery, leverage what you know. Can you write a tool to automate a process? Can you write a test suite to better trap bugs? Can you improve the build and release process? Certainly this is different than writing the perfect algorithm, but the goal should be the same—shipping useful, bug-free software that will delight its users.

Brian Janaszek Brian Janaszek
Brian Janaszek lives in Morningside, Pittsburgh, PA with his wife Jenifer and their two sons. ... read more »

Posted in Business, Tech, Vocation.

Add Your Comments


Copyright © 1974-2012 Cardus. All Rights Reserved.

| More

Feature Essays

  1. If Wishing Made it So: Teaching Students to Make Change

    May 14, 2012 | Gloria Stronks and Julia Stronks

    Parents and teachers want children to have the skills to make a difference. But what can we teach to help them survive their teen years, 20s, and 30s with convictions and charac...

Reviews & Opinions

  1. Do Not Open—No User Serviceable Parts Inside

    May 22, 2012 | David Greusel

    Why do so many of us have to work where the windows don't open? Engineers, architects, and lawyers have their reasons, but must workplaces be less humane than homes?
  2. Morality, markets, and Michael Sandel

    May 18, 2012 | Nick Spencer

    In Santa Ana in California prisoners can buy a cell upgrade. In Dallas, Texas, underachieving children are paid to read books. These are, alas, some of the saner and less offens...

Six Questions

  1. Saying "there is not enough time" is heresy

    May 2, 2012 | Stephanie Gehring

    SIX QUESTIONS . . . The new culture I am making is an attempt to say hold still and look at this.

Cardus Blog

  1. Plus ca change

    May 22, 2012 | Peter Stockland

    On today's 100th day of protests by Quebec students, Journal de Montreal columnist Richard Martineau offers a scabrous depiction of his province. Citing former Laval University ...
  2. Broken Union

    May 18, 2012 | Josh Reinders

    When the Quebec student protests started, my earliest feelings were of sympathy. These were fellow student, with whom I felt a kinship. Finally someone had taken up arms against...

Print Issue

  1. March 2012: Legacies
    Comment Magazine - Legacies Our culture does not know how to deal with legacies. We either treat the dead with some combination of awe and fear, or we think of our forebears as unworthy of remembrance, to ...