blog

Photo by Amir Ghoorchiani from Pexels

Ceci n’est pas un Chat: the Art of Custom Software Development

by

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.

Let’s ensure that we all understand what custom software development is and is not, let’s ensure that a cat has whiskers, claws, paws, pointy ears and goes bonkers over the sound of a tuna can being opened. Custom software development is a service, not a product. You are purchasing expert, professional services from a team that endeavors to build your application. You are not buying the application itself. Custom software development is a fusion of creative and logical processes, not the following of a recipe. These services are performed — and executed successfully — not by technologies or platforms or flavor-of-the-month javascript libraries but by developers using these tools to craft something novel and tailored to your business needs. It is not “just” anything — certainly not fast, easy or simple. It is not modular or assembled. But it can be sublime, gorgeously efficient, intuitive and highly effective in supporting your business goals . . . if allowed to evolve under the skilled hands and watchful eye of solid processes, methodologies, and talented developers.

+ more