Eight to Late

Sensemaking and Analytics for Organizations

Archive for the ‘Paper Review’ Category

Conflicts over identity: on the relationship between software developers and project managers

with 19 comments

Introduction

The relationship between software developers and project managers is often fraught with  conflict.  Yet they have to get along professionally:  the success of a software project depends to a large extent on whether or not they can work together. A paper entitled Stop whining, start doing! Identity conflict in project-managed software production, published in the May 2009 issue of Ephemera, delves into this issue by looking at how the two parties view themselves in relation to each other.  This post is a summary and review of the paper.

A quick word or two before diving into the paper. First, identity conflict occurs when a person or a group feels that their  sense of self (i.e. their identity) is threatened or denied legitimacy and respect. Second,  although the title of the paper suggests that  it deals with identity conflict in project-managed software production, the authors’ focus is considerably narrower: the analysis presented in the paper is based on selected Slashdot discussion threads involving software developers and project managers.  In effect, the authors draw their conclusions about identity conflict in software production based on  opinions expressed online forums.   It is, I think,  stretch to read too much into such exchanges. I’ll have more to say about this in the final section of this post.

The authors of the paper, Peter Case and Erik Pineiro, begin their analysis by noting that although project managers are usually above programmers in the organizational hierarchy, the relationship is complicated by two factors:

  1. Project managers usually do not need (and often lack) the educational qualifications possessed by programmers.
  2. Project managers usually do not have the depth of technical knowledge that programmers have.

These two conditions often lead to the view amongst programmers that they (the programmers) have a higher organizational status (or matter more) than project managers do.

The authors end their introduction with the observation that the skills of programmers are necessary for the creation of software, but equally necessary is the need to direct software building efforts using some form of project management. This observation underlines the symbiotic relationship between developers and project managers. On the other hand the differences between the two disciplines is also a source of conflict between the two parties. The main aim of the paper is to highlight how this conflict plays out  in online discussions involving developers and project managers.

Research Methodology

Case and Pineiro base their research on an analysis of contributions to online discussions on Slashdot. A large number of Slashdot contributors are programmers. The discussions cover a range of topics of interest to coders – from the merits of particular technologies, to outsourcing, aesthetics and personal philosophies of  programming. The authors use two ideas (or, more accurately, lenses) to interpret the data, the data being individual contributions to discussions.

First, the authors contend that contributors to Slashdot are:

… bringing about  social effects through their displays of technical bravado, expressions of aesthetic preference and espousals of dissent, resistance and subversion.

In particular, when discussing the relationship between programmer and project managers, contributors – through the discussion – are creating (or confirming) a certain view of the relationship between the two parties.  In doing so, they are enacting their own identities (as members of a particular guild). They do so in opposition to the other party – i.e. by setting themselves apart by negating the  skills, knowledge and work of the other.

Second, the work that programmers do has a certain value in the marketplace – i.e it is created because of its (direct or indirect) commercial value. This has two consequences:

  1. Programmers feel that they have to compromise on quality (or aesthetics) because of time pressures and, on the other hand, project managers feel that programmers do not understand the commercial imperative to move the project forward.
  2. Both sides feel that their own specialized area of knowledge – technical or managerial – is the truly important one  as far as the commercial aspects of the project are concerned.

The authors use excerpts from Slashdot discussions to highlight these two dynamics at work.

Data analysis and discussion

The programmers’ perspective

In Slashdot discussions, Case and Pineiro find that programmers articulate different identities depending on the audience. In some situations they express an interest in (or agree with the importance of) meeting deadlines, getting the product to market etc. Whereas, in other situations, particularly when responding to (or comparing themselves to) project managers, they might express an interest in code aesthetics – i.e. the importance of writing good, even beautiful, code. Several examples of the latter can be found in a discussion thread on software aesthetics. Many of the contributions to the discussion assert that (good) programmers have the following traits:

  • Are passionate about their work
  • Care deeply about quality.
  • Understand of the importance of good code.

Several contributors make these points in opposition to the work-related traits of managers. That is, they set up a stereotypical manager – who doesn’t care about code quality etc. – as a foil for their rhetorical arguments.

Technical knowledge is another important way in which programmers set themselves apart from project managers. The contention here is that managers cannot really understand what a software system is because they don’t have the required knowledge; an implication being that they are not qualified to manage its construction. Case and Pineiro mention how this issue can really raise emotions when it comes to the issue of outsourcing (see this discussion thread for example).

The project manager’s perspective

Although the Slashdot community is dominated by programmers, the authors were able to find a few contributions that gave the project managers’ viewpoint. For example, a discussion on project management for programmers, gave some project managers an opportunity to articulate their views. In the discussion, project managers tended to focus on two aspects – performance (i.e. completing the project on time) and project management knowledge – both of which (they implied) programmers do not understand. See this comment for an example of the former and this one or this one for examples of the latter.

