What makes a great IT practitioner? Danny Brian, a Gartner vice president and fellow, suggested it’s the ability to embrace one’s vices.
At Gartner Catalyst 2018, Brian named laziness, impatience and hubris as the three secret virtues of a great IT practitioner — borrowing them from acclaimed programmer Larry Wall. In Wall’s 1991 book Programming Perl, the virtues were aimed at programmers. But Brian made the case they can help all IT practitioners succeed in today’s digital business age — and contribute to the bottom line.
In Wall’s book, laziness is defined as “the quality that makes you go to great effort to reduce overall energy expenditure.” In other words, lazy IT practitioners continually seek out the easiest, most efficient ways to complete a task.
“If necessity is the mother of invention, then maybe laziness is the mother of innovation,” Brian said.
As an example, he pointed to computer programming pioneer Grace Hopper. The inventor of one of the first compiler tools — i.e., software that transforms computer code from one programming language into another — Hopper credited laziness as the impetus for her accomplishment.
Laziness, Brian said, also requires an enormous amount of planning and foresight.
“You don’t want to just be lazy now; you want to be lazy tomorrow and the day after that,” Brian said. “And if you want to enable other people to be lazy, it takes even more thought and preparation.”
He listed specific examples of what true laziness requires of an IT practitioner:
- not repeating yourself;
- not reinventing the wheel — utilizing the best frameworks and tools to save time and effort;
- focusing on the most important problems;
- knowledge and recognition of design patterns, which avoid solving the same or similar problems multiple times;
- ensuring test-driven development in order to avoid hours spent later in panic mode trying to figure out what broke;
- developing processes and procedures that actually help people short cut their tasks, rather than creating standards for standards’ sake; and
- documenting everything — as close to the activity as possible — in a way that is easy for others and for your future self to understand.
Danny Brianvice president and fellow, Gartner
Every religious tradition in the world espouses patience as a virtue, Brian said, but the truth is the world is growing more impatient, in part, because of technology.
“If you think you want patient people working for you, I’d ask, ‘What about all that technology influence that’s creating more and more impatience in the world? Don’t you want people who recognize that and are ready and willing to respond to it?'” he said.
Indeed, patience could even pose a threat to organizational efficiency.
“Patience can lead to inaction, if you think about it. Patience can quickly become apathy or complacency — or at least appear to be those things,” he said.
The impatience Brian exalted is the general impatience that drives people to get things done and fix things that are broken or problematic. While laziness is about overall energy expenditure, impatience is all about the emotion — specifically anger at a slow program or process.
“It’s fixing a problem not because practitioners have to, but because it bugs them; not because there’s a ticket open, but because it’s really annoying and they’re impatient users,” Brian said.
This is where practices like continuous integration come in, Brian said. Along with having tests run on a regular basis so they can know as soon as a problem occurs, impatient IT practitioners are also continuously exploring — and integrating — new and better tools.
Impatience is also key to Agile development, Brian said.
“You should never hear the words from an Agile team, ‘We are waiting on X from X,'” Brian said. “They’re not Agile unless they can meet all of their dependencies and never be waiting on another team to get things done. And that’s what real impatience should look like.”
He listed specific examples of what true impatience requires of an IT practitioner:
- a sense of urgency;
- automating everything automatable;
- constantly watching for better workflows, tools and methodologies;
- continuously integrating so you never feel behind;
- utilizing wikis, because we need to edit that right here and now;
- empathizing with impatient end users;
- having empowered teams with the resources necessary to push projects through to completion;
- the ability to use cloud services, or any service that is the best tool for the job; and
- strong communication skills from all contributors and sponsors.
Wall defined hubris as “excessive pride — the sort of thing that Zeus zaps you for. [It’s] also the quality that makes you write and maintain programs that other people won’t want to say bad things about.”
In that vein, Brian refers to IT-practitioner hubris as the pride one takes in a well-crafted product and the drive to succeed where others have failed.
“[It’s] that total sense of ownership that doesn’t come without opening things up and allowing themselves to be impatient and lazy in this case,” he said. “It’s also knowing enough to know what you don’t know, which brings confidence with experience.”
This brand of hubris requires not only a conviction that one is right, but an ability to make the case to the CIO and the business, Brian said.
“A big part of this is for the technical folks to learn to not speak like coneheads,” he said.
Brian noted that novice IT practitioners can’t really have true hubris — yet.
“New practitioners can be lazy, and they can be impatient. But they can’t have hubris in the effective way,” Brian said. Hubris takes time, experience and success. “Real hubris is being an expert.”
He listed specific examples of what else true hubris requires of an IT practitioner:
- pride in yourself and in your work;
- zero fear of new technologies — the ability to dive in and emerge an expert;
- attention to details, such as design, documentation and code formatting;
- flexibility to adjust to changing requirements and user needs — a “we can do that” mentality;
- owning the results of your work — releasing, maintaining and improving a service;
- knowing what “good” looks like and how to get it;
- going above and beyond, even when it is not requested;
- constantly retraining yourself; staying abreast of new technology developments; reading technology books; attending conventions and workshops; and subscribing to training sites, like Lynda.com, Udemy, Pluralsight or Codecademy; and
- a craftsmanship mentality — seeing your job as creating solutions for people and the business, rather than racking servers or writing code.
Brian ended with a warning to IT practitioners: Don’t let any one of these three qualities outweigh the others; they must coexist and balance each other out. Practitioners ruled by laziness — efficiency obsessives — will try to suss out and prematurely optimize any problems that might come in the future.
“If they’re too impatient, they’re going to be quick to adopt the wrong solutions … and just incur technical debt over time,” Brian said. “Too much hubris, and they are going to be perfectionists that can’t ever recognize when good is good enough and [the need to] sacrifice the good for the perfect.”