Monday, December 8, 2008

How To Be World Class

A VP of one of the big EDA vendors once asked Jason, one of Verilab's founders, "How on earth does Verilab keep managing to consistently get such high grade engineers?" At the time, I'm sure we clucked and strutted and gave some deep theories. But in reality, our basic reply was, "Dunno. We just know 'em when we see 'em." Spotting talent is a bit like taking photographs. Just because you're good at it doesn't mean you're good at explaining to others how to do it. However, Malcolm Gladwell, whose book "Outliers" I've just finished, has something to offer on the latter. Here, in a nutshell, is what he says (he's a lot better at this than I am though, so don't worry about me spoiling things - you should still read the book).

To become world class you should:
  1. Have some innate talent. This is, however, the least difficult part. Gladwell argues that you only need talent at or above a minimum level (e.g. an IQ of 110), and that's good enough. There is little or no correlation between world classness and innate talent *above* that minimum level.
  2. Be lucky in your surrounding circumstances so that you get the opportunity to work hard on "meaningful work".
  3. Actually work hard. Specifically, accumulate about 10,000 hours of practice.
In fact Gladwell's thesis really focuses on those first two points (the third point is not new - see http://norvig.com/21-days.html). He goes to some lengths to argue that innate talent, especially once you've reached some minimum level, is highly unimportant. Conversely, he stresses that the surrounding circumstances are crucial. An example of the latter is top class Canadian ice hockey players. Apparently they are heavily biased towards people born in the earlier part of each year. Read the book to find out the details of why, but basically it's because kids born in January, February or March are more likely to get the opportunity to put in the 10,000 hours of practice that will make them great.
As I say, worth a read. But I'll leave you with a thought about how to interpret it all for your own benefit.

First, you almost certainly have the required level of talent. If you're reading blogs about EDA, or consulting; if you're interested in high tech; you're smart enough. Let's move on.

Second, you can't really know if your surrounding circumstances are bad enough to kill off your chances. How bad things seem can as often be a function of your attitude to life in general - glass half full or half empty. And I'm pretty sure that for the vast majority of my huge audience of readers it would be true to say that greatness has arisen from surrounding circumstances far worse than yours. So, no excuses here either.
Which leaves only the final point. The 10,000 hours. This is where the focus should be. A modern phrase is, "Work smarter, not harder." Well, apparently not. Work smarter *and* harder. OK, so, remember to send me a ticket when you win your Nobel Prize.

Friday, December 5, 2008

Stress Management for Entrepreneurs

