Test Driven Chef Cookbooks With Meez

by on February 6, 2014 · 0 comments

When cooking a new dish, things get out of control if you try to manage too many things at once

You might face a similar situation when trying to write a new Chef cookbook.

Getting your arms around all those tools and frameworks needed to write solid, tested cookbooks gets you spinning. You need to install Food Critic, Chef Spec, Berkshelf – and the list goes on. This set up can easily take up to half a day or more.

French Chefs arrange all the ingredients which they’ll need well before they start cooking. They call this set up procedure „Mise en place“, or in short „Meez“.

And you should do the same

That’s what Meez is all about. It’s a Ruby Gem which creates a cookbook for you which has puts all these tools in place before you start cooking. Now you can work like a professional Chef concentrating on the recipe at hand instead of juggling new tools.
[Read more…]

Why Teaching Developers To Test Is A Good Investment

by on July 11, 2013 · 1 comment

Test a developer’s software and you’ll find bugs.
Teach a developer to test and they can release their software.

A bit of a twist on the old fish and eating maxim, but the same idea: teaching a skill enables self-reliance and self-confidence. And, while it’s harder than quickly doing someone a big favor, teaching is scaleable in a way that quickly refutes another old adage: we have so many bugs because we don’t have enough testers!
[Read more…]

Your Code is NOT Somebody Else’s Problem

by on September 1, 2011 · 0 comments

Imagine an ant working at the top of a mountain. Next to it, there’s a sluice of melt water running and, at that moment, the ant removes a tiny particle from the rock face. A few hundred molecules of water quickly seize upon the shortcut, and gravity takes care of the rest. The individual rivulets on the mountain’s face eventually run together in a small brook, jostling pebbles and twigs along its bubbly trough. Running ever downwards, doubling in speed and force, the stream now catches up rocks, branches and other streams join the flow. Almost effortlessly, a mighty river is born carving its way through the massive granite over millennia. The imprint upon the surrounding landscape is a culmination of billions of tiny actions – wind, rain fall, freezes and even one tiny ant.
[Read more…]

Getting Lean with Weekly Sprints

by on August 18, 2011 · 4 comments

In Scrum, sprints are time-boxed delivery cycles that help keep the team focused on the goal. If you don’t know which goal I’m referring to, check out Dr. Eliyahu M. Goldratt’s novel “The Goal” (hint: I think it’s something about making money).

For web development, I run weekly sprints and this surprises a lot of people – “How can you get anything done in just one week?” Truth be told, if I could, I’d run shorten this to daily cycles, but then I think it wouldn’t be Scrum anymore (Kanban, anyone?).

You’d be amazed what you can accomplish in a week – even if it’s only to convince your team that you should try your damnedest to ship one meaningful feature every 5 days. I want to challenge the idea that longer sprints help you get more done.
[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…]

Why Automated Testing is a Must for DevOps

by on May 18, 2010 · 6 comments

You’ve heard a lot about test automation. But why is it so important? It’s a lot of additional effort and adds lots of code which needs to be maintained later, right?

DevOps Favors Continuous Releases

One of the important parts of any DevOps process is the regular release of working software. In Scrum, iterations tend to be only one or two weeks long. When you use Kanban you release whenever a reasonable package is ready – often multiple times a week. When you do that, you will inevitably see that manual testing becomes a bottleneck. Always.
[Read more…]

RSpec Tips & Tricks

by on February 18, 2010 · 0 comments

Throughout the last couple of days, I did a bigger refactoring of our Ruby on Rails application. As I changed quite a few moving parts, I covered everything I did with RSpec. It’s really an incredible feeling to have all your bases covered with automated tests when you finally start the manual regression test. Along the way, I came across a few things I wanted to share with you.

Structuring Your RSpec

When you’re writing specs you want to bring order to them sooner or later. I really use nested describe-blocks a lot. Let’s look into a Controller spec to see what I do:
[Read more…]

Agile Is About Feedback, Not About Fancy Practices

by on December 9, 2009 · 1 comment

Too often people complain that to become agile they need to start using iterations, fancy story points and time boxes even though it simply does not fit the way they work.
But, that’s not true. Agile is much simpler than that. And much harder. In essence, agile is about fast feedback. But the feedback needs to be relevant.
[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…]

webrat: Automated Acceptance Testing with RSpec or Cucumber

by on June 11, 2009 · 4 comments

Recently, I was looking deeper into how we could add some automated acceptance tests to our Ruby on Rails based website. We’re using RSpec since quite a while now for TDD, but doing some high level acceptance tests was not on our agenda so far.

DRY Cucumber Scenarios

The new cool kid on the block is Cucumber. One of its main features is that you can describe acceptance tests in nearly plain English (or any other language) simplifying discussions with the product managers and other, non-technical stake holders. I’m really impressed by the ease, with which you can describe DRY scenarios like our login feature:
[Read more…]