jim.shamlin.com

Assessing Geek Work

Most measures of effort are inaccurate, and may completely miss the point of the work that geeks do: counting the number of functions or lines of code focuses on a visible product, but may have little to do with the amount of effort that went into analyzing the problem and discovering a solution. The author avers that there is still not a system that assesses the value of geek work with any accuracy whatsoever.

Instead, the author suggests assessing geeks by their performance in twelve areas - core competencies - as a method for estimating their ability to deliver results. These competencies include both knowledge and behavior, as knowledge alone is not of value unless it can be applied in action.

1: Technical Competence

Technical competency is the easiest to understand and generally comes to mind first: technical competencies are key requirements as listed in job descriptions.

Competence is to be measured in both terms of breadth and depth: there are geeks who have guru-level skills in a single technology (a programming language, a flavor of database) and others who have shallow knowledge in a broad range of technologies.

Relevance is also a key: geeks tend to obsess, and a geek who has extensive knowledge of a system or language that's not in use at a company has little technical competence in things that are actually relevant to the job he's called upon to do.

Training is a factor that is critical to maintaining and expanding technical competence. It is often overlooked by companies, who seek a geek of a particular species and overlook the assets they have in-house who could be trained (or who can self-train) to obtain the necessary technical skill.

While most geeks enjoy gaining knowledge and expertise, beware of "certification training." Attending courses for the sake of getting a certificate is less important than gaining the knowledge to do something specific. Certification is perceived as political, done to please the suits, and it does not guarantee technical competence (in fact, many certified geeks tend to be very lackluster, and use the certification as a substitute for skill).

2: Personal Productivity

Geeks can also be measured by their ability to crank out work, measured by deliverables to a project. The peak performers produce large volumes of work in short amounts of time - either by virtue of their skill, or their willingness to work long hours to compensate for their lack of skill.

However, productivity is not a constant: a geek may spend four weeks without producing an appreciable work product, then crank out a dozen deliverables in a single week. This is the nature of the work: it may have required a significant amount of thought to perform several tasks, or a single "eureka" moment may have precipitated a spurt of productivity.

There is no one "right" way to ramp up productivity - each geek has his own working patterns and approach to problem-solving. It does no good, and may create frustration and resentment, to compel geeks who seem less productive to emulate the activities of a more productive geek.

3: Ability to Multitask

Some geeks, especially inexperienced ones, have the need to focus on a single problem exclusively and keep hacking away at it until a solution is found, then move on to the next. More experienced (and effective) geeks can have several plates spinning at once and switch back and forth with relative ease.

In many cases, the best way to solve a problem is to walk away from it for a while and do something else, then come back to it with a fresh mind. For that reason, a geek who multitasks is generally more productive than a grinder.

Also, geeks generally work on multiple projects, each of which involves multiple task, and priorities are constantly changing. It is essential for a geek to be responsive to the needs of others (both with the team and outside it) by being able to switch to whatever task has the greatest priority.

Note that the reference above is to "more experienced" and "less experienced" geeks. Some sources dismiss multitasking as an innate ability - a person can or cannot multitask. Instead, it is a skill that evolves over time, though there is no known method of "teaching" or inspiring it.

4: Ability to Describe the Business Context of Technical Work

Most geeks do not have a business background, education, training, or experience and tend to see the work they do in a vacuum, without considering the business context that require the work to be done. However, the better a geek understands the use of his product, the more effective he will be in producing a suitable solution.

In general, the ability of a geek to understand the business context depends on how much exposure they have to the business users. The further they are kept apart, the less likely that this familiarity will evolve.

5: Ability to Compromise Business and Technical Constraints

Precipitating from knowledge of the business context is the ability to make compromises between the constraints of technology and the needs of the business.

In many instances, geeks will evaluate a technology as being "good" for reasons other than its purpose: they are familiar with it and find it easy to use, it can be easily integrated with other business systems, it is powerful, it meets certain abstract standards.

The good geek is able to negotiate compromises: it may be necessary to go with a solution he doesn't "love" because it is better suited to the needs of the business, or he may be able to convince the business that their stated "need" is less important that some technical consideration (network security, for example).

Generally, the more senior a geek, the better they are at handling these negotiations with non-technical personnel.

6: Ability to Manage Client Relationships

After understanding the business and negotiating when necessary, the next level of skill is actively managing the client relationship. This generally means overcoming the "gap" between technical and non-technical personnel to relate to another person.

Geeks tend to disdain social networking and feel it is manipulative, or will claim as much as a method of avoiding the awkwardness of social interaction, but must be helped to understand the value of understanding a client's needs and becoming a trusted advisor who can be more proactive in assisting them.

7: Ability to Manage Technical Teams

The development path for geeks, within the organization, is to graduate from being a lone gunman, to working with teams, to mentoring junior employees, to taking to the task of managing a technical team.

This is a major shift for geeks, and not all are capable of making it. Sometimes, the individuals with the best technical skills will not develop the soft skills to mentor and manage others, and have no interest in doing so (and there is no external stimulus that can motivate them to take a genuine interest).

Aside of the will to do so, it is also a matter of skills: the skills to be a good technical employee and those to be a good manager are very different, and many fail to bridge the gap.

8: Ability to Play Positive Politics

Geeks tend to misunderstand and be distrustful of politics in the office: they regard them as manipulative and disingenuous and are not apt to recognize their value (as a means of gaining buy-in and cooperation through personal persuasion. in the absence of formal authority). However, doing so is often critical to accomplishing organizational goals.

However, geeks often lack the social skills to make connections across the organization - they have the opportunity, through their project work, to communicate and connect with individuals in other parts of the organization, and may come to realize that positive relations can facilitate group decision making ... or they may not realize it at all and continue to be ham-fisted and short-sighted in their relations with other people.

9: Ability to Help Expand Client Relationships

Much of this seems redundant to managing client relationships (#6) but in this sense, the author focuses on leveraging those connections to win more business from the client, even an internal one, and achieving a relationship of trust with clients.

In addition to maintaining the relationship, this also requires the geek to identify and understand the needs of the client to which technology can provide a solution.

10: Ability to Work Through Others, to Make Others Productive

This, too, seems redundant to skills of managing and mentoring within one's own department and forming productive relationships that enable you to obtain the cooperation and support of individuals outside the department.

11: Ability to Manage Ambiguity

The author is clear on the sources of ambiguity, and suggests that a geek would need to be able to manage it, but is no clear on what he means by that.

12: Ability to Manage Time Horizons

This one's really weird: the author refers to "recalibrating the client's sense of time" - which seems a bit transcendental. What he's really referring to is dealing with time constraints and helping clients to realize the nature and scope of the work, and be reasonable in setting deadlines.


Contents