Showing posts from May, 2010

Interview Coding Problems

One of the awesome things about the business we're in is that you can ask people to actually do the thing you're hiring them to do IN THE INTERVIEW! You can't really ask a banker to do some banking during an interview, but it's relatively easy to set up a computer with a coding problem and ask a potential hire to work through it. Having recently gone through a job search, I though I'd discuss my thoughts on coding problems as part of the interview process. The first time I ever wrote code for an interview was at ThoughtWorks . It was a 3 day at home coding problem. There were always 3 different questions and each could be knocked out in a few hours. The candidate could choose which one they wanted to solve and upon submission, the solution was looked at by at least 2 different developers. The great part about this is that we could filter out a lot of candidates before bringing them in to the intensive day long interview. The downside of a take home test is t

Upcoming Speaking Dates

I'll be giving an all new talk entitled "The Necessity and Implementation of Speedy Tests" at Ruby Kaigi in Japan! Ruby Kaigi is being held August 27-29th, 2010 in Tsukuba, Ibaraki, Japan. Very exciting! Want to see the above talk but can't make it to Japan? I'll be giving the same (ish) talk at Ruby Midwest in Kansas City, MO. Ruby Midwest will be held July 16-17, 2010. Stop on by and say hello -- I'll be the guy in the crazy shirt.

Why I Left Obtiva

Recently I ended my nearly 2 year relationship with Obtiva and why I left deserves a few words. The issues I had with Obtiva were mostly just issues I have with consulting: You only work at places messed up enough that they need to hire consultants You leave before you get to spend time with code you wrote so it's hard to learn long term lessons The most stable gigs that pay the bills for a consultancy tend to be the worst programming experiences (Large corporations with way more money than sense) You have to track every hour of your time Time off has to be negotiated with two companies instead of one Learning a whole new bunch of names. personalities, and organizational structures every 6 months Now don't get me wrong, consulting with ThoughtWorks and then Obtiva made me a much better programmer and was an amazing learning experience but I felt that, in order to grow as a programmer, I needed to work for a product company and learn the lessons that only living with a code b

Are you Really Doing Agile Development?

So recently at work I was asked help to make the company more "Agile." Well I'm a developer first and process wonk second so I responded with my usual "How many of the 12 practices are you really following?" Which was met with a lot blank stares. Turns out the classic XP practices are not so easy to find on the internet anymore. It also turns out that the word "Agile" has been so successful that lots of people don't know that XP stands for Extreme Programming. Now I'll be the first to admit that "Extreme Programming" is a colossally stupid name, but what I like about XP and the original 12 practices is that they were controversial and easy to evaluate: Either you were doing them or you weren't. What I don't like about "Agile" is that it's so broad and defined in such a "hand wavy" way that pretty much everyone can fool themselves into thinking that they already are fully Agile. So to fix this an