jbrains.ca

Do you feel stuck? When most people want to improve, they try doing more, and before long, even the smallest tasks drag on forever. Do you remember when you could just get things done? I can help you return to those days.
Start the World's Best Introduction to TDD... free!
My name is J. B. Rainsberger and I can help you profit sooner from your software projects.

I helped a major government contractor see how to reduce billions of dollars in erroneous insurance and health benefit claims. Their complex COBOL-based system allows, for example, men to qualify for maternity benefits. Over dinner we sketched a plan to replace the most expensive parts of the legacy system gradually and safely, and now they can save their client signficant sums of money in weeks instead of months.

Could your business benefit from advice like this?
Consulting
when you can't put your finger on the problem

When you don't know exactly what the problems are, nor how to solve them, then you need consulting, and that's exactly the kind of consulting I enjoy doing.

I focus on understanding problems, issues, and obstacles deeply before choosing solutions. When you contact me, I will probably ask you a long list of questions designed to help me understand the problems you want to solve, the issues you want to explore, or the obstacles you want to overcome. Many past clients have asked me to push the wrong solutions at them, and I don't want to do that to you. I don't intend to offer you any solution until I have some confidence that it will help.

I specialize in digging deeply to uncover the root cause of your problems. If you allow me, I will work with you to find those causes and design a plan to help you attack them.

I was at Iowa Student Loan when we moved from Waterfall and VB6 to XP and Java (2003-2004). It was under your guidance that we became one of the most aggressively agile teams in the midwest, according to David Hussman. One of our teams was featured in Gojko Adzic's book Specification by Example due to our extensive investment in FitNesse. You pointed us towards Fit and FitNesse early on. You laid the rails of XP that lead to our long term success. I started to calculate my pairing hours for a talk recently and was surprised to realize that I had over 10,000 hours of pairing. Iowa Student Loan's commitment to pairing and TDD were a direct result of your mentoring, coaching, and zeal.

On a personal note, I wholeheartedly believe that I wouldn't be in software development today if it weren't for the hyper-focused Red-Green-Refactor solutioning cycle. I was terrible at math throughout school, especially with large math problems with multiple moving parts. TDD released me from balancing multiple parts. Once I released a small piece from my focus I was able to freely focus on the next part without any fear of breaking previous parts. It was liberating to maximize the way I thought to create and innovate. XP liberated me. Thank you for putting my career on a firm foundation.

— David Kessler

Coaching

when you need to apply new skills

If you know what to do, and even how to do it, but something seems to keep getting in the way, then you're likely ready for coaching. Sadly, the generic consultants of yesteryear have become the "agile coaches" of today. Everyone who has read a book or two about agile software development has magically become an agile coach. It has become difficult to know whom you can trust. You need to choose very carefully the person you plan to hire to provide this service.

My network of coaches consists of people who understand the craft of coaching. They form real bonds with the people they coach and this bond contributes much to their success in helping people get out of their own way. They incorporate ideas from a multitude of disciplines to help people realize more of their ability. More than simply show you some tips and tricks, they help you understand how you work, what you can improve, and more importantly how to make lasting changes for the better.

You don't need a full-time, on-site coach. In fact, hiring a full-time, on-site coach for months at a time usually wastes considerable money. Having someone on site and full-time subtly encourages the organization to squeeze everything they can out of the coach, usually either by spreading them too thin or by trying to make too many changes at once. Both choices usually fail. I prefer to create a loose, long-term relationship with an organization, working periodically together, and after we establish trust on site, we can usually do a lot of the interesting work over the internet. This saves money, reduces stress, and helps avoid unhealthy co-dependent relationships. Rather than squeeze what you can out of me, you'll have the chance to notice when you no longer need me. Periodic, remote coaching benefits everyone involved.

I spoke with several people about my experience. J. B. Rainsberger was one of them, and after hearing my description of day-to-day life at the office, he recommended Patrick Lencioni's The Five Dysfunctions of a Team to me.

Hit the nail on the head, he did.

— Marjan Venema, "What Trust is Made Of"

Training

when you need to develop new skills

If you have already established goals you want to achieve, and have identified that you need to increase your organisation's capacity in some direction, then you're ready for training.

Training, unlike coaching, focuses on increasing your capacity to produce in some way. Production capacity, like your body's muscles, atrophies without development. Even if you don't struggle to keep up with your competition, you will struggle with your customers' increasing demands. You must develop new skills to stop your organisation from shrinking, losing relevance, and shedding customers.

I offer courses like Learning Modular Design Techniques, Making Your Agile Transition Work, Manufacturing Slack, and Product Sashimi. These courses cover all aspects of software development, from the moment you conceive of a new product, through choosing your first set of features, through building and delivering those features and collecting money from satisfied customers.

"Experienced programmers plan, while junior programmers jump into their work. Some simpler personal planning techniques can help you eliminate waste when you work, write less code, design more simply, inject fewer defects, and generally deliver sooner. ... [T]he best way I know to deliver sooner is to do less."

J. B. Rainsberger, "Personal Planning", IEEE Software 2007, no. 1, p. 16.

Speaking

when you need to remind people that they can make a difference

I enjoy speaking at a variety of conferences, user groups, and meetups around the world. I can provide inspirational talks, discuss new ideas, lead impromptu discussions or present some golden oldies.

For companies that would like to help people feel more comfortable initiating a change program, such as adopting new ways of working, I can offer talks that discuss these sensitive issues. For skeptical audiences or people generally concerned about the magnitude of change involved in "going agile", I recommend Yes, Your Agile Transition Can Work. For overworked audiences who want to improve but simply can't find the time to do anything new, I strongly recommend Manufacturing Slack.

For skeptics who see emergent design as overhead, rather than an investment in increasing the capacity to deliver, I recommend The Economics of Software Design, and if their skepticism reaches more broadly to other aspects of agile software development, consider An Introduction to Agile with the Theory of Constraints.

Of course, if you have a specific topic in mind or a tricky audience you'd like to reach, then tell me about it and I'll design a session that better fits your needs.