Welcome back friends, I hope you spent an energetic weekend – FULL of fun and achievements ?. In my very first blog post (Hello World, I am blogging!) I have mentioned that the blog core focus will be AI services and human side of software industry; Hereby, I am kicking off by discussing IT or Software Consulting from my few years’ experience. Currently, I am following 75% technical and 25% soft skills blog posts, which means to expect me to write three blog posts on AI and single blog post on soft-skills on a monthly basis!
I have been asked many times by friends: What does IT or Software Consulting mean, and whether I spent my day wearing fancy suits and spending long hours with open buffet lunches with clients. Apparently, there are many misconceptions in the industry around Software Consulting, let us discuss some them.
IT Consultant title is widely MISUSED ...
SOME companies use it to refer just to outsourcing, a work that the company is not planning to do, such as an OLD LEGACY system they do not want to handle, or something which is considered outside the business scope.
OTHER companies use to refer to staff augmentation, that is they have a short term need to a resource, and they cannot justify the long-term business case for a headcount. Therefore they call an outsider.
OTHER companies use to refer to someone with a niche skill in a particular area the business needs; This can be anything such as: CI/CD pipelines development, automation testing, AI or even blockchain.
Therefore, If you face a job title with “consultant” title, you need to be pretty critical on what it could actually mean and do your digging and research to verify that what is written does actually MEET your plans and expectations. That is what I am trying to help with this article, to draw a clear line between a real IT Consultant and a regular cowboy coder.
I prefer to use the term IT Consultant to refer to a specific business and technical skillset blended with GREAT personality traits. Let us have a detailed look at them.
From a business point of view ...
You are someone who is clearly able to understand customer issues and pain, you can manage an easy and direct conversation with clients WITHOUT much technical jargon. For example, a client is asking about fetching some information from another party, you just need to tell him that you will implement some integration with the other endpoint. There is NO need to discuss SOAP/REST, XML schemas, data transfer formats, etc. all these technical jargons will just make your client confused – IN PARTICULAR, if they are not from a technical background. Moreover, understanding customers’ business domain language is precious, being able to speak with accountants in proper accounting terms will establish an emotional and professional bond with them, since you are the EASY guy to work with, it will make you the GO TO guy if they face any issue or have any requirements.
You are someone who can justify architecture and quality requirements to business terms. There is always a mismatch between business and technology language; unfortunately, we technology people must adapt because SIMPLLY business people have the money $$$! Business people are KPI-ied (Yes, I introduced this term!) by ROI, TTM, value proposition, etc. and this is just what they care about. It does not really matter how great and how amazing the technology you are proposing IF you do not have the business argument, at the end of the day, the business people will be questioned by their higher management on why they had those HUGE IT expenditures, and they must cover their backs. For example, if you feel implementing an API gateway for legacy APIs would be an excellent solution for cross-cutting concerns such as authorization, authentication, throttling, developer’s portal generation. You can create a simple hours estimation on how much it will cost to implement those cross-cutting concerns by yourself plus the maintenance overhead and multiply it by the developer hourly rate V.S. How much it will cost to use a ready API gateway and show the math to them; business people LOVE those who provide them with numbers, and if you can show smaller numbers, they will happily accept, again no one can argue 2 is greater 1.
You are someone who will happily scrutinize and improve customer suggestions. Quite often, customers will come to you with some tips to solve their business problem based on their limited IT knowledge. Do FIGHT the urge to implement their requirements immediately and seeking to have (HAPPY) customer. Always, rethink their solutions, its drawbacks, potential hidden costs. NOT only that, but you should also come with a better suggestion to fix the problem for them. For example, one time I worked with a client who wanted to scale their whole solution and came up with some suggestion that would cost 3x, I had a workshop with them and from the discussion, I found that they were over complicating their requirements, we came up with an alternative solution that would scale limited part of their solution which is their actual business interest, the cost went down from 3x to x. If you think about this on short-term in dollars money we lost, but on LONG-TERM in terms of trust and opportunities, we won A LOT.
There are many other business skills that an ideal Software Consulting person would have, such as project management, time estimation, and cost-breakdown skills, I opted to choose the ones I feel much important.
And now, this finalizes Part - 1, In the next few days I will continue building on this and discuss technical and personal traits, let me know what do you think!