Sean recently wrote about the need for entrepreneurs to learn to deal with "unfamiliar pain". I think he's right. Running a small firm, where you have to worry not only about your own welfare, but those of your team, can be a pain in the brain. That can be particularly the case in that volatile industry sector known as high tech. I'm not sure if I've learned to deal with stress, or if I've just become so used to it that it's now merely part of the background noise. But I do know that I'm now able to shrug off things that in the past would have had me rocking gently back and forth in the corner of a dark and quiet room while muttering. So here are five stress management approaches I've come up with over the years. Your mileage may vary.
  1. Moral outrage is a luxury the entrepreneur can ill afford. My parents brought me up to abhor a lie and with a strong sense of fair play. I've never minded people playing tough -- I played tighthead prop in rugby. In the winter. Near Ferguslie Park -- but I try to play things straight, and expect to be treated likewise. As a result, I have a tendency to get well-nigh incandescent if I sense someone cheating me or anyone dear to me. But in business, that is, I've come to realize, not a positive characteristic. First, genuine cheats are, in my experience, rare. Business is complex, and different interpretations of contracts and other agreements are common. One man's cheating is another man's ambiguous non-compete agreement. That's why we have lawyers. I've never really bought the idea that some things are "Just business; not personal". But I've learned over the years that it's often best to treat things that way. Second, even if genuine cheating is going on, I've learned it's more productive to consider it in the same way I would a donkey stamping on my foot. That - like cheating - is not a pleasant thing to experience. But I don't get angry at the donkey in a "How dare you stamp on my foot" sense. By classing the cheat as a donkey I reduce the discomfort to a managable level. It's still a pain, but my desire to rip the cheat's head off tends to dissipate.
  2. Learn detachment. I'm not a Buddhist, but I find their approach to detachment useful. I've actually learned the value of the phrase "Well there's no point in worrying about that." When I was younger, I found such an exhortation senseless. It implies that worrying is something we choose to do. I assumed it was pretty much involuntary. But in fact I've discovered that it is absolutely possible to simply switch off a worry for a time. The underlying concern may well still remain, but my fevered response to it can be turned down. Especially good for dealing with problems of the moral outrage variety, particularly when they're keeping you awake at night. It takes practice, but I'm no Zen monk and I've managed it. Give it a try.
  3. Control secondary pain. This is, I think, related to Sean's "unfamilar" pain. I've found that there are often two pains or discomforts associated with any given unpleasant situation. First, there's the pain itself. I stub my toe, and my toe is sore. Pain, plain and simple. But then there's the pain I experience because of the existence of the first pain. "Oh no, I've stubbed my toe. Maybe it's broken. Maybe it'll get gangrenous. Maybe it'll get infected and I'll die. My wife and kids will be destitute. Ahhhhh!!" The key difference between the two pain types is that while you may not be able to control the first pain, you can very often control the second. Moral outrage is a good example. A large client pays slowly. They know you can't afford, and don't want to enforce the clear contract payment terms. So they cheat by paying late. They said they'd do one thing, and then they blatantly break their word. The first pain - the hit on your cash flow is real. And, within typical operating constraints, there's not much you can do about it. But the second one - the anger at the very fact they are cheating - is almost all in your head. With practice, it can be controlled.
  4. It could be worse. A lot of stress is instantly lessened by putting it in perspective. Again, my awesome parents drilled this kind of thing into me when I was a kid. "The poor children in Africa would love to have your dinner", I'd be told, while complaining about Wednesday mince an' tatties. And it comes to the rescue often in running a business
  5. You are already dead. This is my favourite coping strategy, and it's best illustrated by recalling a part of the World War 2 drama series, "Band of Brothers". The scene involves a young paratrooper, Blithe, confessing to his Lieutenant that he had stayed hidden in a ditch rather than fight on D-Day. Spears, the Lieutenant, asks if if he knows why he hid in the ditch, and Blithe replies that he was scared. Spears replies: “We’re all scared. You hid in that ditch because you think there’s still hope. The only hope you have is to accept the fact that you’re already dead. And the sooner you accept that, the sooner you’ll be able to function as a soldier’s supposed to function...” It may seem a bit dramatic to treat business like the assault on Carentan, but it works for me.

Wednesday, December 3, 2008

Excel-lent (update - or not)

