me@jbrains.ca

Permanent link to this article Employee Rescue Wednesday for September 3, 2008

Act fast! Positions either fill quickly or clients move on. Don’t waste this opportunity.

Get precious classroom experience! We have an opportunity in Springfield IL that will pay you to combine your existing TDD and JUnit knowledge with your enthusiasm to teach in a two-day TDD/Java course. You will need to prepare some material, but you can use J. B. Rainsberger’s book JUnit Recipes and Lasse Koskela’s book Test Driven to get you started. Never designed exercises before? J. B. Rainsberger will support you with tips, tricks, advice and some editing. Classroom trainers make great consultants and earn good money working only one week per month. Send your resume and a write-up of your TDD knowledge and experience!

Are you looking for the contract that will let you take the plunge as an independent contractor? We have an opportunity in Des Moines IA that could let you live for a year on only six months’ worth of work. You need to be an expert-level .NET/C# programmer with at least one professional Java project and who knows Extreme Programming. Give yourself some slack by building up an emergency fund while you take your first steps towards financial independence. Send your resume and a write-up of your last .NET/C# project, including how you applied agile concepts to your work!

Are you frustrated that your co-workers won’t listen to your great ideas about how to deliver software? Our Newark-based client wants you to teach them while you work! You need to be a strong Java programmer with agile skills (TDD, evolutionary design, adaptive planning) who has a desire to teach. Put your ideas to good use and build up slack in your work schedule while you do it. Send your resume and a write-up of the three ideas your co-workers won’t let you implement!

Looking for your first contract as a programmer? You need to be well-versed in agile practices and have experience with Java technology skills for a project in Columbus OH that will run at least until December. Earn more than you can as an employee while we pay your living expenses for at least four months. Send your resume and a write-up of your experience as an agile programmer today!

Digg! Discuss

September 03, 2008 08:38 employee rescue

Permanent link to this article Story Test-Driven Development: don't start here

I don’t want to claim that story test-driven development doesn’t work, because some of my most respected colleagues teach the practice with success; however, I do want to warn people who might find themselves seduced by STDD, especially if they think of it as an easy replacement for TDD.

Allow me to clarify the two terms, TDD and STDD. To practice TDD, the programmer begins with a small, well-defined behavior they’d like to implement. Typically, they design that behavior as a method on a class, although they could get away with doing even less, then brainstorm a list of tests they might write. With such a list in hand, they run through the TDD cycle, illustrated beautifully by Bill Wake’s stoplight analogy. When the design behaves adequately and correctly, the programmer stops.

To practice STDD, the programmer begins with a story and several story tests, which I tend to call “examples”. The programmer then selects a story test, watches it fail, then test-drives enough code to make it pass. One by one, the programmer makes each story test pass until they complete the entire story.

I have been teaching people about TDD and stories for years, and have practiced STDD most of that time, in one form or another. I find the technique helpful; however, when I have pushed STDD to its limit, I have found it to guide me in directions I don’t like, which TDD has generally never done. When I watch others attempt to practice STDD, especially novices and advanced beginners, I see how they misapply STDD and lead themselves towards a Big Ball of Mud, despite what the agile community’s marketing machine says about TDD and stories. I believe the intersection of the two creates problems for those not accustomed to the different goals of TDD and user stories.

I use examples, the term I use for story tests, to show progress towards delivering a story, or feature. Broadly, I add examples to reflect increasing levels of understanding of the system to design, and as examples pass, that reflects progress towards delivering an ever more powerful system. I use programmer tests, the term I use in place of unit tests, to test my design ideas as they come to me and to help me type code in correctly. Any time all the programmer tests pass, the system works as designed, even if it does not yet do everything the business needs. Any time all the programmer tests pass, I can freely commit changes to the main line of the project’s design repository.

More succinctly, examples help us design the right system and programmer tests help us design the system right. (I prefer “correctly” there, but then I lose the symmetry.)

I often see programmers try to use passing examples as an absolute criterion to stop designing. They underestimate, in my opinion, the role of programmer tests to put positive pressure on their design. Examples, especially when written as end-to-end or integration tests (a test whose failure does not isolate the mistake to a single method), simply do not put positive pressure on a design: their high-level nature can’t constrain a design enough to support careful refactoring. For this reason, I recommend novices and advanced beginners not practice STDD until they first see or feel for themselves the impact focused, small programmer tests have on their design.

