Pencils Down

This weblog is about my experiences in software development

Browsing Posts tagged Project Management

I live on the south shore of Massachusetts.  We recently had a pretty good winter storm hit that knocked down quite a few trees and power lines.  I am sure the local power company could not even approach to fixing all those issues on their own.  They correctly hired what appeared to be several hundred outside contractors to come into state and help.

The storm hit Friday night.

Saturday, whilst the outside contractors were arriving, someone took a wind measurement and proclaimed “high winds”.  This meant all of these contractors sitting in their trucks in a local mall had little to do.  Interesting seeing these guys walking around a mall – you can tell very few ever go inside a mall in their normal life.  You really have to envision most of a local mall packed with these bucket trucks and the contractors doing absolutely nothing for hours.  Oh, by mid-morning the weather was “pleasant” – no wind, no snow, partly-cloudy – perfect.

Sunday rolls around and the contractors are still sitting there.  Someone that talked to one of the contractors said “no one has told them what to do”.  Isn’t that amazing!  We hired all these people from out of state and no plan for what they would do when they got here.

By Monday someone woke up and started organizing their efforts.  We had power back soon.

I know I usually talk about software things, but I have been team leader, manager types many times.  I have had a budget and went to hire contractors.  There was never a day where we could afford to bring in a contractor without knowing exactly what they were going to do and how long it would take.

Share

At my current workplace we are automating a lot of tasks that were done using Oracle Forms to perform under a web interface. Sounds good so far.

One of the forms invokes some tens of thousands of lines of SQL code on the backend touching a large number of tables and invoking a good number of stored procedures. In order to automate this someone on the web team has to understand all that code. Again, from a programmers point of view, doable – might take a while.

Ok, now how to explain the size, scale of the problem to someone who knows nothing about programming?

I threw out the idea of going to the library, reading a novel that was several hundred pages long and having to understand exactly what happens to every character portrayed in chronological order.

Thinking about that later I wonder if I was very far off:

  • A typical page of a novel has 50-60 lines which equates to several hundred pages.
  • A line of SQL does not correspond well to a line in a novel, but given the power of the syntax it may have as much meaning
  • The chronological importance is important in both cases, more so for the SQL.

Maybe it’s not such a bad analogy to use.  Maybe even the PHB might get it:)

Share

I had a phone screen where the hiring manager asked whether I preferred a cooperative environment or an environment where developers were competitive with solutions?  I answered that I think competing internally is a waste of time – we should be competing with the other company.

A previous manager had a habit of egging on competition amongst the employees.  He had a sales background, but that shouldn’t let him off the hook.  I remember a couple of instances where the employees being goaded turned on him as the common enemy.  Again, wasting energy fighting internally versus the other company.

Later I was thinking, many managers, especially with a larger company background, like the idea of using competing teams to arrive at the best solution.  Also, a little insurance that all bases are covered.  I wonder whether that works out all that well either.  Someone loses.  So, you now have a whole team of employees who feel like looking for another job where they are more appreciated.  Plus the added pain of the inevitable finger pointing.  Just throwing all that time and energy out the window.

I know it is beyond many people’s inate behavior to act cooperatively in all situations.  Everyone wants to be first, best, fastest, etc…  On the other hand everyone knows the wretched feeling you get when you are specifically identified at not being first.

What do you think?

Share

Well the worst case happened – just before Christmas client got fed up with functional differences between what they thought would happen and what got delivered and cancelled. Since we are a small company that means we were counting on their payments to meet payroll, so no one gets paid.  Happy Holidays!

I think it all comes down to one fatal flaw: a vague contract.

Yes, there were deliverables described, but they were vague.  The very thing taught in Project Management 101 – unmeasurable, untestable, intangible.

Yes, there were deadlines, but due to the vague functionality there was extensive scope creep.  What started as adding functionality to an existing system became a full fledged refacing of a hodgepodge application.  Nothing worked the same or looked the same from one part of the app to the other.  Making simple user interface changes were a nightmare.

Oh, did I mention that the client development team was less than enthusiastic about us being there from day one?  Again, Project Management 101 – be a calming presence for all vested parties in the contract.

Some day lawyers on both sides will resolve the case.  By then both sides will be wiped out:

  • The client is not that big.  They didn’t follow protocol and will likely lose the case.  But the case can drag on forever.  Lawyers are expensive.  The compiled legal fees will cripple them.  If we are able to subpoena the code they have nothing to sell to clients.
  • We are not big either.  Like I said cash flow is all contingent on everything going smoothly.  This kind of hit is bad.  We will probably win, but will the company still be around?

So, a few weeks off contemplating my navel.  It’s been years since I had this time of year off.  Still be a contractor?  Move on to something bigger, better?

Of course, I get to while away the hours trying to get paid.

Share

The book The Mythical Man Month was first published in 1975.  I think I read it some time in the 1980’s.  As I remember it was not a very big book.  The concept was pretty simple – adding people to a project is less and less useful as a project progresses.

But, how many of you have been on projects where the exact opposite occurs?  As deadlines are pushed the tendency for all layers of management is to push more bodies onto the scene.  Even worse there have been times where some of the people added on don’t even have the skill set needed so that you would not have hired them way back months ago even if you had the chance.

The most extreme for me has been where interested parties start throwing out technical jargon they read or heard about somewhere.  On a big project we had a problem with software performance.  I was surprised by someone who had no idea how the application worked suggested switching to Oracle as a database server, that will fix everything.  What random nerve firings connected for that suggestion?

What has your experience been?

Share

I know of company that is getting a big project soon.  Current pm staff is swamped, so they decided to look for a ‘technical’ pm.  I didn’t think it would be unusual for a pm to know something about programming or database queries and the like.

They got hundreds of responses to the job posting, but not one qualified by having any technical skills!  The job description was pretty explicit about the expected skill set required for the position.

Why would this happen? 

Are pm’s so caught up in the latest from PMSI (?sp) that they are ignoring the auxiliary skills needed for the job?  How far does that go?  Is using Excel a stretch?

Or are all the current technical pm’s with the skill set satisfied with the current employment.  Again, unlikely.

Share