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?

7 minutes, 26 seconds, and the Fundamental Theorem of Agile Software Development

Planning software projects without paying ongoing attention to your software design is risky and invites failure.

A sketchnote summary of this talk, thanks to Derek Graham

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 how to do it, but somehow you just don't do it, then you're likely ready for coaching.

Am I a good fit for you? Read a few articles on either my programming-centered blog or my everything-else-centered blog. I coach companies primarily on improving their software development activities, but I also coach individuals in other ways that affect their work (organizing work, personal finance, how to break away from full-time employment).

Do you need to know more? You can always start by asking me a question. Answers remain free as long as I get to answer when I'm ready. Once you want replies sooner, here is one inexpensive way to become my client.

Companies, you probably don't need a full-time, on-site coach. We can build a strong, long-term relationship where you get the advice and support you need with a much smaller investment. Save your money for when we all agree that an on-site visit would clearly generate significant value. In the meantime, we talk, then you have space and time to apply what you've learned, then we work through the next steps, and gradually we make big, lasting changes for the better. You can start with a single working session and I don't have to get on a plane to visit you.

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.