In case you missed the firestorm from a couple months ago, I posted a little comment that said: “Three forbidden words I don’t want to hear from functional consultants – I don’t code”. Now granted, I readily admit that statement lacked any depth of context and one can choose to interpret that statement in any number of ways. We all look at the world from our own perspective and as we all have a tendency to do when there isn’t enough context we’ll either ask for it (sensible action) or we’ll just fill in the blanks ourselves. A few decided to frame it in a context where it sounded the most egregious and then took up arms against it. So let’s now adds some clarity and debunk the false narrative.
Should Functional Consultants Know How to Code?
In this bell curve of practical skills, there are a large majority of people who may fall somewhere on the lower part of the curve and require additional work in their core focus area. If you haven’t mastered your core focus area then it would probably be best for that person to continue on their current development journey. The challenge with some of the responses to my post was how the underlying context was framed. The added context was that I said functional consultants should do and be everything. This was an exaggeration of an added context that never existed, but it certainly made for great dragon slaying. So then the question remains, should a functional consultant ever choose to know learn any code? Good question. It depends.
Consulting Is A Higher Stakes Game
I always say consulting is much more adventurous (dangerous) than being an employee. Consultants typically make more money than employees, but there are pros and cons to consulting. While an employee typically has a degree of stability in their environment and deal with a more normalized set of scenarios consultants do not. Consultants that stay employed will come in contact with a number of customers, environments (technological and political) and situations. It’s in this type of work that you find that your expectations tend to be challenged on every engagement because of something you would never have expected. Sometimes these unexpected things hit you in the chest like a sledgehammer because they make success significantly more challenging. This could be having to integrate with outdated legacy technology no one uses anymore, politically uncontrolled scope creep or budget cuts that leave you with half the team originally planned mid-project. It’s in these cases that a single role specialist tends to not be as helpful for the team to achieve success. This is where statements like “I don’t do X” can become annoying especially when you are the one (me) being held responsible for the project outcome. It’s okay to not know something and perfectly fine to provide a rational argument why someone else should do that thing, but my expectation is that if it’s within your capability to be resourceful when necessary.
I take the default stance that people on my teams are smart, intelligent and have much more capability than they give themselves credit for or allowed to be. I’ve had projects where people have literally had to learn new technologies simply because it was needed and we had no other choice. You can blame the customer. You can even blame your company’s sales team for putting you in the situation, but once the deal is signed it’s rare the customer will back off what was previously promised. In these situations, you have to get creative and the work with what you have.
I myself, have had to learn specific customer platforms for integration purposes that I came in with no knowledge of or intent to know. The reason I’ve been successful in my career as a consultant is I don’t use titles or cop-outs to deflect what is necessary. As a result, I can confidently say my skills are sharper than most because I’ve seen and experienced more than most. I look at every project as a learning opportunity and one of my goals is to give my team a quality experience they can learn and grow from as well. This is not only mutually beneficial, but it means people who end up on my team again will be that much better the next time.
Enter the Techno-Functional Consultant
There is a growing group of people referring to themselves as techno-functional consultants. It seems that many of these are developers who have learned business analysis, but there are also many business analysts that have learned some code as well. While there is some developers who like to think we’re special knowing how to code I don’t see it as something that anyone with average intelligence can’t learn.
The exceptional techno-functional consultants I’ve seen come from the business analyst side were already masters of their focus area. While they couldn’t do everything I would do in the code we were able to collaborate on a much higher level and accomplish more than what a team three times our size could in the same time. The connotation of cross-functionality isn’t to say that one should sacrifice core skill set to learn another, but realize that while we have a main skill set there are other complementary skills can increase team effectiveness and reduce knowledge gap risk.
It Takes Dedication
To be really great at your core skill and build practical cross-functional skills in other areas requires a lot of work. It’s not something that an average person can do well and as such, they should probably stick to their core. Only people who have the passion and drive to be the best should even attempt to be a true cross-functional consultant. If you’re the kind of person who spends time after hours at the office tinkering with platform features to see how they work or you read books while all your other colleagues are out at the bar socializing then maybe you might be one of those people. If not, there’s nothing wrong with being average and sticking to your core skillsets.
If however, you aren’t satisfied with the progress of your career or feel you want more than what everyone else gets then you’re going to have to do something different. If you do what everyone else is doing you’ll probably get what everyone else is getting. You’re going to have to grow outside the box and titles others are placing on you. You’ll need to rise and grind every day to be the best. The bigger your dream the earlier you’ll have to wake up and later you’ll need to stay. While everyone else is watching Game of Thornes you just learned how to create Power BI charts. While everyone else was out socializing you finished studying to pass another certification.
So when I say I don’t want to hear the words, “I don’t code” or “I don’t do X”, it’s not that I expect everyone to be everything. I just expect and hope people are being genuine and doing the best they can for the team. Sometimes that means someone needs to learn something new if we’re going to live to tell the tale. Maybe that means someone needs to learn AS400 RPG code or Power BI or how to integrate with the Career Builder API when we have no one on the team that does and we can’t just bring an expert in. What are you going to do? Sometimes all we can do is what we can with what we have and a “I don’t X” that ends with a period may not cut it.