Bakul Shah writes:
IMHO the real issue is that the software folks are *not* providing
and *can no*t provide any sort of guidance for general purpose
computing, as the memory underlying modern programming languages
is so far removed from reality. The situation is sorta like what
happens with people with newly acquired incredible wealth but no
background in how to spend or manage it wisely (and I don't mean
*investing* to get more wealth). At least in that case there are
people who can help you and a tremendous need. Here we can put
billions and billions of gates on a chip and even do wafer scale
integration but these gates are not fungible like money.
Are you sure about this? Or is it just that the hardware folks got to
work without ever asking software/systems people for input?
Reminds me of a UNIX workstation project that I was working on at a startup
in the mid-1980s. The graphics hardware guy came from DEC and had his
designs well under way before I was hired. I looked at his specs and
asked WTF? He had put a lot of work, for example, into blazingly fast
frame-buffer clears. I asked him why and he told me that that was a very
important thing to DECs customers. He was crestfallen when I told him
that I would never use that hunk of hardware because we were building a
windowing system and not a standalone graphics terminal. So yeah, he
built useless hardware because he never asked for system design help.
It's not just compute hardware. Was working on a project in the 1990s
that you might be connected to if you're ever in the emergency room.
After I hired on, I looked over the schematics for the device and kept
asking "What's this for?" Answer was consistently "Thought that it
would be useful for you software folks." My response was "Hey, we're
trying to build a low-cost device here. We don't need it, take it out."
The common thread here, which I don't know if it applies to your example,
is that hardware has traditionally had a longer lead time than software
so commonly a hardware team is assembled and busy designing long before
any software/systems types are brought on board.
Sometimes it makes sense. I'll never forget a day that I expected to be
walked to the door at a company but to my surprise management backed me
up. A big failing of the company was that the lead chip designer was
also a founder and on the board so was hard to hold to account. This
person could always find a better way to do something that had already
been done, so perpetual chip redesigns meant that the chip never happened.
I was in a weekly status meeting where the hardware team presented its
status and schedule. When it was question time, I asked something like
"So, if I look at your schedule this has 2 weeks to go and this has 5 and
so on, meaning that there's 20 weeks of work left. Does that mean that
we're not gonna tape out next week like it says on the schedule?" I got
reamed up and down for not showing respect for the ever so hard working
hardware team. I think that what saved my butt was pointing out that I
was not criticizing the hardware team, but that we had a big hiring plan
for the software team once the hardware was on its way, and only so much
money in the bank, and maybe we shouldn't be spending that money quite
yet.
Jon