Monthly Archives: March 2020

Project Management

Are you part of the problem or the solution.

My new job was at this small software company located in the suburbs of San Francisco. Sounded exotic to me over the phone but on first arrival I was surprised that the suburb turned out to be rather dull.  Flat, no hills.  A huge multi-story shopping mall with a car park for hundreds of cars.  Sure, there was a short street for a few old shops with white painted interesting looking wood fronts, but didn’t see anyone there shopping and I could not work out what they were actually selling with my drive by.

The company building was new, though it looked to me that it could have been built out of cardboard over the weekend as it was a one level rectangle box with a flat roof in the middle of no where.  This building too was painted white, or on closer inspection, a little off-white with white trim around the only two noticeable and empty looking windows.  Marvellous.

With car spaces on three sides of the building adjoining vacant land that was covered in weeds, there was space for everyones car, including my old faded light green Buick.  One could either enter the “building” through the open front door to the reception or through the closed side door that required a security card.  

The reception was a wide room with two doors, one to the left and one to the right, both requiring security cards.  These two doors effectually dived the company down the middle.  The side I was on was for the product developers, the smaller of the two sides.  The other side was for support, help desk and those sorts of operations.  I wish I had taken a photo of this building to show how boring it looked, despite what one might think was an exciting job, working for a software company in San Francisco’s Bay Area, as they call it there.  Nevertheless, what the building lacked in excitement was made up for 100 times by the developing drama inside the building.  One that I had accidentally walked into.  Made me wonder if no one else wanted the job and I was the bunny from out of town.

The HR department informed me they had 300 employees, now 301, I figured with me.  

This companies product was tailored to a boutique service industry, unique to California, with over a hundred existing customers.

My allotted assignment was to write the specifications for the system that would be implemented to basically run in browsers instead of as an application.  This was the modern tend everywhere of course.  The idea that running on the cloud was better for some reason than running it as an application on everyone’s own computer.  This was a marketing decision that would have been useless to argue with.  Besides, I wanted a job.  What was really driving this products conversation was that they had a competitor targeting the same customer base.  They were in LA and apparently this competitor was way ahead of this company in porting their software to the cloud.  Hence, this company I had started with were in “catch up” mode.  They figured they had about 6 months or they would be out of business.  As it turned out, they were correct.  In the mean time, from day one, there was supposed to be immense pressure in the room I was in, though I didn’t see it as everyone went home at 5pm.  Very strange.  I should have twigged from that observation, but what did I know.  We were all paid by the hour, so I thought that may have explained it.

I soon discovered was there were 432 software modules to be re-written.  Talking to the others there I also discovered I was one of a only a few who could understand the old computer language these programs were written in.  Another reason I was able to get the job, I suppose.  

Moving on, the database on the central server was to stay the same ( so our existing customer base would stay ) which meant the new software had to find ways to access the data in the pre-existing formats.  All the screen design was going to be new.  My job was to design these screens and work out how they interacted with the operators ( ie users ) and how they interacted with the database.  There was no documentation and all I had was the existing source code to the pre-existing system.  Naturally.  Would have been very silly to even ask.  

Each Monday morning at 9am there would be a group meeting in an inside room with a large white table in the middle that we would all sit around with a white board at one side.  At the start there was only 5 of us in these meetings.  The project manager ran these meetings by progressing around the table asking each of us were we were up too.  I was new and for a few weeks I was happy to get away with not having to report much progress.  My evenings after work often consisted of meeting others at the local bar.  I quickly learnt that my boss, the project manager, was not only a regular cocaine user, he was also related to the CEO of the company which neither didn’t seem to alarm anyone.  Then again, perhaps everyone was on coke and I didn’t know it.

The days between these Monday morning meetings, we all persisted in the conversation around the floor that were perpetrated in these meetings, that we needed to have this project working before mid-year, otherwise we were all sunk.

The bottle neck I soon discovered was writing the specifications for this new system.  It wasn’t really in writing the new versions of these programs, that was reasonably easy delegated and divided into various teams to work on in parallel.  The fundamental problem was working out what the existing source code was supposed to be doing.

My project manager in these Monday morning meetings soon developed a spreadsheet with 432 rows, one row per software module.  He was very pleased with his creation.  Across the top of this spreadsheet were progress columns, such as “Specified”, “Coded”, “Tested”.  He would then produce a weekly graph of progress, with the name of who had done what.  After each meeting he was able to report the progress to his boss, who then reported it to his boss.

