Defining What We Do
“Of all forms of symbolism, language is the most highly developed, most subtle, and most complicated. It has been pointed out that human beings, by agreement, can make anything stand for anything. Now, human beings have agreed, in the course of centuries of mutual dependency, to let the various noises that they can produce . . . stand for specified happenings in their nervous systems. We call that system of agreements language. For example, we who speak English have been so trained that, when our nervous systems register the presence of a certain kind of animal, we may make the following noise: “That’s a cat.” Anyone hearing us expects to find that, by looking in the same direction, he will experience a similar event in his nervous system — one that will lead him to make an almost identical noise.” – S. I. Hayakawa, Language In Thought And Action
What, exactly, is custom software development?
How many times have I sat across from a client — or potential client — who is vigorously flogging the term “custom software development” to describe what they needed done or thought we were doing and found that the client and I had vastly different understandings of what that term means? It is incredibly disconcerting to expect to see a cat and, instead, see, say, a loaded baked potato . . . or a mini pig in a tutu . . . or, less fatuously, auto manufacturing.
Custom software development is a creative process. To extend the auto-manufacturing metaphor, custom software development is more akin to the R&D and mechanical, electrical and ergonomic engineering process employed when crafting a new model and less like the automated, assembly-line process of manufacturing a GMC pickup truck.
Custom software development is the purview of the unique. Each project is its own work product. The technologies used are the tools, the medium of expression, not the solution itself. Custom software development is iterative and, to a greater or lesser extent, uncharted territory. Because of this nearly-raw crafting, it’s expensive and time-consuming and we can’t give you a price tag at the start of the project for the final tally at the completion of the project. To be blunt, that assumes that software developers have more control over the project than the client does and that simply is not the case. To put it another way, you aren’t buying a car, you’re buying the entire process of creating a new car from the drafting table and modeling clay up.
So, and this is important, custom software development should not be your first choice when solving a business problem. In many cases, despite the added cruft and training, off-the-shelf solutions may be a better solution for you.
By extension, quality custom software development is done by highly creative and skilled people. The success of the project depends on their problem-solving skills, their ability to see patterns and connections, their ability to abstract those out into language. These traits aren’t frequently displayed by the inexperienced, the rote coder, the blind follower, nor, as Wired Magazine recently posited, by coding bots leveraging current or foreseeable-future AI. At Art & Logic, our developers are disproportionately more likely to have backgrounds in music theory, music performance, linguistics, foreign languages, theology, creative writing and a type of theoretical math that, to be honest, sounds more like religion than numbers to me. It is this diversity of thought, and the ability to activate both linear and creative thought processes, that make not only the software a rare, unique entity but also the folk who develop.
Custom software development cannot be book-learned or, I guess nowadays, YouTube-learned. A little like medicine, developers learn by being in the room with patient after patient and, even though every project is its own one-off beast, a good developer, through years of exposure, can smell a problem and can see a diagnosis. A tested and seasoned developer rides with ease in the face of difficulty.