Project managers thus set themselves apart (i.e. construct their identities) as distinct from programmers. They are concerned with driving the project to successful completion and they have specialized knowledge and training to do this; both of which programmers do not possess.

The authors’ conclusions

From their analysis of selected Slashdot discussions, Pineiro and Case conclude the following:

  1. Software developers and project managers tend to construct their identities in opposition to each other – i.e. by setting themselves (their skills, motivations and concerns) as being different from the other. On the other hand, business imperatives require that they collaborate, so there is a symbiotic aspect to their relationship.
  2. Despite project managers being marginally higher up than programmers in organizational hierarchy, there is little difference in the status of the two. The reasons for this are: 1) Project managers lack the specialized technical knowledge needed to understand programmers’ work and 2) Software project managers’ are dependent on programmers – perhaps more so than project managers in other disciplines. As a consequence, the difference in status might rankle with programmers. Thus the hierarchical proximity of the two parties might also be one of the reasons for the conflict between the two.
  3. Both parties generally claim to have the same goal – produce quality software in reasonable time. They differ, however, in the means to achieve the goal. Programmers believe the focus should be on producing high quality code whereas project managers tend to emphasise the optimization of resources and time, whilst meeting the system requirements.

Wrapping up

The paper isn’t an easy read because of the wide use of sociological jargon,  but then it is a research paper. The central idea –  that online discussions can serve to construct or reinforce programmer and project manager identities – is an intriguing one.  If true, it implies that one’s self (and projected) image influences,   and is influenced by,   how one describes oneself to others in speech or writing.   For instance, does my claim that I’m a “seasoned database architect” and “experienced project manager”  reinforce my professional identity? Also interesting is the idea that developer and project manager identities are often constructed in opposition to each other. That is,  both parties appear to build their identities by casting the other in a negative light.

However, as interesting as  all this is,  I believe it misses a crucial point:  that programmers and project managers, for the most part, play out roles which are defined and enforced  by the organisations they work for. If organisational rules and norms require programmers (or project managers) to behave in dysfunctional ways,  then that’s exactly what most of them will do.  On the other hand, if  an organisation encourages behaviour that fosters good working relationships between the two parties, things would be different:  those working in such environments  would have more positive experiences to to relate (this comment taken from one of threads analysed by the authors is a case in point). It is surprising that the authors chose not to include such (positive) comments in their analysis.

In brief:  the paper  presents an interesting perspective on the relationship between programmers and project managers.  Even though the authors’ focus is somewhat limited, the paper  is of potential interest to researchers and practitioners interested in work relationships in project environments.

Written by K

March 4, 2010 at 9:38 pm

Communicating risks using the Improbability Scale

with 3 comments

It can be hard to develop an intutitive feel for a probability  that is expressed in terms of a single number. The main reason for this is that a numerical probability, without anything to compare it to, may not convey a sense of how likely (or unlikely) an event is. For example, the NSW Road Transport Authority tells us that  0.97% of the registered vehicles on the road in NSW in 2008 were involved in at least one accident.  Based on this, the probability that a randomly chosen vehicle  will be involved in an accident over a period of one year is 0.0097. Although this number suggests the risk is small, it begs the question: how small? How does it compare to the probability of other, known events?   In a short paper entitled, The Improbability Scale,  David Ritchie outlines how to make this comparison in an inituitively appealing way.

Ritchie defines the Improbability Scale, I, as:

I = - \log (p)

where p is the probability of the event.

By definition, I is 0 for absolutely certain events (p=1), and increases as p decreases. The advantage of using I (as opposed to p) is that, in most case, I, will be a number between 0 and 10.  An I of 10 corresponds to a probability of 0.0000000001, which is so small that the event it refers to is practically impossible.

Let’s look at the improbability of some events expressed in terms of  I.

  1. Rolling a six on the throw of a die. p= 1/6;  I= 0.8.
  2. Picking a specific card (say the 10 of diamonds) from a pack (wildcards excluded). p= 1/52;  I= 1.7.
  3. A (particular) vehicle being involved in at least one accident in the Australian state of NSW over a period of one year (the example quoted in the in the first paragraph). p= .0097;  I =  2.0.
  4. One’s birthday occurring on a randomly picked day of the year. p= 1/365;  I =  2.6.
  5. Probability of getting 10 heads in 10 consecutive coin tosses. p(0.5)^{10}  (or 0.00098 ); I = 3
  6. Drawing 5 sequential cards of the same suit from a complete deck (a straight flush). p= 0.0000139;  I=  4.9 (Note: This can be calculated by dividing the total number of sequential 5 card hands and dividing it by the total number of 5 card hands from a deck of 52. I’m too lazy to do the calculation myself, but it’s explained in this Wikipedia article if you’re interested. )
  7. Being struck by lightning in Australia. p= 1/1600000; I =  6.2. (source: this article from Australian Geographic – the article doesn’t say over what period, but I reckon it’s per year)
  8. Winning the Oz Lotto Jackpot. p2.204 \times 10^{-8}; I =  7.7 (based on odds from NSW lotteries for a single game)

