Feb 15, 2012

Schedule driven projects

How many times have you been involved in programs where the most pressing concern of everyone is meeting the schedule? 

Quality (fitness for purpose in this case) is the first to go.  To hell with quality, we need to get this deliverable --- a document, a piece of software, testing, etc. – finished.

Project status reports often show green if the everything is ‘on schedule’.  There is little status reporting on whether things are being done right.

I was involved in a large multi-million dollar program a few of years ago.  Immediately upon joining the program, I saw how badly the system being built will turn out to be.  For example, data input is being designed without consideration of what output is required (how would we know what input is required if we don’t know what output is required?).

I raised and itemised my concerns, but they were brushed off.  The schedule pressure was of paramount importance.

The result was predictable.  It was a very successful program:

  • The program came in on schedule (the nth update of the schedule)
  • The program came in under budget (the nth adjustment of the budget of course)

Except for the minor fact that:

  • The delivered information system was unusable and unused.
  • A second remediation program had to be launched two years later to fix the problems of the successful program.

This second program did give long employment to a second set of consultants and employees.

Feb 14, 2012

Project Failure

Below is a list of some reasons why projects fail, taken from David Cleland’s chapter ‘Strategic Management’ in “The Field Guide to Project Management” (highlights mine)

Check the list to make sure you are not experiencing any of these in your current project.  If you are, then it’s time to take action to amend the situation!

  • Inadequate senior management oversight
  • Ineffective planning
  • Inappropriate organizational design
  • Lack of well-defined and delegated authority and responsibility
  • Inefficient system for monitoring, evaluating, and controlling the use
    of resources
    on the project
  • Ineffective contingency planning
  • Limited team member participation in the making and execution of decisions on the project
  • Unrealistic cost and schedule objectives
  • Lack of customer commitment to project
  • Limited customer oversight
  • Inadequate management information system

Feb 11, 2012

Politics and nerds

Skill in organizational politics is a function of social skills. The more you have of one, the more you have of the other. Computer nerds are reputed to have a distaste for organizational politics. The word 'nerd' is often used as if the word itself meant 'someone who lacks social skills'.

It takes, however, an exceptionally analytical and logical mind to become a good programmer. In other words, you have to be rather smart to be a good programmer. So how come that smartness seem to flounder in the face of organizational politics?

Some may say that the smartness that nerds possess is of a different sort from the smartness required to engage in politics.  Perhaps.  There are indeed different kinds of smarts.  But I'm more convinced that their smartness is just not focused on politics.

Nerds simply detest politics. Such an attitude comes out of the pureness of heart mixed with  a little naiveté.  They see politics as an unnecessary evil played by people who need to cover up for their incompetence, or by people who see it as a tool to feed their greed. One of the early definitions of politics that roamed the internet was a play on the word itself ("poli" - many, "tics" - blood sucking parasites).

Besides the attitude toward politics, nerds are also unprepared to manage things that fight back. They deal extremely well with computers and software, which respond with a deterministic response to stimulus.  In other word, computers act the same way each time.  Any difference in reaction triggers deeper analysis and debugging to understand why the unexpected variation happened, and what needs to be done to remove that variation.

Politics is about managing people. And people are deterministically unpredictable. The same request to the same person will receive a different response each time. People tend to not want to be managed and tend to want to manage. The nerd is afraid that the engaged person may attempt a coup and end up managing the nerd. Such do not happen in a nerd cum machine interaction.

The pervasive view that politics is only for the incompetent is unfortunate because it gives the viewer an unnecessary disability.

Politics is a part of organizational life. It is an essential part which cannot be removed. Anytime two or more people get together, there is going to be politics. Even if these two people happen to be the most considerate of sweethearts so madly in love with each other. She will do what she needs to do to make sure his eyes do not flit to another. In other words, she will attempt to control his behaviour. She will attempt to manage.

Politics is so pervasive that it is just unavoidable. It's like air. No matter where you sit in the totem pole you are within its reach. The lowliest messenger has to conform to politics. If you're not in the totem pole, you are not in any organization. You are either unemployed, or a Warren Buffet.

