Picture the scene: you’re tasked with finding a new development partner to help solve a problem. You do an online search and ask around, but there’s so much choice. How do you know what to look for, and how do you know if they’re any good? 🤔
Here’s some of the top traits I think you should have in mind when looking for a development partner.
Not rushing at the start
Let me just say this from the outset: software development is hard. You definitely want to take enough time doing planning, especially if you’re looking for any bespoke elements.
Of course basic human psychology gets in the way. You’re excited at the start and you just want to get on with it! A developer might feel the same, thinking “I’ve done this before, or it’s a bit like another project I’ve done” etc.
This is where you should hold your horses…
As humans we’re also not very good at guessing how long something will take. Not planning enough, as in most endeavours, will very likely lead to problems down the line. I’ve seen this many times so trust me when I say that proper planning is imperative.
A development partner should be asking lots of questions
So what does this look like? For starters a development partner should be asking lots of questions. This should be about understanding context, stakeholders, requirements, business objectives, and long term plans. You cannot deliver a good solution and a strong foundation for any future growth or change, if you don’t properly understand the problem and context.
I often run a discovery phase before embarking on any production to fully ensure that everyone understands requirements, and the actual problem that we’re trying to solve. By doing this we’re aiming to reduce the amount of unknown elements as much as possible so that we don’t run into surprises later.
This also allows me to give you a much more accurate indication on the level of investment because we have a very good understanding about what needs to be delivered. Without this the only real alternative for a developer is to inflate estimates and hope that it covers the project. It often doesn’t, and this can breed mistrust and resentment in the relationship.
Can they speak your language?
Strong communication is imperative in any relationship, but this isn’t always the best asset for some technical people. I mean no disrespect by saying this, and I’ve been guilty of it myself on many occasions, but a developer needs to be able to clearly explain difficult concepts in a non-technical manner.
I often use metaphors to try and help people understand such technical concepts. For example: comparing how development is like the steps involved in building a house, and what goes wrong if a step is missed. If you try to decorate before the roof is on then things are very likely to get wet…
Make sure your chosen partner explains things clearly, helps you to understand the problem/solution, and makes you feel comfortable and confident with the chosen approach.
Do they have experience?
It’s a fairly obvious one, but do they know what they’re talking about? You might check on this multiple ways, but career history, or word of mouth are good initial indications. As is asking to see previous examples of work done for others.
Do they care about their craft?
It can be difficult know if someone cares for their craft, especially as someone who isn’t in the same field, but this is an important factor. Try to ascertain if they follow industry standards and best practices. Do they have technical advice to offer to the wider world (perhaps a blog), or is the whole thing maybe just a front without the creds to back it up?
It’s both a good and a bad thing that our industry doesn’t really require any kind of accreditation. Anyone can set up as a developer and start providing solutions. This is in the spirit of the open web which is fantastic in many ways, but you obviously need to take measures to protect yourself. You get a good feeling for someone when you speak to them, but also consider the elements outlined in this article to make sure you’re speaking to a professional that isn’t going to leave you in a muddle.
Looking further ahead
Business needs evolve over time. You know that. So don’t expect your project to stay the same either. You need to be working with someone who has a future-based mindset, someone who will (within reason) build a project that allows for change, and not paint you into a corner.
Are they asking you about future growth and plans?
Are they advising on an approach that allows for changes in direction?
Are they considering the fact that your customers and therefore product usage will grow over time?
I find that the best mindset for most projects is to work on a smaller number of business critical features first, and then iterate over time. This allows you to get things out into the world more quickly, but also allows you to change things as you go rather than signing up for a behemoth project that might be a lot less impactful when finished 12 months later.
Being realistic
At the end of the day, it takes as long as it takes if you want a premium product. You need to be realistic about timeframes, and anyone you work with should be too. Anything that involves multiple people will take longer than you think to achieve. This is ok! But you should accept and plan for this from the start.
Anything that involves multiple people will take longer than you think to achieve.
You should also be realistic about features. Do you really need that thing that does X and stops someone clicking a button once a month? You might do! It’s your call, but it’s worth asking the question.
Others things to think about are:
Have we explored enough options?
Is there adequate time in the plan for testing and quality assurance?
What happens if stakeholders provide feedback and things need to change? Is there time to allow for this?
People need time off - has this been thought about?
This isn’t about being negative, or getting in the way of progress. It’s about going into things with eyes open. The last thing you want is to be invested into a solution that isn’t going to deliver what you need just because of a logistical misstep.
Gut feel
It’s hard to beat gut feel when all is said and done. It’s difficult to reconcile that feeling that something just isn’t quite right. If you do have doubts though, ask for assurance. In my experience it’s best to just level with someone and find out specifically how they can solve a problem you have, or reassure you that they’re the right choice.
Not everyone is going to work well with everyone else, and it's best to choose the partner that best lines up with your values. Trust is so important and you need to feel like you’re on the same page.
The question I would ask is: will I be able to have the impact I want if we work together? If the answer is no, then you probably need a rethink.
You’re ready to go! 😌
So there you have it. Whilst this isn’t intended to be an exhaustive list, I personally believe that all of these are important things to look for in a development partner.
To quickly recap, you should look for:
Someone that asks questions and does proper planning.
Someone that can speak your language and explain difficult concepts.
Someone with the experience to deliver.
Someone with an eye on the future growth of your business.
Someone who is realistic about what can be achieved in a particular time frame.
Someone that makes you feel confident, comfortable and that you can have the desired impact by working together.
If you have these qualities in a partnership then you should be well set to have a big impact and make your ideas come to life.