I want to leave no room for doubt: I do not mean to say that novices should avoid STDD as an “advanced practice”; but rather that a combination of novice tendencies makes STDD harder than TDD to practice well. Specifically, the novice tends to write examples as end-to-end tests, which provide too much design freedom and exert too little positive pressure on the design to guide refactoring and prevent defects. Instead, I would counsel novices and advanced beginners to focus on TDD and run the examples every hour or so to measure their progress towards delivering the story.

Read more about how to practice STDD well.

Digg! Discuss

September 02, 2008 03:00 testing, agile, stories, people, refactoring, design, antipatterns, article, extreme programming

Permanent link to this article Istanbul, Eindhoven, Bled

In case you don’t religiously follow where I’m appearing, I simply wanted to announce that we will visit Istanbul August 21-23, travel from their to Eindhoven, Netherlands August 25-29, and finally on to Bled, Slovenia August 30-September 7. If you live near these places and would like to get together or would like me to speak to a local company or user group, please contact me by email and we will attempt to arrange things. Since I do not drive, you’d need to provide transportation to and from the event, which could be a pre-paid taxi, a ride from a friend or detailed instructions on using public transport to get there and back.

Digg! Discuss

August 20, 2008 03:00 speaking

Permanent link to this article A review of Agile 2008

I must admit to some bias in reviewing Agile 2008, because they held it in Toronto, where I lived from 1996 to 2007. I grew up in a Toronto suburb. I can’t account for what portion of my positive review depends on my great familiarity and comfort with the city. Even so, I can’t remember having as enjoyable a time at the Agile 200x conference since Agile 2005 in Denver when I received the Gordon Pask Award.

I FELT CONNECTED. I have been particularly concerned about how much the conference has grown in the past few years. Large conventions like Java One do not hold my interest, which explains why I don’t attend them. As attendance at Agile 200x grew from Denver to Minneapolis to DC I became concerned that I would find myself increasingly lost among the sea of people. I felt deeply connected to people in Toronto and managed even to make a handful of new connections. Even though I believe the conference consists of “600 of my closest friends and 1000 people I will never meet”, I must admit that I felt much more connected to the people than I did in Minneapolis and DC. I attribute much of this to the space: there were more open spaces for gathering, and I spent less time in long, narrow hallways. Granted, I found it difficult to navigate through some of the winding paths inside the Sheraton Centre, but overall I felt like I could find people I needed to find and bumped into enough people to keep it interesting. I hope I can feel this way again in Chicago in 2009.

I REALLY LEARNED. I have had some doubt about how much of the program would excite me, and I must say that while none of the sessions intrigued me enough to draw me there, I dropped in to a handful of sessions and the presenters welcomed me in and allowed me to participate even though I sometimes tend to try to take over. I learned from those sessions and even more from hallway conversations with my peers. I hadn’t felt like I’d learned much from the last few years, but rather that I’d spent most of my time teaching. This time I found a good balance. I don’t know how much of that to attribute to my mindset, to the program, to the people the conference drew and to random chance. No matter: I love the result. I should thank Arlo Belshee for putting the thought in my head that cost estimates might not always matter much. That one will stick with me for a while, I imagine.

I PUSHED THE ENVELOPE OF EXHAUSTION. I measure the success of a conference experience by my energy level on the last day. When I find myself exhausted, I imagine I rushed too much, committed to too much and wasted too much time getting around. When I find myself lethargic, I imagine I didn’t care much, didn’t see the people I wanted to see, didn’t find much of interest in the program and didn’t learn anything worthwhile. This time, I felt energized at the tipping point of exhaustion. Perfect! In the words of the great Calvin (the modern one), the days were just packed! I kept my schedule fluid and managed never to spend a moment bored. I imagine my fluid schedule make it difficult for other people to co-ordinate with me, so I apologize to my wife and my friends for their difficulties reaching me throughout the week, but I enjoyed it immensely. By the end, I felt ready for week two of the conference, but it abruptly ended. I call that a success.