While politics exist at the bottom and the middle, at the top it is even more acute, and the stakes higher.  The politics at the top is even more pervasive. Even the highest officer in the land has to contend with politics. The US president may have the most powerful military on earth, but his power over it is limited. Even he has to play games of give and take with senators and congressmen. He also has to engage the same games with countries ranging from the big ones like Russia and China, to small ones like Venezuela, and even with close allies such as Japan, Australia, and the UK.

Politics is as unavoidable and as necessary as grooming. Unfortunately, many nerds also tend to dislike grooming -- some cats have better grooming skills.

If you cannot avoid it, join it.

The first step is to embrace a new attitude toward politics. Politics is like the Marvel comics character ‘Galactus’. It is a "force of nature." Politics is neither immoral nor moral. It is to be likened to grooming, manners, eating from plates instead of cans, and common courtesy -- society expects them and woe to those who do not conform.

There is no free lunch.  There is no getting ahead without politics.

Feb 7, 2012

The Project Manager

Big undertakings involving many individual activities and many individual people need some form of management to organise and direct the works.  Without this management, everything will just sit around and nothing will be accomplished.

What is needed is a project manager.  This  person’s job is to:

  • Ensure clarity of purpose – why are we undertaking this project?  What is the vision for the project?  What is it expected to deliver?
  • Identify constraints – is there a budget we are aiming for?  Is there a timeframe?
  • Determine what needs to be delivered and the activities required – what do we need to deliver to accomplish the purpose of the project?  What activities need to be undertaken to deliver what we need to deliver?
  • Determine the dependencies between activities
  • Identify what resources are needed to perform the activities – resources include skills, material, equipment, and so on
  • Procure the resources
  • Plan the activities – generate a work plan that respects the dependencies between tasks, respect the available resources, and when executed deliver the deliverables.  The result is a schedule of work.
  • Determine the risks that the project face, and plan countermeasures
  • Determine how much the project will cost
  • Determine the cash flow requirements of the project – how much does the project need on a monthly basis?
  • Execute the plan
  • Monitor and control the plan

This list of activities is roughly linear, but they will be performed in an iterative fashion because the activities depend on each other.  The plan determines what resources we need, but what resources are available determine the plan we can have.   The target timeframe determines the schedule of work, but the schedule of work determines the timeframe as well.

Feb 2, 2012

The Essence of Agile

How much of Agile practices can you remove before it becomes no longer Agile?

I was having a discussion that other day with another project manager, and this fellow was saying that he didn’t think you could do Agile without having a card wall.  Now, I’ve done Agile development before using just an Excel spread sheet instead of a card wall to track the progress, so I know for a fact that you could do Agile without the card wall. 

So I said I disagreed and we left it at that.

A little while later, I thought about the matter a bit more and decided that I haven’t changed my mind.  It is not the card wall that determines if you are doing Agile or not.

Let me give an analogy.  The other week my 6-year old son and I were playing basketball.  We weren’t in any basketball uniform.  I was in jeans, and he was in his civvies. We were still playing basketball, weren’t we?

We also were not following basketball rules: each time he makes a shot, it’s worth 50 points. Each time I make a shot, it’s worth 1 point. We were still playing basketball, weren’t we?

Also, he didn’t have to dribble: he could run with the ball as much as he likes. We were still playing basketball, weren’t we?

Lastly, we were not even using a basketball ball. We were using a soccer ball (our basketball ball was too heavy for him). We were still playing basketball, weren’t we?  I believe so.

My point is that there is a core in Agile that represents the essence. The card wall is not an essential part of it.

The idea of the card wall originated from the concept of ‘kanban’, a Just-in-Time (JIT) system developed at Toyota many years ago (as far back as the 1930s would you believe it?).  I’ll write about what kanban is in another post, and explain the big difference between it and how the card wall is used in Agile development. 

The important thing is that in Agile, the card wall is simply a reporting tool.  It give you a synoptic (‘at a glance’) view of where things are.  It is not part of the essence of Agile.

The essence of Agile is constant feedback and constant adjustment

The card wall, the daily stand-ups, even the sprints, are merely communication and administrative techniques.  You can replace each one of these with completely new techniques (potentially better) and still be doing Agile!