I recently asked a group of high school students what happens when they send a text message. The overwhelming response was, “My phone just sends it over the network.”
But this, of course, prompted me to ask: How does their device upload that message to the network? How is the message routed to the correct destination? How is it received, processed and displayed to the recipient?
It was soon evident to me, and to them, how little they know about the technology they use every few minutes. As consumers, we’ve all come to expect our various gadgets to just do what we want them to do, instantaneously, with little thought about what goes on behind the screen.
I call it Technological Attention Deficit Disorder, or Tech ADD.
This technological inattentiveness is having an impact on software development and user-experience design consultancies in two ways: First, how we recruit and manage new developers (especially new graduates), and even how we must take the time to deprogram and reprogram them; and second, how we must instil an appreciation for the tools and frameworks they must use to build truly robust and scalable applications.
The common consumerized code jockey
Our collective expectation that technology will just work for us on demand without us having to actually learn anything isn’t really all that new. A few generations ago, when the analog television was the state-of-the-art consumer technology, few people understood how it worked. But today’s consumer tech has had such a profound impact on how we live our lives and engage with the world that its influence on our behavior is more pervasive than television, radio and the traditional analog telephone were.
It’s an influence I see more and more on young software developers.
Here it manifests in two ways. The first is an inability to focus on one task for any length of time. (The polite—and misleading—term is “multi-tasking.”) The second is an expectation that software design and development should entail very much the same plug-and-play simplicity as the consumer tech that too often distracts from the work to be done on the company clock.
The ADD begins at school age and continues on through college and university, where students wonder why they must learn linear algebra without appreciating how it provides an important grounding in root principles of computer science and problem solving for something as common as how a browser creates a cookie. Developers know how to create a cookie by typing a single line of code, but they don’t understand how tiny pieces of technology frameworks and protocols work together to enable the creation of a cookie on the end user’s computer.
Their idea of “programming” often involves just throwing together various plug-ins, frameworks, libraries and, in some extreme cases, a few bits of code that are already floating around in the public domain. But this can easily lead to a common software design pitfall we call “the big ball of mud.” This is a program so tightly coupled that it’s very difficult to scale or customize, and it’s rarely robust enough to handle large volumes of users.
#!Searching for the next generation of craftspeople
For many of these young programmers, the primary motivation seems to be quick success. Everyone wants to create the next Angry Birds or Farmville, or have their ideas rapidly come to life. But I am looking for something a little deeper when I am recruiting: future craftsmen and craftswomen who really value the work they do. For apprentices to become masters of their craft, they must take pride in their work, have the diligence to devote whatever degree of time and effort is required, and, above all, possess a profound curiosity about why things work the way they do.