All is forgiven. The automatic HP update demon has just offered to give me a new and critical (yellow triangle an' all) update. I'm assuming it's going to fix my Excel problem. So I'm happy. Well, kinda. A bit. OK, not at all really. Turns out the update (coming, remember, via HP's own Vista utility) is entitled:

"?? HP ??????????"

with a description of:

"??????,??????????? HP ??????????????????"

:-/

Tuesday, December 2, 2008

Excel-lent

I put my car in for repair last week.
It took them quite a while to find the problem.
Even now, they're not sure it's completely fixed.
The problem seems to be that I use too much vinegar when making my sweet and sour sauce.

OK. The above story is a lie. The following one is not.

The growth in demand for Verilab's services appears to be unending. (Yes, yes, I know there's a recession on and stuff, but no one seems to have told our clients yet.) So, I'm always looking for a tool that will help us shuffle about our existing team, and expose exactly who/what/when we should hire to fill the gaps. Believe it or not, we used to, in Verilab's early days, use some pasta shapes with sharpie-inscribed initials on them. But we've moved on a bit since then. So I occasionally try out a few likely software candidates. So far, I've always ended up settling back on Excel as the best quick fix.
Until today.

The idea is simple. Each person's initials go in a cell, with a different background color for each. Then copy/cut/paste/drag can be used to move people about. Now, we already have more people than base
colors, so I was using light <color> for one person, and dark <same color> for another. For example, one consultant was dark (or, knowing this consultant, "deep") purple.  Trouble is, the default black font  doesn't show well against the dark. So I changed it to white.

Excel crashed.

I tried again.

Excel crashed.

I rebooted my machine and tried again.

Excel crashed.

I tried again.

Excel crashed.

Then Vista threw up one of those as-helpful-as-that-infernal-paperclip "we know how to solve this problem" boxes. Sighing, I clicked the "Fine, go on then" button, and it gave me:

"This problem was caused by a known issue with your Hewlett-Packard printer driver, which causes Microsoft Office 2007 programs to close unexpectedly when your HP printer is set as the default printer. Hewlett-Packard is aware of the problem and is working on a solution."

Knife. Wrists. Slash.
I'm off to buy some pasta shapes.
In the meantime:
  1. If you know of a simple resource-allocation tool, please let me know
  2. As ever - if you're an exceptionally strong verification engineer and programmer with a minimum of five years experience, only happy when wrestling with the toughest challenges, longing to travel, and want to join the best team of VLSI verification experts on the planet, what are you waiting for? Give us a call!

Wednesday, November 19, 2008

Connecting geographically distributed consultants

[Re-hash of a posting I made to the PSVillage forum]

Verilab is a multi-site, two-continent, three-country firm (UK, Germany, Texas), with consulting teams scattered across clients from the US West to East Coasts, to umpteen places in Europe, and with growing presence in Asia, the Far East, and South America. The challenge is helping my team to remember that they are a team, that they are my team (i.e. that they are Verilab as opposed to <whatever client they may be in>), to let them benefit from being that team, and to do all of that across space and time (zones).

To help keep us all together, we've tried (and still use) a number of tools and techniques, including:
  1. Company-wide email lists. This is the oldest mechanism. We used to have several of them - some technical, some business, some serious, and some for Friday afternoon nonsense. But we realized that volume is important for lists, and too many lists each with too little volume would die. So we merged them into one until such time as the volume gets too much. This works well, but needed a lot of care and nurturing to begin with. Some shy individuals still hide in the shadows too much.
  2. Company wiki (we use Twiki). This has lots of potential but hasn't yet worked as well as I'd hoped. We have a ton of stuff on there, but lots of "entropy food". There is a core of material that is useful, but a lot that is old and hairy. Overall, it's worth having, but probably needs more personal attention.
  3. Internal blogs. Some success. This seems to be a very personal thing. Some people love to tell other people what they're up to - and some don't. This is a horse I'm still flogging, because I think it's A Good Thing.
  4. External blogs. More success. My ideal would be that there would be *only* external blogs, but then there's almost no chance of getting the quiet shy people to speak up. Also, see point below about Yammer versus Twitter.
  5. Yammer. A surprising recent success. We messed with Twitter, but that's externally visible. One of my guys found Yammer and we gave it a go. All of a sudden, people are ... well, yammering back and forth across the Atlantic. The odd one-liner of status, occasional yells for help, and even the beginnings of technical discussions that then move onto some of the more appropriate forums (like our mailing list). My aim was that it provide the same sort of impromptu conversation that
    co-located people get by standing up and yelling over their cubicle wall. Seems to be achieving some of that. The fact that Twitter (public) got very little uptake while Yammer (internal only) took off was noteworthy. As with all of this stuff, the human issues are more important than the technical ones, and obviously feeling safe that your conversation was only among "family" was an important human issue. Recommended if you want to try something out.
We've also dabbled with the usual meeting-enhancing suspects, including:
  • GotoMeeting - works fine, does what it says on the tin
  • Skype - ditto. We use this a lot for one-to-one, and occasional video conferences. Multi-cast video would be cool.
  • Shared Google Apps presentations. Just tried this last week and it worked great. Much Cheaper than GotoMeeting, and if all you were using that for is PowerPointing, Google may be worth a look.
We've had at least one such meeting where the attendee list was:
  • Group A - Austin, TX office
  • Group B - Munich, Germany office
  • Attendee C - at home in Edinburgh, Scotland
  • Attendee D - in his car in Texas
  • Attendee E - in Bristol, UK airport waiting for his flight
Worked surprisingly well.

Overall, the degree of technical collaboration we've achieved is, I think, superb. I see detailed technical inquiries flashing back and forth and being answered with a speed that the official support channels of the tools we use just can't match. And ramp-up time on any given skill is dramatically reduced for any engineer who wants to yell for assistance on a new area. This has huge positive benefits for our clients too. It's rare that any single engineer can know every answer to every question instantly. But in Verilab, our clients can get access, through any one consultant, to the much larger "verification hive brain".

Monday, September 1, 2008

And all meetings must now be carried out in Esperanto

Psst. Would you like to hear a secret? It could help you and me make lots of money. Maybe we'll be famous too. Either way, it's a really cool secret. Want to hear it? I have a condition though, before I tell you.

I need you to agree not to go off and exploit the secret without me. I've put quite a bit of work into figuring it out, so I want you to work with me, not against me. Of course if it turns out that you already knew the secret - maybe I'm only imagining that it's cool and new - then the condition doesn't hold. But if I'm really letting you in on a proper secret, I need you to agree to work with me, not against me. Sound fair?

Now, let me be clear. I will not be offended one bit if you don't want to hear the secret. I'll say that again. No Hard Feelings. Really. Some people don't like secrets. That's OK. And if you're one of those people, fine. We can even still work together. But not on the secret.

So, what do you think? I give you the secret. In return, you give me an assurance that you won't use it without me. Are you in? 

If you said "yes", you and I have just made a form of "Non-Compete Agreement", something that the worthy Joel Spolsky says is, in the context of employment contracts, "completely outrageous". His remedy reflects the fact that, whether he likes it or not, Spolsky is as good a salesman as he is an engineer (which is, incidentally and as far as I can judge, very). His remedy is to point out to engineers-under-pressure-to-sign-a-non-compete that they may have a bargaining chip. He suggests:

"If the employer absolutely, positively insists that you promise not to go work for a competitor when you leave your job, you can tell them: "fine. You don't want me to work for a year after I leave, that's fine, but if I'm going to be 'on the beach', I want you to keep paying me my salary for one year after I leave, until I can legally get a job that you approve of."

And you know what; providing that is proposed in the same "no hard feelings if you don't accept" spirit that my original "you must not use my secret against me", it's a reasonable tactic (although not one I'd recommend). The potential employer can weigh the costs and benefits, just as the potential employee can. And both can decide according to their own sets of individual priorities.

