Guide to pants off living
May 2008
Would you work for Gordon Ramsay?
Sunday, 25 May 2008
So, despite being completely saturated by Gordon Ramsay, we still watch. Amid all the hype and excitement at our house about "Kitchen Nightmares" one question remains; would you work for him? I would -- here's why.
1. He has a foul temper, a foul mouth and suffers no fool.
Ah, so do I. In fact I've made more project managers cry than any of the geeks know. Yeah, it's not a pretty stat and it's probably true that I'm a genuine arse-hole. There's no reason to take pride in a stat like that but I'm passionate about my work, I care about the outcomes, I'm opinionated and I believe that what I'm doing is "right".
It's often taken for granted but working with people who care about what they do is one of the most rewarding benefits of healthy working environment. The passion created by people driven to work hard and do their work well can be contagious. Sure, it can also be poisonous, but I think that's a result of poor communication and expectation management rather than passion.
2. But he's a bully, Travo you hate bullies.
I do hate bullies, I loathe and despise them. My experience tells me that while Ramsay is confronting, in-your-face aggressive and sometimes demeaning to the people he's there to help -- he's genuine about his intentions. Bullying as I've seen it is not so in-your-face. It's passive-aggressive, it's spiteful, bitter and manipulative.
Ramsay doesn't operate in this way. He communicates what he expects up-front (sure, sometimes he doesn't -- he observes) and makes assertions about the outcomes.
3. Ask. Order. Explain. Order
When I was a cadet, and after I had been awarded the rank of corporal after two weeks of training and drilling, I came back to my squadron and was told, "All you've learnt can be condensed in to Ask - Order - Explain - Order."
WTF? Essentially the idea goes that, if you're working with people in a position of leadership, there are certain assumptions you can make about the context and environment you're working in. There should be trust and there should be a shared understanding about a common goal. You should be comfortable asking someone to perform an action.
If that person fails to comply with your request, as you are in a position of leadership, you can order them to do it. This is of-course pretty much in the domain of the defence forces and people who hold official rank. If you were a chef in a kitchen it probably meant you bellowed your request louder. If you were a manager in an office, it probably meant you would ask again with a threat -- you fucking manipulative coward.
Finally, if that person continues to fail to comply with your order an explanation is required. You need to communicate to them your expectations, you need to make the outcomes more clear, you probably need to give the over-all mission more clarity. Then you can repeat your order.
What's not included in this cycle is the need to listen; the person you have just ordered to do something may need to provide you with some critical feedback as a leader, so you can adjust and modify your expectations and goals as a result of a change in the situation or environment.
In a kitchen for example, your team may need to let you know that you're out of a certain ingredient. It's a micro-adjustment you need to make, based on feedback from your team. A good manager, I would expect should be capable of absorbing and adapting to these micro-adjustments without blowing a gasket.
So yeah, I would work for Ramsay.
I am passionate about my work, and I feel energised by people around me who also have passion for their work -- I don't feel threatened by those kind of people.
As I get older I'm more open and less anxious about feedback and tuning -- acknowledging that you don't know everything is both horrifying and also comforting. If you're lucky enough to work with people who are willing to share their knowledge and experience with you, you'll soon take advantage of a collective knowledge.
If people want to help you improve your skills, and you're open to it, you can only become better. I'm sure Ramsay's frustrations are mostly from people who are not open to improvement; he's essentially banging his head against a brick wall.
It all makes for entertaining TV though doesn't it!.
Posted by travo at 9:25:21 PM | Comments (1)
Six Months on Rails
Thursday, 01 May 2008
I've been a full-time commercial rails developer (feels good to say that) for six months now and I want to describe some of what the experience has been like, and importantly what lessons I have learnt coding Ruby, on Rails, for Cogent.
Specs are your friend... but they can't be trusted.
One of the first thing that Steve said to me was that while you might be able to get 100% coverage (using RCov along side RSpec) on your code by writing specs, they aren't truly indicative of whether or not your app works as a whole.
Writing tests against every line of code that I'm writing is intense -- and it requires a hell of a lot of discipline. But, this is my reality now and I'm really enjoying the challenges it presents.
It's one thing to use an exciting new language, but to keep coding the same old shit to solve the same old problems is a shame and a wasted opportunity. To embrace a set tools and resources though, which encourage you to improve the way you approach those problems and sometimes force you to rethink your approach, is really another thing entirely.
Get your recipes right... and deployment is a dream.
I spent a horrible week becoming increasingly frustrated at not being able to deploy. We needed to deploy to both our staging environment (which we already successfully deploying to) and our new production environment. I was making a bunch of newbie type mistakes and stumbling all over the place until Rob showed me the light.
Rob had been using Webistrano to manage the deployment strategies he had for his application quite successfully. He had also taken advantage of the ease by which you could create and manage the recipes for each stage. And thankfully, he showed me how to weild the same mojo. If you can learn to get your recipes right, then you'll have dreamy deployments too.
Some advice though is keep your eyes peeled for stray mongrel .pids!
Your code sucks... no, really.
The beauty and simplicity of Ruby is like a magnifying glass over every nasty bad habbit you have. Any weakness you have in your understanding and boom, you're exposed for the fraud you are.
I'm pretty certain that I've been able to obfuscate my weaknesses within the structure of other languages. I guess it's easy to do that with Ruby and Rails too, but rigor that Cogent uses tools like Saikuro, Flog and Simian peel back the veil and show you the horror which your rubbish code.
Props to Marty for spending some time with me in the early weeks and months helping me to get my act together. I definitely struggled early on, Ruby is a cruel mistress.
Posted by travo at 9:09:28 PM


