My advice for those starting out on their consultancy journey
Published in
4 min readJan 24, 2023
Hi. My name is John Bolger and I’m a senior IT consultant with Version 1. I have 15 years of experience designing and delivering large-scale mission-critical enterprise systems. I’d like to share with you some advice based on those experiences so that you can accelerate your own career, and hopefully avoid some of the pitfalls I landed in!
General Consultancy Tips:
- If you want something enough, and show enough drive and determination, then you will succeed.
- It is your career — own it. Don’t expect that you’re going to be a success just based on the day job. You have to invest in yourself, invest in your education and skills continuously. Unfortunately, I often see young developers and consultants starting out who do not invest in their own continuous development, and I am sorry to say that ultimately this is going to limit their careers.
- A large degree of consultancy is about being able to communicate effectively. Too often I see poor communication and a lack of a shared understanding of a problem as the result of a failed implementation. We need to be excellent communicators!!
- And by the way — Communication and having ‘No Ego’ are the number one (and two) traits of good team players. People who are willing to work together to achieve a common objective and who can communicate effectively and at the right time will always succeed in a team.
- Learn from your mistakes. You will be surprised to find that managers and clients alike understand that mistakes can and absolutely will happen. But what they won’t tolerate is making the same mistake twice — that is the cardinal sin.
- Ask for more work and more responsibility. Managers absolutely love these people. Yes, it gives the manager a headache in keeping them busy and engaged, but there’s nothing better to see than someone who is hungry to succeed and eager to take on more.
- Never, ever, wait for a manager to ask you if you need more work!
- Don’t be afraid to ask for help. It won’t be held against you. What will be held against you is if you miss your deadline or show zero progress on a task because you got stuck.
- Have an entrepreneurial spirit. You will never learn as much as when you are trying to build something for yourself. This is what led me down the path of disruptive technology.
- Never turn down an opportunity, you never know where it might lead you.
- Innovate! Think outside the box to add value. If you can do this, then you will be seen as a high performer and marked for an accelerated path.
- Build good relationships, and build them based on trust. Do what you say you’re going to do, and where you can, do more.
- Be yourself — just because we’re consultants doesn’t mean we’re not allowed to have a personality or an opinion! It would be a boring company to work in if we didn’t all have the ability to express ourselves.
- Enjoy your work. We spend so much time in it, so how terrible would it be to spend a life doing something you don’t love?
And specifically for the coders out there!
- Read the book “Clean Code”. I cannot abide by sloppy coding, and neither will most senior developers or architects. It all comes back to good communication skills. If I can’t understand the intent of your code in a matter of seconds, then you’ve failed.
- Learn your design patterns and best practices.
- Always leave the code better than when you found it. If you don’t, then you’ve just made the situation worse. Remember, in 10 years' time when someone checks the Git revision log and sees the code you’ve written — you want them to think that you were a good developer, don’t you?
- Be curious about technology. Don’t just do what’s in your day job — go off and learn another language, tool, or domain. It will only improve you.
- Pair up with a more senior developer to learn best practices from them.
- Be lazy. The best developers are lazy, and figure out ways to automate tasks or make their days easier and quicker.
- Question what you’re doing. Make sure you understand why it is you’re doing what you’re doing so that you’re aligned with the ultimate goals of the project. I.e. you need to understand the purpose of your task and how that is relevant to the overall project.
- Don’t accept the “this is always the way we’ve done it” statement even if it’s wrong. This goes back to my earlier point of making sure that you leave it better than when you found it.
- Communicate clearly about Technical Debt. We always have to make short-term decisions in a project which have a long-term negative impact. However, the onus is on you to communicate and agree on those decisions with the client so that there are no nasty surprises waiting for them afterwards. If you don’t include them in this, then how do they know what Technical Debt exists? And who will they blame for this unexpected surprise?
- Document your code and project appropriately! It’s a necessary part of the project and as important a deliverable as any.
I hope this helps. I will continue to add to this as and when I think of additional tips, or learn them the hard way :(