But suppose they - both employer and employee - were forbidden from doing that weighing. Suppose Someone Else decided that under no circumstances is a non-compete permitted unless the employer continues to pay salary after the person has gone. What that Someone Else would be doing is effectively imposing a form of minimum wage. They'd be forcing the employer to pay above a certain mininimum OR NOT AT ALL. That Someone Else would have taken the ability of the potential employee to try to work a deal and turned it into an Unalianable Right. And I've already argued how careful we have to be with those.

So, does such a Someone Else exist. Well, yes it seems they do. And, unfortunately, it's the German government again. Here is the clause - something identical being legally required in Germany - covering non-competition in a new draft employee contract I just reviewed for a business partner in Munich:

"During the non-compete period the Employee shall receive a compensation which amounts for every year of the prohibition to half of the contractual benefits last received by the Employee."

Remember, there is no negotiating on this. The Employer has only two options if he feels he must protect the secret: he can either have the non-compete and pay money to the Employee after they leave; or he can simply not give the Employee access to the secret at all. There is NO MIDDLE GROUND. Even if they both agree, the Employee and Employer cannot make that agreement the basis of employment. (Well perhaps they could; but it would be unenforceable).

So, with a simple swipe of a pen, some bureaucrat has added another nail to the coffin of German engineering employment. Because with that pen, said bureaucrat has made Indian, Chinese, Roumanian, you name it employees more attractive (to the extent that those governments have a more laissez-faire approach) by making German employees less attractive.

