Your code is trying to tell you something! Decades of wisdom in articles that dive deep into software design and testing.
About jbrains
J. B. Rainsberger, sometimes called "jbrains", wants to help any software development professional find more peace on the job. He tends to help technical leaders, whether CTOs under pressure to "change the culture" or informal leaders struggling to improve how things work around them.
Programming Is the Easy Part
Well... maybe not easy, but computers are much more likely than humans to do what you tell them to do. And when it comes to how to do the job of shipping features to customers, we might disagree on the details, but it doesn't take more than a few years of arguing to realize that it helps to notice our mistakes very soon after we make them and to have code that isn't expensive to change safely and accurately. The techniques we need to achieve these goals are well-understood, well-studied, and simple to learn. (And this is why I continue to teach evolutionary design techniques, such as refactoring and TDD!)
The hard part comes when we try to do these things on the job.
Not People Problems, Exactly...
You've probably heard that "No matter what the problem is, it's always a people problem." It can be easy to interpret this as "people are the problem", but I'd rather interpret it more like this: no matter what else we do, code will be written and people will be involved. (And yes, there are people working on taking people out of the equation, but I don't like their chances.) I think of it like this:
If all you do is try to install a technical solution, you'll find out before long that that isn't enough on its own. You will eventually need a solution that treats the people as people.
This is where I help. I guide technical leaders through the challenging transition from pretending that purely technical solutions will make everything better to placing our shared humanity at the center of our collective work. And this is not touchy-feely nonsense. It's not about trust falls and teamwork retreats in the park. It represents a shift in thinking and action towards cultivating change that really works and truly lasts.
How I Help
Advice Without Blame
Break the cycles of frustration and blame that makes progress unlikely.
Adopt Effective Practices
Changing how you work in ways that resist the tendency to snap back to 'normal' when managers stop looking.
Compassionate Change
Concrete steps that lead to progress, rather than empty platitudes and sound respectful but ultimately don't change anything.
Leadership That Works
The support you need as you make peace with the limits of your authority and guide others through their own turbulent change.
Influences
This quick list of ideas and people might give you an idea what to expect from working with me. If you'd like to learn more, then read a few articles to better understand how I use these ideas in my work with clients.
Further Reading
Read articles about both the technical and leadership aspects of delivering software as a job. These articles are not only helpful, but they also give you a slightly clearer picture of how well we would work together.
Articles for all software development professionals, including technical leaders, managers, and executives. Programming is the (relatively) easy part, so what happens when we try to do these reasonable, sensible things on the job?