Log in

No account? Create an account
FF Sparks (Casual)

...and we wonder why our deadlines slip...

My project manager is a wonderful person. A nice guy. However, he cannot say no.

Here's how things work for the emulation group, for people who wonder what the hell I work on. We are designing a microchip made up of a number of subcomponents, which allow the microchip to reconfigure itself into other microchips. This should not be confused with FPGAs (Field Programmable Gate Arrays). In a general sense, any electrical circuit can be broken down to a series of gates. (AND, OR, NOT, XOR, etc.) A FPGA is a giant array of millions of reconfigurable gates in a chip, which you can reprogram and thus emulate pieces of hardware. The more gates, the more complex the hardware you can emulate, and the more expensive the FPGA. (They are Not Cheap.)

Now, FPGAs also have drawbacks. They run slower, and they take several minutes to reprogram, and they suck power like you wouldn't believe. (My new emulation board with two Xilinx 3200e FPGAs on it requires an entire second power supply to run it.) Our chip cannot reconfigure itself to as many different things as an FPGA, but it can reconfigure itself near-instantly (thus allowing it to flip between emulating different chips for individual subroutines), and is very fast and eats little enough power to make it suitable for embedding in a cellular phone and whatnot. But since our hardware isn't done, we emulate pieces of our chipset in FPGAs on these emulation boards.

I am in the emulation group, which means that I am responsible for writing the GUI to test the boards -- allowing us to look into the memory within the chip, allowing us to poke and prod at registers in it and set tasks off and whatnot -- as well as the API the testbed uses, as well as the script interface to allow Javascript or VBscript to be used to run tests on the chip, as well as the driver for the PCI device. The PCI device -- the Host Bridge -- is also in an FPGA, but hooked up to a PCI bus and plugged into a dummy card in my case, so that it appears like any other PCI card under Windows and needs a driver.

We are about to bring up the first Execution Unit (EU) within the chip, i.e. the first thing that specifically runs code rather than communicates between pieces of the chip. The current driver, GUI and whatnot all have all the support needed for this; Tom (the hardware guy responsible for designing the PCI Host Bridge) and I just finished ensuring that this morning. As a result, I sit down cheerily to begin working on the test scripts for poking and prodding into the EU to run code and test it. This is something we need done by December 25th...I can get this script done in a few days and once I get some actual binary code for this EU, I can test it.

Seems nice, right? And I was feeling good that we had gotten on target and eliminated the last nasty bugs of a fairly major revision wherein /everything/ -- API, GUI, scripting, driver and hardware -- all changed at once.

So then we sit down for a meeting. And in this meeting, it casually comes up that another group wants -- get this -- a different host bridge, with a completely different interface. It will require a complete rewrite of the driver, a complete redesign of the Host Bridge hardware, and a new testing GUI and interface. It will take us about two weeks, away from other tasks...and our project manager said /yes/. So, now we have to figure out how to bring up the EU and test it, maintain the existing driver and GUI and scripting layer, /and/ write and maintain an entirely different second PCI interface for another group. Tom and I are both shaking our heads and laughing, though there's a faintly hysterical edge to it. Needless to say, existing deadlines have not been moved, neither the December 25th one /or/ the January 15th deadline which, by the way, we will only get the things we need in order to write what's needed by that deadline on January 10th.

...there went my mood. Priorities are shifting and now I have no clue which thing I'm supposed to consider higher priority to get done; I know whichever it is I work on, the other one will become the priority far too close to the deadline. My head hurts. Can I go home and sleep?


Your project manager sucks.

Then again, out of the dozens of project managers I've worked with, I've only ever met one who didn't suck.

'nough said.
Oh dear God, I can relate. So badly. Well there's one deadline my boss doesn't know can't slip, it's when baby's due. He's in for a big surprise when that day comes and I just am not there. Cause he doesn't seem worried as much as I about the slipping deadlines due to feature creep.