They may as well have said that all meetings in Germany must be carried out in Esperanto.

Tuesday, August 26, 2008

Much Ado About Methodologies

ACT 1 Scene 1
It's an an early morning in Verilab Austin. Tommy's office. He's just picked up Davie Robinson who is visiting from the UK Verilab team. Davie's now working in the conference room with JL, while Tommy goes over his email. As he works his way through the list, a sequence of visitors arrive, either physically or via new emails or IMs:

[Davie pops his head through Tommy's office doorway]


Davie:
So, when did we standardize on the VMM?

Tommy:
When did we what?

Davie:
The VMM. You said we standardized on it.

[JL arrives next to Davie]


JL:
Why did you say we've standardized on the VMM?

Tommy:
[suspicious] Who says I said we standardized on it?

Davie and JL:
[together - pointing to a press release] That did!

Email from Gordon (Verilab UK):
Seems we've standardized on the VMM

JL:
Did you see Gordon's email?

Tommy:
Hang on I'm ....

Email from Mark (Verilab Germany):
I'm using OVM at the moment. Am I supposed to stop?

Tommy:
%*&!$....
[Exeunt JL and Davie. Backing away, slowly]


Here's the reason for the consternation:

http://synopsys.mediaroom.com/index.php?s=43&item=605

You see, the trouble with press releases, as any political press secretary will tell you, is the devil's in the details but the message is in the large. You have to keep an eye on them both. Here's the core of our quote:
"We have found that VMM can act as a key component in such a deployment [of an effective methodology]..."

And that does indeed reflect the reality of our day to day work. The VMM really can, and in fact does, add significant value to chip teams. We have deployed, are deploying, and will continue to deploy the VMM at clients where it is appropriate. Now as is normal with press releases, that phrase and others went through various revisions, back and forth between us and the final editor.  But in the end, the meaning stayed intact. Now look at the bigger context:

"Leading European Design Consulting Firms Standardize on VMM Verification Methodology"

Unfortunately that can obviously be interpreted as:
"Leading European Design Consulting Firms Standardize EXCLUSIVELY on VMM Verification Methodology"
And of course in Verilab's case, that isn't correct. Here's why.

Verilab tries to plough a scrupulously objective furrow in EDA when it comes to tool vendors. Our primary allegiance is, rather, to our clients. And while we consider Cadence and Mentor and Synopsys (see how they're in mere alphabetical order) among several others to be our good friends and partners, we are exclusive to none of them. And by "objective", we don't mean we'll say the same amount of nice things about each vendor. If vendor A's offerings were consistently inferior to vendor B's for a given client, we'd tell the client (and, if they were open to our advice, the vendor). And if A was consistently worse than B for everyone else; well we may well tell everyone. That's our job. And it's why our clients like us. We're not just contractors, we're consultants. We've seen more chip flows, across more tool suites, in more clients and more countries than most any other team on the planet. And we have no hidden tool agenda. If a spade needs calling a spade, we'll do it. So if the amount of nice (or nasty) things we say about each vendor happens to be the same for each, that's because that's how we call it. And in fact, that *is* in general how we call it. Our view is, consistently, that choice of tool vendor is not, from a technical point of view, the decisive factor in verification capability. Verification is fundamentally a problem of Peopleware; not, per se, Software, or Toolware.

So there you have it. Verilab absolutely believes that the VMM can be a key component in the deployment of an effective verification methodology. But it is not the only such key component and it is not the only approach used by Verilab.


It is, as Shakespeare said, my bad. None of this was the fault of anyone at Synopsys.