More than half of the IT projects fail. There might be a number of reasons for it, the major one being not having the right people do the right job.
The demand for software engineers is growing, local talent pools are shrinking, in such case outsourcing software is often the most reasonable and cost-effective business strategy. Nevertheless distributed software projects feature far greater complexity, thus they require effective collaboration.
I have been in the IT industry for the last 15 years. I started as an intern, went through various flavors of Software Engineer, and served as an Application Architect at a bank for a while. During that time I worked with hundreds of people, including those hired directly by the employer I have been working for, but also a number of outsourcing agencies from Europe, Asia, the US, and Africa. Many of them were great. Some of them not necessarily.
Here are the things I personally try NOT to do, when about to work with someone on a software project.
Mistake #1 Expecting IT experts to only do the IT part
Oh how wrong you can get when you believe the IT department is a silo that should just “write code”.
Now this is a flawed assumption. You cannot have your business digitized by people who simply do not care about what it does.
When talking with the team for the first time and you pitch them on the wonderful product you are trying to make what you should hear is… doubt.
Yes! If they are experienced they should already see the missing pieces in the picture you have just shown them. The questions you should be getting are:
- How is it going to make money?
- What is the business value for your customer?
- How is it different from the competition?
You should feel as if they are super curious about how exactly your business, that they are about to put digital, is going to work. Believe it or not, they do not want to steal your idea, but good specialists need to believe in what they are doing. This will give them inner motivation to change the world together with you. Because you not only are looking for good technology specialists, but also proactive business partners who will help you make great things.
You can read how proactiveness played well for one of our clients in Jakub’s blog.
Mistake #2 it does not matter how the IT works, it matters that it works
It is very tempting to believe that you can find a vendor that will take all of the “technical stuff” on its arms and you will be able to forget about it.
Oh how wonderful that would be!
But unfortunately vendors come and go. Sometimes the company just closes because of bad business decisions, not related to you. Sometimes they turn out not to be the right fit right away, but what can be more problematic is when your cooperation with them starts with a rainbow, you get addicted to them, and then it blows in your face.
For that reason you have to be sure your vendor is interoperable!
The source code they write for you should always be yours,
The team should have pro-quality behaviors in place
Constant code reviews
Up to date technical documentation creation
The code should be built upon reliable, accessible building blocks, preferably open-source
So should the time come, It would be relatively easy to switch to another vendor. But, frankly, if they do all the above, why would you :)?
Mistake #3 A good programmer is the one hidden in the basement
Stereotypes can be hurtful. We too, in the last decades, were given a label of an overweight nerd who hates the Sun and people.
Sometimes, especially if you are non-technical, you might have the impression that good IT specialists have to be that way. Hard to understand, hard to communicate with. That this is a price you have to pay for working with “the nerds”.
Not true. There are plenty of wonderful, warm, caring IT professionals out there. It’s not rare to encounter ones who:
- talk as partners with everyone, adjusting their language to what is understandable by the other peer (no jargon please!),
- make you feel comfortable no matter what your background is
- are interested in you as a person as well.
The last one feels a bit creepy :)? What I mean by this is that they are keen to meet you, spend some time with you, get to know you. A relationship between people should not be based only on work emails. You have to feel a bond in order to make great things together!
Mistake #4 IT experts should have strong opinions
IT experts should know what they are doing, should have firm opinions, and should know how things should be done.
Well, yes. This is true up to a point where your business has to adjust to the software that is created, not the other way around.
What you are looking for, are the people who:
- Are always open to a discussion,
- Do not use arguments like “this is how it should be done” without telling you why,
- Do not try to convert you to their world views,
- Are by heart AGILE.
Yes, Agile! In the current world that changes so quickly sometimes decisions have to be made very often in order to adjust to whatever is happening. Your tech team has to be ready and willing to change constantly.
Mistake #5 You rely on salespeople only
You contact John. John is very keen. Everything is possible. The price is right within the budget. They could start anytime.
Or maybe there is someone technical in the conversation. Let us call her Zoe. She says during one of the meetings that some of your ideas might be more complicated than it seems. But then John laughs and says, “those IT people! they tend to overcomplicate things. Ha ha ha.”
We like to be handled by the salespeople. They make everything seem possible and doable. Exactly how we want it. But then the IT people get the contract and they might know from day 1 that it won’t be doable within the budget or timeframe. Or both.
What should you do? Make sure the competent people are available for you from the very beginning of the communication process with the vendor. Ideally you should be talking with at least one person who will be actually working on the project. They will feel more attached to it, treat it more personal, and will deliver a better product.
You learn from mistakes. Learn from others'
I found (usually the hard way) above mentioned mistakes as crucial when it comes to hiring a software agency.
On top of that, I feel it’s important to highlight the number one rule of good business partnership. Make sure the people you will be working with communicate well, care about you and your product, and are focused on helping you achieve your goals as a top priority as opposed to making their life easier. A good engineer understands there is nothing more rewarding than a success of their client and something they will leave behind in the form of a prosperous product - exegi monumentum aere perennius - those Horace words are dug deep in every single one of us.
If the above values are something you share with me, why not reach out so we can talk about how we can make great things happen, together?