A couple of weeks ago, Mathias Meyer wrote an article entitled “From Open (Unlimited) to Minimum Vacation Policy“, detailing how his company, Travis CI, has moved from away from an “unlimited” vacation policy. Mathias found that the dangers of unlimited vacation policies were coming true: Engineers weren’t taking any or enough vacation to avoid burning out. So, he decided to move Travis to a model where a minimum amount of vacation is required. Sounds great, but doesn’t it seem like we’re right back where we started? Isn’t this just a traditional vacation policy couched in different terms? And what was so bad about traditional vacation policies, anyway? Continue reading
Technology
There are 43 posts filed in Technology (this is page 3 of 5).
Building the Data General Eclipse MV/8000, or, lessons from product development in the 70’s
A couple of weeks ago I finished reading Tracy Kidder’s 1981 Pulitzer Prize-winning book, The Soul of a New Machine, in which he followed Data General (DG) engineers around for over a year while they tried to pull a miracle minicomputer, codenamed “Eagle”, out of the company. The firm’s survival was on the line. They were being slaughtered by Digital Equipment Corporation’s VAX 11/780 and they needed a winner, badly.
DG’s “new machine” ultimately became the Eclipse MV/8000, a name that, like the CDC 6600, is nearly unrecognizable to anyone today besides old computer nerds like myself. In other words, it’s damn hard to build a company that lasts. Both DG and its main rival, DEC, are gone, shoved aside by the PC revolution and the march towards inexpensive, x86-based servers running Linux. And so if you work in technology, you probably feel (or should feel) an immense sense of urgency, because there is always a surplus of discontinuous innovations just around the corner to disrupt whatever you’re working on right this instant. And those disruptors will in turn be disrupted by others, and then by yet others… Continue reading
Good to Great: Pretty good, 13 years later.
This is another in a series of reviews on management & leadership books that I’m doing on the blog.
Last week I finally sat down and read Jim Collins’s Good to Great: Why Some Companies Make the Leap… and Others Don’t. Obviously, at Chef we’re trying to build a great company, and I thought this book would show us a way forward.
Good to Great was written in 2001, so you might be wondering why it’s taken me 13 years to crack it open. Well, quite honestly, I once had a co-worker and friend who was given this book upon starting a new job, and he scoffed at it. In retrospect, I think he did so because it was obvious that his employer was most definitely not on the path to greatness. The notion that handing out copies of a business book could fix their dysfunctional culture & failure to execute is laughable. It’s about as useful as giving anti-drug pamphlets to a meth user. In any case, I associated his mockery with the conclusion that the book is bad, which it most definitely is not. Continue reading
How to be CEO: Ben Horowitz’s “The Hard Thing about Hard Things”
This is the beginning of a continuing series of reviews about books on management and leadership. Think of it as a “papers we love” but for folks who have chosen to pursue a non-technical path in their engineering careers.
At some point I figure I’d like to be CEO of my own company. So it was with great interest that I picked up Ben Horowitz’s “The Hard Thing about Hard Things”, which is partly a memoir about his time running LoudCloud and Opsware, which he eventually sold to HP in 2007 for about $1.6 billion. Along with Marc Andreessen he then went on to found the well-known Silicon Valley venture capital firm Andreessen Horowitz, which has invested in Facebook, Foursquare, GitHub, Pinterest and Twitter, among others.
From this CV it sounds like he has been wildly successful as an entrepreneur and CEO. But like all Hollywood stories (and Wikipedia articles) it glosses over the twists and turns in his career that, for instance, almost saw LoudCloud go bankrupt several times. (He also pivoted the company from being a cloud services and hosting company to a product company, nearly bankrupting it again.) Horowitz claims that many management books out there only give you advice about the happy path, but don’t teach you how to deal with adversity. That’s where the book comes in: no-nonsense advice about the many difficult situations you’ll find yourself in as a CEO. Continue reading
Canada’s mobile network: hostile to visitors
Recently my wife and I returned to Toronto for our Christmas holidays. Though we haven’t lived in Canada for over two years, I remember the cellular plans being outrageously expensive compared to the United States or Europe. Since then, it appears they’ve gotten slightly better, but only for residents who have long-term contracts. Visitors, sadly, are out of luck.
Both of us own unlocked iPhone 4Ses, so I thought we could just waltz right into a carrier’s store, buy a SIM card, plunk down some money and get some data for the week. After all, this is what we did over in the United Kingdom in September. Each of us paid £10 for a SIM and got 1 GB of data. (Actually, they give the SIMs away for free. The £10 was just for usage.)
Astonishingly, there’s no such option in Canada. All the plans, even the so-called “prepaid” ones, are designed for long-term-residents. I was told by Virgin and Fido representatives that I’d need a Canadian billing address (!) and the only way to get service for a month would be to sign up and cancel within 30 days. Furthermore, the data rates are outrageous. Here’s what Fido is charging for Data Add-ons for a month:
$35 for 1 GB for a month? Are you kidding me? That’s almost the price of my entire cellular phone plan in the United States for a month!
As a last resort, I went to talk to a third-party reseller, the ones who represent multiple carriers. I told the rep what I wanted. He laughed, then said, sheepishly, “It’s not possible. Canada’s cellular phone companies don’t have pay-per-use data plans.” Then he told me to call Verizon and get a data roaming plan! “It’ll be easier that way,” he said.
If you want to see how good the pay-as-you-go plans are in the UK — and they really mean pay-as-you-go, as in you don’t need a billing address — go check out T-Mobile UK’s “SIM Card Only” page. Reading it again made me think: if Canada Post is saving all this money by killing off door-to-door mail delivery, why don’t they start a telco that’ll give Canada some real competition in cellular services?
No idea what Veewee’s all about? Watch my screencast!
A couple of days ago I wrote a post about Veewee, the automated boxgrinder for Virtualbox boxes. But if you had no idea what Veewee was, all that detail wouldn’t have made much sense to you. So I threw together a quick screencast on YouTube. Here it is!
Book Review: “Instant Chef Starter”
Packt Publishing has released “Instant Chef Starter“, a tiny (70 pages!) book on getting up and running quickly with Chef. I’ve posted a full review over at Opscode’s corporate blog.
Autoscaling Builds with Jenkins’ EC2 Plugin and Chef
One of my last projects at SecondMarket was to automate and rebuild the Jenkins infrastructure. We’d previously had a static setup in the NYC office with a build master and three slaves that ran all the time, but this handled developer check-in storms very poorly. For example, when developers were trying to make code cutoff for a feature, many builds would be queued for lack of available executors. But at other times, these agents would be completely idle. It made more sense to move the entire setup to the cloud and implement some kind of auto-scaling for Jenkins. Continue reading
When Application and Library Cookbooks Fail
Apologies in advance if you’re not interested in a post about the guts of Opscode Chef.
I recently started to adopt Bryan Berry’s application & library cookbook model as outlined in his excellent and funny blog post, "How to Write Reusable Chef Cookbooks, Gangnam Style". But I quickly ran into a blocker, because people are trying to solve problems using the compile phase and not the execute phase of Chef. Perhaps this calls into question the entire viability of compile-phase providers like chef_gem. Continue reading
Automating Atlassian JIRA, Confluence, and Crowd Installation with Chef
As a user, I’ve always been impressed with Atlassian‘s products for software development, issue tracking and documentation. For companies who take these things seriously, JIRA, Greenhopper and Confluence are quickly becoming the go-to products, and with good reason: the products are easy to get started with but have the enterprise features that allow a company to customize workflows as their business changes. I hate to slam open-source products but just try doing what JIRA does with Bugzilla or Trac.
The products themselves, though, can be a nightmare to install, despite the fact that they are mostly just Java web applications living in a WAR file. The products have improved immensely from the days when setting them up involved hacking up a multitude of XML files in WEB-INF (though there still is some of that), and it’s still annoying that Atlassian doesn’t support running the applications as unexploded WARs within Tomcat or another servlet container, probably for the aforementioned reasons. All that aside, though, it’s satisfying when everything is working together and users can single-sign-onto the entire Atlassian suite because of the magic of Crowd, Atlassian’s SSO directory server.
Last week, I released a set of Chef cookbooks I wrote at SecondMarket to ease the installation of the Atlassian tools on a server. I’m still looking to automate more parts of this, including the ability to edit the aforementioned XML files in-place in an idempotent way, so pull requests against our GitHub repo would be welcome.
Special Note on Using Atlassian Products in the Amazon Cloud
I should also mention that my first attempt to set up Atlassian’s products using Amazon Relational Database Service (RDS) as a backing store was a failure. To spare you the pain of finding this out yourself, I’ll just mention the reason: Crowd, JIRA and Confluence expect MySQL to be configured with READ-COMMITTED transaction isolation level, which means you need to configure MySQL to have row-based binary-logging. Unfortunately, binlog_format is not a parameter you can configure in RDS’s DB Parameter Groups, for obvious reasons; it would affect all other clients on that MySQL instance. This has been confirmed with Amazon support, so JIRA/Crowd/Confluence with RDS is a no-go.