What are the best practices used by firms to outsource IT developments for a project? Originally appeared on Quora: the place to gain and share knowledge, empowering people to learn from others and better understand the world.
As a person who wants to outsource your IT development (or its part), you should:
1. Make sure your provider understands the business you’re trying to build with the software
This means not only understanding your needs but also the needs of your customers, the future users of your product. An IT development company should be able to understand the problem you’re trying to solve and the value that this specific solution brings.
One way to build this understanding is to start the design and development process by creating a customer persona and defining the value proposition – and that’s what the best outsourcing companies do.
The software development company should know the goals, priorities (not all the features are equally important), and deadlines. In Neoteric, we sometimes offer our clients (the one who are very early in their product design process and they don’t have these things specified yet) to take part in the Design workshops. If the client decides to develop the product with us, the workshops are free of charge. Otherwise, he needs to pay for the workshop but ends up with the specific report, containing business requirements, description of the user persona(s), user story map, backlog, user experience flow, suggested technological stack, communication plan – which can be all used by some other development company.
2. Prepare the wireframes before you start the development
Some of the IT companies offer Product Design, some don’t. It’s nothing wrong about it 🙂 But if they don’t, you need to take care of the design before they will be able to start the development.
Software developers need to know the key components of the user interface of your product. To make sure it’s clear, you need to prepare wireframes, which are simplified outlines of your websites, applications, and other software products. They are used early in the development process to establish the basic structure of a product, show the user flow – way before visual design and content is added.
3. Be specific about your requirements
When you say “we need a chart showing the number of registered users ”, the estimates of your request are an open question. It’s something that can take as little as 10 hours, but it’s also something that can end up being 200 hours. Building a chart is completely different if you need to update it in real time, if you need to zoom in and zoom out into the chart, if you need to show comparisons of the different timelines, if you need to change the granular data so you collect something every hour, if you want to see the results daily or weekly. These are the aspects that are really important when it comes to charge because they influence the workload.
And it’s basically the same for most of the components, so make sure that you point out as many details on what your product should actually do as possible.
A good framework that will help you create clear user stories is Gherkin. Here are some tips on how to use it: Speak Gherkin and learn how to collect requirements for your project.
4. Value good, transparent communication
If you need the developers to understand your business (and you do), there is no space for the Chinese whispers. You should have:
- The direct access to the developers (with an instant messenger, such as Slack, Rocket Chat, or Btrix).
- Regular calls/demos with the team (they should meet on daily stands, for you it’s ok to join them weekly – just so you know what’s going on; if the communication flow is good, you will get notified about any urgent issues anyway).
- The constant access to all the project files, including time reports, burndown charts, and source code.
5. Be aware that software development costs
There are ways to minimize this cost but chasing for the vendor who offers the lowest rate per manhour is not the best solution. Instead, prioritize the features you’d like to have, think which are the ones that bring the end user to the “aha” moment (that’s when he realizes that your solution helps him solve his problem better than your competitors) and focus on building them. Once you have a working product and users traction, it will be easier to raise funds for further development. Your first goal is to get to the market ASAP.