If Devs Own Testing, Ops Owns the Environment

by on July 25, 2013 · 0 comments

The devs are all writing automated tests and some are even experimenting with TDD. Congrats! But what happens when the build server breaks? Who’s taking care that Continuous Integration is running smoothly? Seems to be an awful lot of red in there…

Unlike writing the first basic tests, CI is hard. Did the test fail due to an application bug or is it the environment? Once again, the dreaded chant of “it works locally” is taken up. What most people fail to understand is that the failing test is the first sign of a communication breakdown between developers and sysadmins.
[Read more…]

Leadership In the Online Age: A Reflection On Team-Building

by on July 18, 2013 · 0 comments

In the last decade of my career, I’ve been extremely fortunate to have worked with some of the best people I’ve ever known. A big contributing factor to this is the tech-savvy, expatriate culture that exists here in Munich as well as the type of people you typically find abroad who have left their home countries to pursue their dreams. It’s a dynamic that provides an immediate and powerful bond: we have to learn an a lot of things in a short timeframe and sometimes we’re terribly homesick, but we’re not alone. When we combine our strengths and help each other, we achieve something great.

For as many teams as I’ve had the privilege of leading, I’ve often been asked how I did it? How did I take six or seven individuals from different countries and turn them into a team? The question always catches me a bit off-guard because I don’t consciously do this – and I think that’s key. You can’t force anyone to work together as a real team and the harder you try the faster you’ll push them apart. Plus, it’s currently a developers’ market. They can work wherever they want to and they know it! How do you walk this tight-rope and successfully lead a team of rockstar developers?
[Read more…]

Prerequisites for Continuous Deployment

by on May 3, 2011 · 2 comments

Although we’ve skirted around the edges of Continuous Deployment on this blog, we haven’t really gone into any details. The main reason for this is simply that neither Matthias nor myself have ever continuously deployed to our production environments.

How hard could it be? Well, like with most engineering endeavors, it’s about 99% preparation and 1% implementation. Unlike Continuous Integration, however, continuous deployment (CD) involves business as well as technical considerations. Let’s outline them and see how close (or far) we are to the holy grail of DevOps.
[Read more…]

Stealthily Introducing Agile from the Bottom Up

by on March 22, 2011 · 3 comments

Even today, in the 21st century, it’s rare for CEOs to steer their companies into agile waters. Change is hard, scary and leads into the unknown and changing an entire organization compounds all these fears. But, there are subtle, yet significant, ways in which you can organize your own work to be much more agile. And, as you gain confidence and understanding, you can transfer the learnings to your team. If things go well, and you’re able to effectively communicate these successes, you might even show your entire company how to change for the better. Using the metaphor of crawling, walking, running to represent progressive improvements, here’s how I’d do it.
[Read more…]

Moving Static Resources to S3

by on January 27, 2011 · 3 comments

We moved our static resources to S3 back in May of this year. The transition was so ‘simple’ and seemless that it’s hard to believe we’ve been using it for over 6 months now. Matthias is now thinking about doing the same and asked me for a howto including any pitfalls and caveats that I stumbled upon along the way.

Did you know that the first release notes for S3 date back to March of 2006? It’s pretty safe to say that Amazon’s Simple Storage Service (S3) is a very mature service. S3 – just uttering those 2 characters alone bring up visions of fluffy cloud coolness and limitless storage arrays. But is it a real business advantage? Half a year later, I’m completely convinced.
[Read more…]

Selenium Testing in the Cloud with Sauce Labs

by on October 19, 2010 · 1 comment

One small comment for Matthias, one giant leap for our testing infrastructure. In my last post about anti-fixes, I expressed my reservations about selenium test automation. Matthias mentioned the companies Sauce Labs and Cloud Testing maintained virtual test server farms so that I wouldn’t have to. Here’s why Sauce Labs made my choice super easy:
[Read more…]

Back to the roots: Bridging the Deployment Gap

by on November 3, 2009 · 0 comments

Matthias and I started this blog over a year ago because we had first-hand experiences with the rift between developers and sysadmins. We knew this was a lose-lose situation not only for those directly involved, but the companies they were working for as well. We’ve described many real-life examples of how to overcome this rift, but were never sure how these ideas were resonating out there with our fellow colleagues. How many developers had moved into the operations realm? How many sysadmins knuckled down and wrote end-user code in a pinch?
[Read more…]

Dev and Ops Cooperation

by on July 10, 2009 · 6 comments

John Allspaw and Paul Hammond did a great presentation at Velocity 2009 about the tools and culture at Flickr, which enable them to do 10+ deploys per day.

My favorite quote is:

Ops’ job is NOT to keep the site stable and fast [but]
Ops’ job is it to enable the business (this is the dev’s job too)
The business requires change

They go on by presenting the dilemma of discouraging change in the interest of stability or allowing change to happen as often as it needs to. This is where they introduce their tools and culture for lowering the risk of change.

In this post I want to share with you how we use some of the tools John and Paul mention.
[Read more…]

Setting up a test database on a ruby on rails continuous integration server using SQL instead of schema.rb

by on June 18, 2009 · 4 comments

For developing our Ruby on Rails based web site, we usually take regular SQL dumps from our production servers (of course, anonymizing sensitive customer data along the way). Always having a fresh dump allows us to be on the safe side when writing database migrations. Having an up to date development database enables us to run our test suite as well; it’s just a matter of rake db:test:prepare to get our test database up-to-date. So far, so good.
[Read more…]