REVIEW IN A BOX. We stayed at the Hilton across the street, mostly because I forgot to book our room until two weeks ago.

Program B
Open Jam B
Location A
Attendees A
Amenities B
Expense B
Hotel B
Overall A-

I had a few minor nits to pick: I didn’t like the breakfast, which featured cost-cutting pastry over energy-boosting protein and berries; I found it difficult to carry around the large program book, so I would have preferred schedule-on-one-page on a day-by-day basis; I have become a coffee snob, so I never like the coffee anywhere, and the Sheraton fit that pattern.

As I like to say, if you have no bigger problems than these, then you deserve a vacation. Thank you to Rachel Davies and her crew for doing an excellent job organizing and running this conference. Good luck to Johanna Rothman, as you have big shoes to fill. I feel confident in the result.

Digg! Discuss

August 12, 2008 03:00 agile 2008

Permanent link to this article Gordon Pask Award 2009

I have agreed to administer the Gordon Pask Award starting in 2009. Brian Marick has done a wonderful job, just at the edge of chaos, in starting the program and I hope to be able to continue in his footsteps. Laurent Bossavit has agreed, at least in principle, to co-administer the program and I know I will need his help.

I have several ideas for improving the mechanics of the award in addition to a personal vision of the award, but I certainly don’t mind receiving your advice. Since I cannot handle thousands of emails on the topic, I would like you to answer one of these questions regarding the prize, how we award it and how we present it.

What does it mean to you to see someone other than you win a Gordon Pask Award?

What does it mean to you to see someone other than the person you nominated win a Gordon Pask Award?

All things considered, would you rather we continue the program or abandon it?

Please send me an email with your thoughts. Write what you will, but please include an answer to at least one of these questions.

Digg! Discuss

August 12, 2008 03:00 agile, people, extreme programming, gordon pask award 2009

Permanent link to this article How are you dealing with Homeland Security confiscating electronics?

As a Canadian consultant with many US-based clients, I enter the US quite frequently, and I now know that I face random seizure of my electronics even without reasonable suspicion. I find it difficult to enter the US under these circumstances with my electronics, notably my computer and phone.

Have you done anything interesting to deal with this problem? I have had to contemplate measures including requiring US clients to provide me with a MacBook Pro when I visit them. Even if I do that, what about my data? How can I guarantee that I have a bootable copy of my hard disk when I cross the border if the TSA can confiscate my external hard disk?

The simplest solution is to stop working in the US until the proposed law on the books requiring reasonable suspicion passes, but even then, I run a considerable risk of having materials seized even though I have nothing to hide. I don’t trust Homeland Security to be reasonable.

Is shipping hard disks any better? I can’t risk having material held up in customs. I can’t rely on internet services, because it takes days to download a 100 GB bootable disk image.

I would like to know what you do about this, aside from refuse to work in the US.

Digg! Discuss

August 03, 2008 03:00 

Permanent link to this article "Dear XP" with new English lyrics

Kenji Hiranabe asked me to write new English lyrics for the “Dear XP” song, and with his lyrics as a starting point, here is the result:

Digg! Discuss

July 30, 2008 03:00 extreme programming, agile 2008

Permanent link to this article Any title would be superfluous

July 28, 2008 03:00 

Permanent link to this article Help us nominate David Chelimsky for the Gordon Pask Award

Once again, nominating season for the Gordon Pask Award has begun. I have so far put my support behind one excellent candidate, David Chelimsky. The nominating process has changed and we would like to garner some additional support for David. If you are interested, then please click the Discuss link for this article (which takes you to reddit) and write a blurb in the style that the selection committee has asked for. (If you haven’t already, read the link above.)

Thank you for helping us show support for David as a significant contributor to agile practice who is well due the recognition of the Gordon Pask Award.

Digg! Discuss

July 26, 2008 03:00 agile, people, extreme programming

Permanent link to this article Please nominate someone for the 2008 Gordon Pask Award for contributions to agile practice

Please nominate someone for the 2008 Gordon Pask Award for contributions to agile practice. Read more.

Digg! Discuss

July 26, 2008 03:00 agile

Older entries | Older entries at diasparsoftware.com