Archive for the ‘Extreme Programming’ Category

10 Tips towards being a Better Pair Programming Partner

Monday, December 17th, 2007

Aimed at parents, [these tips from Zenhabits.net](http://zenhabits.net/2007/05/how-to-become-a-patient-parent/ ) are equally applicable to being a good pairing partner. Just swap out “child” for “pairing partner” or “pair”.

  1. Count to 10. This one really works. When you feel yourself getting frustrated or angry, stop. Count slowly to 10 (you can do this in your head). When you’re done, most of the initial impulse to yell will go away. Alternatively, if you count out loud to 10, your kids will learn quickly that this is a good sign to run away. :)
  2. Deep breaths. This works very well in conjunction with the above tip. Count to 10, and then take three slow, deep breaths. Feel the frustration draining out of you with each breath.
  3. Tally marks. One of the most effective and important methods for controlling an impulse — these worrisome urges that we have difficulty controlling — is to become more aware of it. And to do that, you should carry around a little pencil and paper all day, and each time you feel the impulse (in this case, to react with anger), mark down a tally. This is an extremely important first step. Once you become aware of your impulses, you can work out an alternative reaction.
  4. Pretend someone’s watching. I forgot where I read this tip (a couple places, I think), but it’s effective. Pretend you have an audience. You’re less likely to overreact with your child if someone’s there watching your every move.
  5. What would mom do? My mom is one of the most patient people I know (although she’s human like the rest of us). So when I find my ire rising, I think … “How would my mom handle this?” And using this role model, I begin to change my behavior to something more positive. You can use any role model you want — not necessarily my mom.
  6. How does this help? When I’m about to say something to my kids, when I can remember, I ask myself, “How does this help my child?” This helps me to re-focus on what’s really important. Yelling or getting angry rarely helps any situation.
  7. Take a break. Often it’s best just to walk away for a few minutes. Take a break from the situation, just for 5-10 minutes, let yourself calm down, plan out your words and actions and solution, and then come back calm as a monk.
  8. Teach. This is something that helps me a lot. I remember that my kids are just kids — they are not perfect, they do not know how to do things, and they have a lot to learn. I am their teacher. I must be patient, and teach them how to do things — even if I’ve tried to teach them 10 times before, it might be the 11th time when things click. And remember, none of us learn things on the first try either. Find new ways to teach something, and you’re more likely to be successful.
  9. Visualize. This works best if you do it before the frustrating situation comes up. When you’re alone and in a quiet place. Visualize how you want to react the next time your child does something that typically gets you mad. How do you handle the situation? How do you look? What do you say? How does your child react? How does it help your relationship with your child? Think about all these things, visualize the perfect situation, and then try to actually make that happen when the situation actually comes up.
    1. Just laugh. Sometimes we need to remind ourselves that no one is perfect, that we should be enjoying this time with our kids, and that life should be fun — and funny. Smile, laugh, be happy. Doesn’t always work, but it’s good to remind yourself of this now and then.

If you are just getting started make sure you have your environment setup properly and then focus on the tips from the above article and go have fun coding.

Stalk me if you love to W rite T ests F irst!

Tuesday, May 29th, 2007

Thanks to Google Maps new feature, Street View, if you’d like a free coffee come stalk me! You can see the door to the apartment I’m staying in while being in San Francisco by clicking here . Be the first (or one of the first before I run out of coffee money) and I’ll buy you a coffee at the local espresso place if you shout out “Wtf? No. WTF!!! WRITE TESTS FIRST!” if you see me. This offer does not apply to people that I work with, have worked with, or have met before (perhaps if I’ve met you I’ll still buy you a coffee though.)

Pair Programming

Tuesday, March 20th, 2007

You haven’t lived until you’ve experienced a successful pair programming session. Once you have, you’ll probably feel that programming on your own is incredibly unproductive. Oh… and it’s also great for improving your communication skills; something us programmer/coder/developer types often lack.

Pair Programming is the process where two developers work together on the same code with one person typing and both constantly discussing the requirements, design and code. Pair Programming also provides an excellent opportunity to hone your communication skills. To be “in the zone” when pair programming requires that you continually verbalize your ideas in a way that your pair partner can follow your thinking and stay engaged.

Pair Programming improves your communication skills

Can you hear the cries of the carrots in your daily stand-up?

Monday, March 5th, 2007

