"I really feel like your teachings are helping to usher me into a new phase as not only a developer/test engineer but as a human, too. From getting things done, to improving finances, to testing, to debugging conversations, I'm learning so much thanks to you. Thank you again!"
- Jayson Smith, struggling with the feeling of knowing where they want to go, but not getting there sooner.
"[After my first session] I already feel more confident, because you've given me some concrete ways to make progress... You hit the nail on the head [regarding what I need to do next]."
- A. W., worried about moving from a tester/leadership role into one as a programmer/technical lead
I was stressing about non-business related personal finance issues. Your advice was that the business should be working for me or there's really no point in having it. [After talking with you for an hour] I turned the corner and understood what I needed to do to make the business enjoyable and successful.
- A. E.
You need a trusted adviser in your corner, but you don’t need a full-time “Agile Coach”, and you need something more than anonymous advice from people trying to impress you. This is the place for you.
What you offer is totally unique and no other services I am currently using offer something like that. It is exciting and motivating for me to be able to speak freely over email with an influential authority as you are. So again, thank you so much to provide an affordable way for all to learn from you (and hopefully help you to learn as well).—A.A.
When I paid your invoices, my wife told me that it was the best money I'd spent all year!
- G. N., who hired me to prepare him to interview with a large software company. He got the job.
You can ask questions in a variety of places, like Quora, Stack Overflow, or in Slack channels and discussion groups, but you never know when you’ll get an answer. Often, you’ll get a non-answer. Or you’ll get someone questioning your question instead of answering it. Or you’ll just get people telling you how stupid you are. It takes time and patience to find people whose advice you can trust, and you never know when those people will just stop answering. When it works, it works well, but for a reasonable price, you can make it work much better.
If you can’t afford to hire a coach for real-time, in-person working sessions, then this group gives you a place to start. We build trust together, if we don’t have it already. The typical member of this group has been following my work for years or knows me personally or has even worked with me before. I take the time to understand your question, even if you don’t entirely understand if yourself yet. I might occasionally need to tell you something that you don’t like, but I always do it with compassion. There really are no “stupid questions” here. On the contrary, sometimes I forget how much I take for granted and I need people to ask me elementary questions to remind me of the fundamental principles that they need to understand.
When you hire an on-site coach, you get someone who can observe what you do, notice things, and bring them to your attention. They will occasionally find problems that you didn’t even realize you had. That’s great, but what about the rest of the time? You need to get things done, but you have this coach standing around, looking for something to do, and that makes you feel like you need to find things for them to do. You end up creating things for them to do. The coach should serve you, and not the other way around!
Some organizations turn their coaches into senior programmers or Scrum Masters. That wastes tremendous potential value! They usually overpay for what they get. Or they think that they’re getting coaching when they’re really getting “just” another pair of hands. (Even a strong pair hands doesn’t deliver the value of a great coach.) An effective coach doesn’t solve your problems. An effective coach doesn’t even just teach you how to solve those problems. A truly valuable coach helps you learn how to solve those problems—and leaves you feeling more confidence in solving the problems that you don’t even know about yet. I could rescue your code base, I could ship your features sooner, I could even transform your day-to-day working habits, but I could deliver so much more value than that.
You shouldn’t miss out on that potential value just because you don’t want to throw large amounts of money at the problem, hoping that something works out. Either you don’t have that kind of cash or you’d rather use it more wisely. I’d like to help. If you purchase the annual subscription, then you get me as a trusted adviser for your organization for the price that you’d often pay for travel expenses for a one-week on-site visit. If you purchase the monthly subscription, then you can “try me out” for the price that you’d often pay for just the flight for an on-site visit.
If you really need a senior programmer, an experienced product manager, or a Scrum Master, then you should hire one, and not a “coach”. (I could help you figure out what you’re looking for and advise you on how to hire them.) That relationship works differently than the one I propose. I have found better results when I spend some time with you, we discuss some problems, we evaluate some options, we design some experiments, we do some of the work together until you feel confident to continue without me, and then I go away and let you get into trouble for a while. You don’t have to worry about “using him while we’ve got him”. You’ve “got him” and he isn’t “going anywhere”. Instead, you simply get back to work!
Of course, I’m not gone: I just fade into the background while you get things done and experiment with some change in the way you work. I’m there to support you, but only when you need it. When you get stuck, you ask me a quick question and I help you get unstuck. When it feels weird, you ask me a quick question and I help you make sense of what’s happening to you. When a more serious problem arises, or when the same obstacle pops up over and over, we schedule a working session where we have the intense, perhaps even difficult, conversation that we need to have to get you past the problem. I’m there when you need me, and otherwise, I let you get on with the business of business.
If, at some point, you need an on-site visit, then we can discuss how to do that. Unfortunately, I don’t travel everywhere and I’m not available year-round to travel. If I can’t help you on site, then I can help you find someone that we both trust who can help you. Or maybe you’re looking for a working vacation in Canada’s beautiful Atlantic region. We can find creative ways to make that work. Interesting offers considered.
More likely, however, you will need me a little more often in the beginning, and then a little less often, and then a little less often… until eventually you realize that you have got what you needed from me. That is the nature of a coaching relationship. When you no longer need me, then we stop, and we don’t have to worry about the fact that I just signed another 3-month contract to work 4 days per week on site. When it’s over, it’s over.
I might just find a way to inspire you...
One of the problems of a software developer is about how to handle apathy. Every 2-3 years (or often) I feel like my passion/motivation/vision for software dies, then I need to find a “switch” to turn on my internal “engine”. As I see many “dead” developers I start thinking that it is a sort of “common issue” along developer’s career path. So this course was a good spark for the end of this year. —An anonymous student from a live training course
J. B. (Joe) Rainsberger is one of the "second wave" of TDD practitioners: he learned directly from the pioneers of the field. His book, JUnit Recipes, was the standard for over a decade for Java programmers who wanted to do what we today call developer testing or programmer testing. He has taught thousands of programmers around the world to bring high discipline to their work for well over a decade.
Not "just a programmer", J. B. has taught people how to manage the never-ending onslaught of work, figure out how to adopt new working practices chaos-free, understand and even grow to respect their most annoying co-workers, find the time and energy to improve as though finding loose change in the couch cushions, turn their dreary day job into a Dream Job–even how he enjoyed his first retirement from age 34 to 40! Software, life. Agile, not Agile. He's up for anything.
Read his work at jbrains.ca and as The Code Whisperer, and don't forget to sign up at sign-up.jbrains.ca—subscribers there got to sample this training material and received discounts on this training course. Don't miss J. B.'s next launch!
I have read this article of yours a couple of years ago (and it changed my life completely)... This is amazing! I must reorganize my life according to this project-centric way like, right now. — M.S., a student, in response to an article describing how anyone can organize their own personal workload.
If working with me over email is all you ever need, then we’ve all saved a lot of time, money, and energy. I love that. If you’d like to do more, then here are some ideas.
Premium subscribers save over 30% on live, remote working sessions with me. What can we do together? Here’s a short list:
I run the occasional group consulting session with space for up to 6-8 people, and I’ll always save at least 1 spot in those sessions for members of this group. (Regular price varies, but members who claim those spots always attend free!)
Coming in 2018: discounts (in some cases 100%!) on mini-courses.
I’ve done some arithmetic for you regarding that discount on remote working sessions. As long as the US dollar stays close to its mid-2018 rate of around $1.27 Canadian...
Companies save 30% on remote working sessions, scheduled by the hour.
To give you an idea: one team hired me to do “pair” programming with them for 90 minutes, once per week, for 10 weeks. They did all the typing. We discussed strategy, principles, and specific techniques. They had 2 or 3 people in each session, but not always the same people. They were in Central Europe and I was at home in Eastern Canada. We mostly refactored the code base that they were actively working on, so they would add code on their own and we would refactor it together. This gave them a chance to see exactly where they needed to improve most urgently without being flooded with too many new ideas at once.
To give you another idea: one team hired me to teach them Surviving Legacy Code over the span of six weeks. They were in Central Europe and I was at home in Eastern Canada. Each session lasted between 1 and 2 hours. For most of the sessions, the same pair of people worked with me, although their manager joined them for the last session so that we could discuss issues that go beyond the code. They asked questions about the previous session’s work and what they tried to do when they practised on their own, then I showed them a technique, we discussed how to use it in their context (embedded C/C++), they asked enough questions to feel comfortable getting started, I proposed some exercises for them, and then I left them alone to practise. Imagine how nice it would be to get all the benefits of a training course without trying to shove all those new ideas in your head all at once! And without having to dedicate 3 days away from the office. And with the opportunity to schedule the training (mostly) when you want to do it.
Individuals can purchase my remote working sessions by the hour, even though they often stretch a little longer than that.
To give you an idea: one person hired me for 6 remote working sessions to help them prepare for an interview with one of The Big Software Companies. They interviewed with confidence and they got the job. And then they hired me again to prepare their spouse for a job interview!
To give you another idea: one person has hired me about once per year to help them transition from working as “just a programmer” to building a consulting practice. We discuss marketing, sales, professional development, and practical matters like accounting. We also discuss their goals and the tradeoffs: for example, working for someone else means getting steady work and steady money in exchange for less control over what you work on; but working independently means choosing your work in exchange for volatile cashflow. How do you know that you can afford to take the risk of becoming independent? What is your personal financial situation like? What would this mean for your family? And why do you believe you want to do this, anyway?
The World's Best Intro to TDD, for example, is like a pre-packaged training course. This is a consulting/coaching/mentoring group. The two can complement each other, and when you purchase selected online training courses, I invite you as my guest to participate in this group for a month.
If I have a mission, it involves stopping you from doing wasteful work out of habit, inertia, or just because you're trying to "follow the book".
I think it's my mental inertia in action: [the] idea that I can have gherkin-syntax test cases written but not automated never ever came into my mind before. –M.S.