I wrote my first line of code on an HP2000 in 1970 (Basic), when I was 15 years old. I've been programming ever since, on minicomputers through the 70's and 80's and on PCs from the 90's onwards. I've worked for companies with thousands of employees, on large government contracts, for the military, as a self-employed contractor, and all kinds of things in between.

I've tended to be highly skeptical of 'conventional wisdom'. I sat out the .COM boom because the behavior of many of the actors seemed obscenely silly. I've watched dozens of highly hyped 'solutions' disappear when they were exposed as unworkable, and seen a few management fads come and go. I have a few lifelong friends in the business, and a lot of ex-managers I wouldn't work for again.

I would start work for a business, and find out within a few days or weeks they were losing money, and would either lay people off or fold, sooner or later. After awhile I simply came to expect this, and learned how to jump from one lily pad to another. This meant having marketable skills, knowing what the market demanded, and more or less charting my own course, so that I had a focus and a plan no matter what.

Over time, I've had to explain all kinds of things - in writing. I've also found that it's a good idea to do this all the time, and work hard at getting better at it. I've also found that I say things people don't like to hear. I've been through lots of circumstances where I would start to defend a point of view and discover it's wrong, and then I would have to go figure out what is right - which wasn't necessarily what some counterparty was trying to tell me. In that respect, I'm willing to 'publish and revise' as circumstances dictate.