Delivering software that is critical to your digital business growth and transformation relies on your own operations model as well as a network of reliable and trusted IT service providers to outsource all or part of your digital requirements scope.
Maintaining a healthy relationship with those potential partners relies on clarity of purpose, scope, and communication. That sounds logical and simple.
However, reality is not that straightforward and I am sure your own experience managing numerous digital and IT projects have led you here to find solutions to the typical challenges that plagued your capability to deliver the desired results.
So, what are the most important things you need to watch out for when outsourcing to IT service providers?
Enforce project code to be implemented at your own code repository and not on the provider.
Setting up an enterprise account on bitbucket and hosting all your project codebases there is strongly recommended. Get any third party to write the code on those repositories only so you’re able to track code commits and software commit processes.
Get any software team members working from a third party to submit their ssh keys to issue git access.
More common than not, Git access can get messy especially when you have internal and external software engineers working together. Its very important to streamline the access directly from engineering teams' machine SSH keys to ensure that they can be revoked and refreshed should any issue arise.
If you’re using GitHub, you can follow those steps to issue and add SSH keys to your github account.
Ensure that your software managed teams submit and maintain the following documents:
Software Technology Stack document: This should list all technologies used on all components of the software.
Software/App Architecture document: This should list the design of the platforms. Components and software communications design and anything that should be understood on the application level.
Infrastructure Architecture document: This should list the design for the servers, networking, database and all infrastructure related items for each of the environments the projects is running (Dev, staging and production). This should also include: Network firewall rules, exposed posts, DNS records for all public facing URLs and Load Balancers.
Release Management document: This document represents how the teams release software to any of the target environments. The Release Management document should at least feature:
As project owner; accessibility to all tools will be critical to ensure hassle free transitions and change management. A common scenario to highlight is when you’d be forced to quickly ramp up your teams and resources; the last thing you want is the hassle of seeking access.
Important tools that you must always have access to include:
What should you require from your partners:
Typically when you work with partners and vendors, you will host very precious intellectual property at their premises, and its very important to make sure they have the basic governance in place to protect your intellectual property and codebase.
The following are the minimum confirmations you should get when attempting a partnership.
Mobile app distribution is as important as everything else. Here are the top things to make sure your partners are working against:
We are only interested in designing + building ground breaking experiences!
We don’t care if you are a global enterprise or a startup… if you have the real ambition to grow, we’d like to talk to you!