Two busy months in, this graph was looking like we were perfectly on time to reach the dead line for delivery.  The graph showed that one third of the modules had been converted and tested.  Unfortunately for me, it also showed that I was the slowest worker.  Each week others in the team were able to report they had converted several program modules and I would be lucky to be able to report one.  It didn’t look good from a management point of view.  My excuse was that I was working on the largest software modules.  This excuse was starting to wear out.  I had in fact decided from the start, to choose the most difficult modules.  To dive straight in.  Seemed like an obvious place to start to me.  The others though, picked the easiest modules, like menus, modules consisting of one page or less of source code, nothing complicated.  Mine though, were hundreds of pages with complicated processing.  

Apparently unbeknown to anyone else, the added danger I saw in what I was doing was that how on earth was I to verify what I specified, given that there was no test system to run against.  Probably my first mistake was to mention this at one of these meetings, as the reluctant response was to allocate someone else to review what I wrote.  What I had been hoping for was to be allocated an expert on the system to test my new processes, to see if they were correct.  Alas this other person they did allocate was not familiar with the existing product even though they were from the other side of the building but delighted to find they had a computer science degree.  Of course they too were unable to verify what I had written as they also had nothing to compare it with.  From talking to him outside the building I gathered they were already looking for another job.

Looking at my own time keeping it became clear to me that I was spending 90% of my time formatting the screen layouts.  I was instructed to code up these screen layouts, even though I was not familiar with doing such a thing.  I suggested that if I simply drew the screen layouts with pen and paper, then someone else who was much quicker then me in that screens language, the time taken to specify the new systems would be drastically reduced.  Management refused however, as they said those people ( who had been employed there for years ) were busy with existing products and didn’t want to be pulled away from them.  I was only on a contract after-all.  In hind sight, another reason was probably to allow the sales people to show my finished specification with nice pictures of screens, to prospective customers, to show them that we had a new working system.  So I slugged away with these complex parts of the system.  

In desperation, I printed out all the whole source code to the system, all 432 modules.  It was 1.5 metres high ( 4 feet ).  I had tied up the main printer for the afternoon, much to everyones amusement.   See picture.

The 432 Modules

With a red marker, I coloured in the side of the modules that had been converted and tested.  It amounted to less than an inch of red marker.  When I showed my boss this pile of printouts and where the marker came too, he said, “That’s interesting” and walked away.  I multiplied out how long it would take to reach the end of the project, going by the fact that it had taken about 2 months to complete one inch.  It came to 17 years !

The really strange thing for me was that no one on the project seemed to care.  My colleges would typically say “what are you worried about, you are being paid ant you.”.  I guess they felt that at least they had six months of being paid, at a great hourly rate, so why spoil it.

Then one after noon I received a message that my boss wanted to see me.  I knew what this was, so I said this is it then”, to my friend and neighbour.

On entering my bossed office, I said, “you wanted to see me?” and sat down in front of his desk.

He put his hands behind his head ( a little awkwardly in my opinion ) and learned back in his chair against the wall behind him.  This new manoeuvre of his seemed to me to have been instructed to use against me by his never present uncle, the CEO of the company.

After a brief second he said “I don’t know what is happening here”.

I had had enough myself and was not about to grovel any more and simply said without a hesitation “I agree with you.”.

It took him a few seconds for him to understand what I had said, instead of grovelling and asking for forgiveness or whatever.

He suddenly went red in the face, straightened up and yelled, “Your fired”.

“Fine with me” I calmly replied.  He promptly called security who were there in 60 seconds, took my security card and marched me out the side entrance.  That was it.  Welcome to America.

Six months later I learnt from a friend I had made there that the company had gone bankrupt and 300 people had lost their jobs.  The sad part me for me was that we could have delivered the product on time, but management apparently never believed we could.  The CEO had been focusing on selling the whole comply within six months, which accounted for his usual absence.  I was apparently getting in the way by not smiling and telling everyone we were on schedule.

Sacking me would not have helped, I suppose, as everyone knew I had been saying we were behind.  Of course from managements point of view, I was the problem not the solution.  Ho hum to that.  I know we could have made it with a few small changes, a big call yes, but I knew what I was talking about, it was only arithmetic.  If a programer familiar and competent at programming screen layouts had been allocated instead of me, I would have been 10 times faster and the system at that pace would have been completed on time.  Simple.

Lake of trust from the management, yes.  They certainly were not telling the truth and understandable that in return they trusted none of the programmers either.  So off we all went, the programmers, like the gun slinger in a western, riding into the sunset onto the next disaster.

© 2020, James Harry Burton. All rights reserved.