Creating customized software for your business can help you improve internal operations, attract and retain customers or clients, and build an overall more efficient organization.
Although the benefits are many, the process itself can leave your business vulnerable to risk. There are many opportunities for a project to go off-track, over budget, or end with subpar results.
Fortunately, there are several things you can do to mitigate those risks and maximize the time and money spent on development. This includes ensuring that the development team you’re working with is up to the task at hand.
To help you get started, we’ve compiled a list of questions that you can use to determine if your team, internal or external, is prepared to take on your next software development project.
Does your development team have a clear understanding of both technical and business requirements as they relate to your project?
Custom software isn’t just a technical asset for your company. It’s a tangible testament to how well you communicate with customers, clients, employees, and stakeholders. To create software that meets your business needs, your development team must approach the build with practical business insights in addition to their existing technical skills.
To create quality, scalable software for each client, we start and maintain a dialogue that pinpoints the business goals and expectations. From there, we work with our development team to determine how to bring those goals to life by incorporating the tried and true technical practices.
That dialogue, however, must continue throughout the development process. Over time, we’ve found that even a brief 30-minute innovation session can save hours of interaction and bug fixes later on in the project.
Have you audited your technical stack, and if so, is it suitable for your project needs and industry requirements?
A “technology stack” refers to the technical resources and services that your team will use to build and manage custom software. One way to look at the importance of your technology stack is to compare software development to building a home.
When you build a home with subpar resources, you’ll likely find a future that’s filled with repairs, at best. At worst, the house becomes costly to upkeep or eventually beyond repair. That same concept is fundamentally linked to software creation.
We see this play out frequently. For example, when asked, 60% of our clients report that poor technology choices are embedded in their solution, leading to a costly “rips and replace” strategy that can be as expensive as it is inefficient.
Better resources will yield a better, more reliable result, but how do you know if your stack is worthy of your project? The first thing you need to do is familiarize yourself with exactly what resources are at your disposal and compare those to your development goals. Another great way to gauge your technology resource pool is by soliciting feedback from other trusted entrepreneurs.
Do you maintain ownership and total control of your source code?
When you maintain ownership of your source code, you mitigate many security risks, including those related to intellectual property protection.
Intellectual property protection can become a problem for many companies who work with third-party development teams that reside outside of the U.S., as it can be significantly more challenging to enforce IP practices and regulations.
If you’re developing software in-house, your development team should have a documented source control process in place. If not, you must establish one before beginning your project and mandate that your team works under a source control system, like Git or SVN.
The process or policy should also mandate that development teams refrain from maintaining source code on their own repositories. Even if you or a team member is added to the repository, they can remove you at a later date — a costly and all-too-common mistake.
Do you own your hosting infrastructure, specifically application hosting, databases, and domains?
Allowing your development team to host their application, database, or domains may yield upfront savings. Still, it also sets your business up for long-term risks that can have substantial financial and reputational consequences. For example, if you’re dependent on your development team for coding and infrastructure, any downtime or problems on their time, like going offline for a migration, can leave your customers or clients in the dark for the duration.
That’s not to say that you shouldn’t rely on a development team, but it does speak to the importance of choosing a team that you can trust. If you rely on a third party for application, database, or domain hosting, then be sure to have a precise hosting and maintenance agreement in place that outlines your ownership rights as they relate to the application, data collected in databases, and service expectation.
Further, it’s also a good idea to have a logistical and legal plan if your relationship with the team ends, either amicably or otherwise.
Regardless of how you plan to manage your application and database, one golden rule is to maintain ownership of your domain (e.g., .com, .net, .org, etc.).
The best course of action is to own, manage and finance your own hosting account and add your development team as administrators. That way you retain ownership of the resources required for operation.
Do you and/or your development team have a specific policy and process designed to govern source code documentation?
Where is the physical location in which your project resources will be stored and development activities managed?
Today’s economy is built on a global workforce, which has yielded advancements that would not be present if created in a vacuum.
But when it comes to your code and development, there is a significant risk associated with contractors or developers who save copies of your source code, database, user data, or other information on their personal computers while working on your project, even if you’ve sought legal protection through a detailed contract.
It’s not just about where your data lives, however. Teams often share source code via zip files and FTP servers without stopping to consider the true sensitivity of the assets they are sharing.
Consider working with experienced teams of professionals who are trained to protect your project resources with proven industry standards and, most importantly, will give you the advantage of more control of those resources.
If you aren’t sure how your development team stores and moves project resources, make it a point to discuss the logistics with them. It’s also a good idea to determine how you’ll manage resources if you need to stop working with the team.
Who will act as a dedicated liaison to keep external development resources accountable?
Although we strongly believe that engaging a technology services company is an excellent idea for startups, small businesses, and even enterprises to create custom software solutions—you must have a trusted resource from your team to keep those external resources accountable for their timelines, actions, and product quality.
Sadly, all too often, we meet with clients who have, despite the best intentions, partnered with agencies or freelance developers who take advantage of a gap in technical knowledge and inflate timelines by as much as 300 – 500%.
A trusted resource can prevent this type of scenario from playing out and keep your external resources accountable for their timelines and their actions, and product quality.
Though this could be a leader or founder of your business, it doesn’t need to be. You can also contract a technical project manager or another qualified resource who can act as a reliable liaison between your company and the external development team.
If that’s not an option, you can add a secondary layer of precaution by asking your development team about what processes and procedures they have in place to prevent this and determine how you can maintain transparency and accountability.