Apart from clarifying the risk of a traffic accident, this tells me  (quite unambiguously!)  that I must stop buying lottery tickets.

A side benefit of the improbability scale is that it eases the tasks of calculating the probability of combined events. If two events are independent, the probability that they will occur together is given by the product of their individual probabilities of occurrence. Since the logarithm of a product of two number equals the sum of the numbers, I for the combined event is obtained by adding their individual I values. So the I  for throwing a six and drawing a specific card from a deck is 2.5 (that is, 0.8+1.7), making it more unlikely than being involved in a vehicle accident. That certainly puts both probabilities in perspective.

In short: the improbability scale offers a nice way to understand the likelihood of an event occuring  in comparison to other events. In particular, the examples discussed above show how it can be used to illustrate and communicate the likelihood of  risks in a vivid and intuitive  manner.

Written by K

February 23, 2010 at 10:15 pm

Some pitfalls of contracts

with 5 comments

Introduction

Individuals or organizations who have agreed to work together often formalize their agreement through contracts. One of the main functions of such contracts is to reinforce trust between the two parties – i.e. to assure each other that they will do as they say. Another function is to reduce risk. In an article published in the May 2009 issue of the Harvard Business Review,  Deepak Malhotra argues that in some situations contracts end up destroying trust and/or increasing risk. In this post I present the pitfalls he discusses,  along with comments and observations drawn from other sources.

Three pitfalls of contracts

The first point Malhotra makes is that  overly detailed contracts can reduce trust by preventing spontaneous displays of good intentions. Here’s how the reasoning goes: extremely detailed contracts are a sign that the two parties do not trust each other fully (hence the need to write down every possibility that comes to mind). In such situations, the relationship between the two parties tends to be managed by contract, which acts as a disincentive to do things that aren’t written down.

More generally, it is obvious that trust cannot be created by writing it into a contract. At best, contracts might help in reinforcing trust that is built up by other means. How does one build up trust? Well, there are a couple of ways that come to mind;

  1. Through consistent actions that demonstrate good intentions.
  2. Through building relationships between individuals in the two parties.

Neither of these behaviours can be mandated by contract, but a detailed, hard-to-interpret contract can very easily discourage them.

The second point he makes is that rigid contracts can increase risk by discouraging adjustments down the line. Those who draw up contracts cannot be aware of all the possibilities that might unfold as a project progresses (a consequence of bounded rationality). For this reason, contracts should be flexible enough to permit changes as new information comes to light. Ironically, many organizations view rigid contracts as a means of reducing risk. Most often this is because the parties involved tend to underestimate the uncertainties in their environment.  The point here is to put off contractual decisions regarding uncertain elements of the agreement, but to put in place arrangements to deal with some of the foreseeable outcomes.  As  Malhotra puts it, “Wisely structured contracts postpone agreement on terms that would be more effectively handled after more information is available, and they include contingencies commensurate with the current level of uncertainty.

As I’ve written in my post on outsourcing and transaction costs, parties involved in contractual agreements need to take a farsighted view. Such a view would acknowledge the tension between the need for uncertainty in the face of an uncertain world.

The third point Malhotra makes is that incentives in contracts can signal mistrust. This often happens in contracts between high performing individuals and organizations, where a large portion of the individual’s compensation is tied to performance. Such an arrangement can actually end up demotivating the individual. How so? Well,  employee performance in knowledge-related work such as programming, is directly related to intrinsic motivation – i.e. the internal drive (or inclination) to do the assigned work.  Further, as I have discussed in this post, intrinsic motivation has more to do with interesting work than with tangible rewards or incentives.  More to the point, intrinsic motivation cannot be fostered or enhanced by contract. So, in cases where one is dealing with high performers, a better strategy might be to  empower them to make decisions on how their work gets done or , where possible,  matching assignments to  professional interests and aspirations.

Summarizing

Contracts are part and parcel of cross-organisational agreements. They are designed, among other things, to reinforce trust and reduce risk. If one isn’t careful, however, they may  do just the opposite:  contracts that  are overly detailed or  overemphasize monetary incentives can end up reducing trust and increasing risk.

Written by K

January 22, 2010 at 6:28 am