Good stand-ups will feel supportive. When people are knocked down every time they raise a problem, they will tend to stop raising problems. Beyond preventing removal of obstacles, a non-supportive stand-up works against team dynamics. The stand-up instead becomes a ritual that team members dread [LaPlante, 2003].

It’s Not Just Standing Up: Patterns of Daily Stand-up Meetings

Can you hear the cries of the carrots in your daily stand-up? 1

And the angel of the lord came unto me, snatching me up from my place of slumber. And took me on high, and higher still until we moved to the spaces betwixt the air itself. And he brought me into a vast farmlands of our own midwest. And as we descended, cries of impending doom rose from the soil. One thousand, nay a million voices full of fear. And terror possessed me then.

Tool’s Disgustapated

Test Driven Development: Fake it till you make it.

Friday, February 9th, 2007

xkcd.com: Random Number

Need more info? Can Test-Driven Development and Programming By Intention play together?

Testivus - Testing for the rest of us.

Wednesday, February 7th, 2007

I am a believer in Testivus.

Developers need to take more responsibility for testing their code. But the majority of developers are not willing, nor ready, nor able to jump on the bandwagon of the more extreme and demanding developer testing movements such as Test Driven Development. Testivus is a proposed developer testing movement “for the rest of us”.

Developer Testing - Testing for the rest of us.

Below is the first draft of the Testivus Manifestivus.

The Testivus Manifestivus (First Draft)

-Less testing dogma, more testing karma

-Any tests are better than no tests

-Testing beats debugging

-Test first, during, or after – whatever works best for you

-If a method, technique, or tool, gives you more or better tests use it

Agile processes are fractal.

Friday, January 26th, 2007

Fractal: A mathematically generated pattern that is reproducible at any magnification or reduction.

At a seminar called Lean-Agile Software Testing – Practices and Challenges Jean McAuliffe described lean/agile processes as a fractal. She was talking about applying agile principles at each iteration of development. Principles are hard to apply because they are nebulous and numerous. What is the formula for the agile fractal?

business value = f(Cost, Time, Functionality, Quality)

In reality the formula is a wonderfully complex optimization problem.

Business Owners Perspective

max(business value) = f( min(cost), min(time), max(Functionality), max(Quality) )

And to the agile team we rename a couple of things…

Agile Team Perspective

max(business value) = f( max( Sizestory) , min(Sizestory * Riskstory), max(Unit Tests), max(Acceptance Tests) )

And when it really comes down to it, you have to try to solve both formulas simultaneously for max(business value):

max(business value) = f(x)

where x {

f() { min(cost), min(time), max(Functionality), max(Quality) },

f() { max( Sizestory) , min(Sizestory * Riskstory), max(Unit Tests), max(Acceptance Tests) }

}

There are only many variations on the theme for agile fractals, let me know about yours.

Pop Quiz Hot Shot!

Tuesday, April 25th, 2006

Each of two developers can drink a six pack of Mountain Dew in 20 minutes. Together with a third developer, they finish the six pack of Mountain Dew in 6 minutes. In what time can the third developer drink the six pack of Mountain Dew alone? Pair Programming Presented from Jonathan Cogley’s Blog

Free Design Patterns, Scrum, Unit Testing, and Agile Use Cases Tutorials from NetObjectives

Monday, April 3rd, 2006

I found out via the Agile Software Testing List at Yahoo! that NetObjectives is offering free, registration required, access to their self-paced training videos. They are currently offering the following:

Advice from the Gang of Four (with the Strategy Pattern)

This presentation investigates the general design advice promoted by the authors of Design Patterns, Elements of Reusable Object-Oriented Software, with the Strategy Pattern used as an example. 50-60 minutes.

The Case For Unit Testing

This presentation provides an argument in favor of developer unit testing, and illustrates the advantages this brings. 20-25 minutes.

Driving Development From Agile Use Cases

This presentation describes and demonstrates the integration of use cases into an agile development process. 20-25 minutes.

Overview of Scrum

Scrum is a more and more popular agile process which can be used to manage and control software and product development. This presentation discusses the players/roles, mechanics, and promises of Scrum. 30 minutes.

Can I quote you on that? Red, Green, Refactor; Drink the cool-aid.

Wednesday, March 8th, 2006

JUnit green is just like snorting crank off a hunting knife. Cgus

Cgus hack teh Java code that runs one of America’s most customer friendly retail stores.