The internet is full of material to use that will help improve your experience as a software engineer. Whether it’s for learning new languages and frameworks, or for improving your so-called soft-skills, or helpful guides to grow your title and responsibilities, you can find blogs, videos, podcasts, and thousands of websites online touting quick and easy methods.
It would be fair to ask “what do I get from professional coaching that I can’t get online?”
You could spend hours, days, and possibly weeks ingesting all of that material, and still quite possibly not know what steps to take next. Knowledge is obviously valuable, but so is the application of it. It helps to have professional coaching that is uniquely designed for your personal experience and expectations, to help you apply all of that knowledge.
Software is a human endeavor and a major component missing from all of that material online is the human-to-human guidance on how to apply it to your experience. As Kelsey Hightower says, “I walked down that path, and I fell in a hole, so if you're gonna walk down that path, then watch out for the hole.” And as Charity Majors believes, you shouldn’t necessarily pattern yourself after others, it’s easy to see that going it alone online can be tricky without coaching. You could easily be unaware of the holes, and quite possibly pattern yourself after the ideas that don’t suit you as an individual.
With this article I want to describe the benefits of Attainable’s coaching (and newsletter). This is in part an explanation of what you get when working with me, and in part a description of who I am and the values I hold, that make up my coaching philosophies.
Private space
First and foremost Attainable’s coaching is private. I will never share any information about you or your sessions to the public. It’s important that you receive a private space in order to rehearse and practice your skills, and receive critical feedback. While some of us are quite comfortable “testing in prod” with our skills, many of us require a safe and private environment to learn.
There is an important statement to make here: Professional coaching does not imply defect, fault, or weakness in your current skills and abilities. Nor does it mean “correction”. Sometimes the work is difficult and the feedback can be critical, but it in no way represents a value statement on who you are. In fact it’s the opposite. It’s a sign of strength and openness to improvement that is required for success. Receiving coaching in a private space does not imply stigma, instead it helps de-pressurize the progress and allow you space to go at your own pace.
There is no framework
We are all different in ways that could never be enumerated fully within a single framework. One size fits all is an idea for commodity and not for specialty. Why would we treat our individual experiences as commodity? While there are certainly truisms about software engineering and how we interact with each other, there are also no hard and fast rules about how these truths apply to each and every situation or person. Professional coaching can provide a personal roadmap to apply these truths to your work, career, and daily experiences.
The old adage “if all you have is a hammer, then everything looks like a nail” is the best way to think about this. There is even an anti-pattern name for this: “Golden Hammer,” which begs the question: If we are willing to use this as an anti-pattern for the software we build, why wouldn’t we also use it as an anti-pattern for our personal development?
If you visit Attainable’s website and look at the services page, you’ll find just two things: Coaching and the Newsletter. What you won’t find is a framework, or some form of kit action plan. It doesn’t work that way. It requires you and your needs to be fully explored, captured, and then executed against with support from a coach who is a developer just like you.
Who is Clint?
It’s important that I introduce myself, because I believe it’s a critical part of the decision you would make for getting professional coaching.
Let’s begin with the fundamental things:
I have over 20 years of experience in software engineering
I’ve built all kinds of software from web to mobile, front-end to back-end
I have been a part of teams as small as a handful to as many as hundreds
My experience is in all the major industries: healthcare, education, insurance, finance, social
I’ve held many individual contributor roles as well as executive leadership
With all that in mind, the next thing to ask is why should I be the one you work with? To answer that I’ll describe myself through the values I hold.
Values
Emotional control
I believe it’s critical to recognize that we are humans first and that means we have emotions. Too often we find ourselves working in companies or teams, wherein emotions are considered counter-productive and that it’s best to perform robotically to be most effective. I believe there is value in understanding our emotions so that we can make the best use of them, as opposed to ignoring them.
I chose three positive emotions to define the key elements to my coaching: Pride, Serenity, and Inspiration. I value these emotions for software engineering because I find they elevate not only our experiences at work, but also they indirectly improve the products we build. Business, capitalism, and corporations are emotionless (even though they would argue they’re people, as I anthropomorphize them, but I digress), and so it is critical we find coaching and support for this outside of work and the confines that are driven by stakeholder profits and not individual satisfaction.
Empathy
If you were to ask me for one word that holds the most power and yet is the most difficult to ultimately use, my answer would be empathy. Each of us holds different capacities for empathy and for many of us in software it is not something we are taught to pay attention to. To be clear, you’ve likely encountered empathy when thinking about the user experience for your software, but this is a red, palely lit galaxy, in the deep view of our universe of emotions.
In nearly all cases, empathy will be the emotion that creates unlocks for your personal experience, the experience of your team, and the final outcome for your software products.
Honesty
Good relationships require healthy and persistent practices of honesty. And the first relationship to be honest about is your relationship to your work. Once you learn to be honest with yourself about your work, then it’s easier to be honest with others that you work with. However, there are also traps with honesty.
None of us should want to be “Walter” and very often it helps to have coaching in order to identify this and prevent it. Honesty is another super power, but most certainly can be wielded in a destructive manner, if not provided proper coaching and feedback.
Iteration and constant evolution
I’m a firm believer in small, attainable steps, on a longer path towards success. This is extremely relatable to both our personal experiences and the software we build. It’s always suggestible to avoid premature optimizations when building software — and it’s also the most repeated mistake in software engineering. So then it should be suggested to avoid premature optimization when improving ourselves and with coaching you can find the next attainable step and prevent the most repeated mistakes.
We are learning every day and should be applying that to our next steps. The difficulty is in the practice of iteration because it requires us to be patient, open, and adaptive. The following list is the set of values I’ve grown and have made culture on teams I’ve been a part of:
Do the simplest thing that works today
Deliver working software every day
Be comfortable saying “I don’t know, let’s find out together”
In a very recent experience, I’ve heard teams translate this into a wonderful mantra for measuring progress: “Just enough, just in time.” Each of us are different in our iterations, both in the size of steps we can take, and the direction we make them. Professional coaching is a way to get feedback and support for taking those steps.
Individual empowerment with a team orientation
Writing software most often is an individual effort (pair and mob programming prove this to be a dubious characteristic), but inevitably completed by a team. Unless you decide to be an open-source developer and receive no pull requests and not respond to issues, you will be working with other people. For many of us it is difficult to find empowerment and be a successful contributor to a team. This is a natural condition because as humans we identify with our works. Whether we receive compensation for it or not, we are most likely relying on feedback about our work to measure how valuable we are to the group. And because of this, we sometimes have to be selfless in order for the team to succeed, or we need to learn how to find that feedback for ourselves.
What can we do?
Having described coaching, myself, and my values, it’s now time to look at what we can do together to improve your personal experience and your career as a software engineer. First it is important that we determine the basics:
What problems are you facing that you would like help with?
What goals do you want help in achieving?
Before you step over those questions as simple and generic I’d invite you to think deeper. Here is a list of things we all typically want in our software careers:
to be promoted
to make more money
to learn new technologies
to build impactful software
to be proud of our work
to have serenity in our work
to be inspired by our work
If we take this list, and ask ourselves those questions for each one, we can quickly imagine things to be more complicated and maybe even mysterious. And this is how personal coaching provides the best outcome because it’s dedicated to your individual needs.
Improving our technical skills and learning new technology are things that happen repeatedly in any long career in software, and there are tons of material online to help with that. The rest of it however can be daunting, and professional coaching is the best way to move the needle for our personal growth and experiences.