I guess I could have use a more sophisticated reference in the title like Know Thyself but I can’t help quoting the most electrifying man in sports entertainment, The Rock.
Know Your Role!
When trying to breakdown the relationship with your clients and to help define expectations you need to define your role. One high level way to do this is to decide if you are a contractor or a consultant.
A contractor is someone who comes on to a job site to execute. They are given all the specifications they need. They act in a professional manner. They produce.
A consultant may produce as well but their primary responsibility is help design the solution. They work with the client to understand, identify and document the problems and the pains. Then through their lens of their experience in the industry propose a solution. Usually they stick around to help build that solution.
If the client looks to you for help to build the product right, you are probably a contractor. If the client looks to you for help to build the right product, you are probably a consultant.
Personally, I consider myself a consultant. I love designing the solutions and while I can code, and continually strive to improve my craft, coding by itself is not truly fulfilling.
It’s been challenging over the last few years since leaving independent life and working for larger companies. These days I don’t have a lot of involvement in the sales process so by the time I’m working a project expectations are already set and a fair amount of time it feels like we are hired as contractors, which I have nothing against, but if I’m going to be a code mercenary you need to be really good about those specifications and more times than not, they fall short. They explain only the happy paths or they misuse platform norms at the cost of more engineering and two steps back in user experience.
I suspect this phenomena is not an isolated problem but discussion about that will have to wait for a future post.