The start of a software development project is full of unanswered questions. The first big question is, which company is the best fit for you? Throughout Seamgen’s lifetime, we’ve been asked all sorts of questions by prospective clients. Based on these experiences, we’re providing a list of 5 questions that will help you decide which software company you should partner with. However, we’re not recommending that you only ask five questions!
1. What steps or processes do you follow to ensure that you fully understand the requirements of our project?
The majority of IT projects fail. A recent survey conducted by Innotas, a cloud portfolio management provider, revealed that 55% of IT professionals reported they’d had a project fail. Often this is a result of a misunderstanding between the software company and its client. It’s common for a client to understand their problem space so well that they assume certain aspects of their system are obvious. This leaves room for error because a developer will only build what they are explicitly told to develop.
You may not be a software or requirements expert, so it’s often challenging to communicate the project requirements with precise detail. It’s incumbent on the software company to know which questions to ask for further clarification. This enables the company to eliminate any gaps between the expectation and what is delivered. An experienced software company has the ability to understand the hidden complexity of features and the varying navigation choices. So, not only will the features work, but they will be designed to enhance and maximize the user’s experience.
The best way for a software company to fully understand a customer’s requirements is to get to know their company. Ask a lot of questions and learn about their objectives. Taking a look at their previous projects isn’t a bad idea, either! To start things off, the designer, user experience professional or software developer should begin sketching ideas making it easy for the client to clarify their expectations. Then the developer can work their way up to a functional click-through prototype.
2. Will you be using any/all remote resources?
Many software development companies only have a sales team in the US and their developers are located somewhere in Asia or Europe. This creates immediate obstacles, which are difficult to overcome. Not only are you on different time zones, but the language barrier makes it difficult to effectively communicate your needs.
As a client, the ability to communicate directly with the software engineers that are building your platform adds tremendous value. To work most efficiently and effectively, a software engineer should be able to speak the same language as their client. A disconnect between a client’s ideas for the software and the developers building it can lead to multiple time-consuming iterations. If you’re dealing with international engineers, this means you may be waiting for weeks to receive the next update.
The best software company to work with is one that has their entire team under the same roof. This facilitates the flow of information from on-boarding a new client to providing the perfectly crafted website or mobile app.
3. What libraries will you be including? Will there be associated licensing fees?
It happens quite often that developers want to save time and money by building systems on top of in-house or third-party platforms. That’s not necessarily a bad thing. It would be very expensive to ask a software company to build every last line of code from scratch. Using third-party platforms will most certainly speed up the process and also save the client some money. However, there are some things to look out for.
You don’t want the backbone of your software to rely on a program that requires a yearly subscription fee. The client should be confident that the platforms their software depends on will still be around in the future. The software company should be using a very popular framework or library. It’s also imperative to know if you will have access to the entirety of the source code.
A developer using an in-house platform would not be willing to release its source code. So if the relationship with the software company goes bad, the client wants to be sure that they have everything required to be able to change, fix, or build upon the software system they have paid for. If the client doesn’t have access to the entirety of the system, they might not be able to make changes to it without going back to the original developer.
4. Will you be providing a fully automated deployment system?
It’s either manual or automatic deployment. Automated deployment is the better answer. The deployment process is one of the largest sources of risk in a software project. Deployment can be a complex process involving things like multiple library installations, directory structure creation, compilation of source code, and moving files to the production environment. Manual deployment increases the likelihood of discrepancies between the development and production environment, which can be difficult to diagnose and costly to fix.
When using manual deployment, often the only person who can deploy the code is the developer, and often the deployment only works from the developer’s own computer. If the developer is not available, the system may not be able to be deployed without significant research and updates. You never want to be dependent on a single person or single computer.
To prevent unnecessary headaches, automatic deployment ensures the development team has uniform development, testing, and production environments. Furthermore it supports the continuous delivery of code into any environment, allowing fixes to be rolled out quickly. During a fully automated deployment everything should happen in a scripted and very repeatable fashion. The ideal scenario would be a software company that incorporates a fully automated, one-click deployment.
5. Will you provide a full suite of automated tests?
In the software development scene, many people expect that testing their final product is part of the process, but it typically isn’t. When software engineers are asked how long it will take to build something, they’re just thinking in terms of the absolute minimum to build the specific feature. Tests wind up being an afterthought.
Having a software company run a full suite of automated tests will have a slightly higher price point, but the value add is unbeatable. The company is not just providing you the basic features to get you underway, but they go one step further to write a set of tests that guarantees the software works the way it should. The company should also provide tests that allow you to make changes and know that you didn’t break something else accidentally.
The amount of time required to write tests can vary significantly depending on how thorough you want to be. How good do you really need your software to be? If you can’t afford the software to make a single mistake, the software company could be spending up to 10 times the amount of time it took to develop the feature itself. Automated testing enables the developer or client to run the test code as many times as they want, reliably and repeatedly.
These are just a few of the questions you should ask. We hope these questions will help you choose a software development company that is right for you. If you’re looking to start a project, you’re about to embark on an exciting journey! You get to call the shots, but it’s important to find the company that can deliver on your ideas.
Thanks for reading!
If you’d like to learn more about tech and the latest trends, check out our other posts. To inquire about any custom application design or development, please contact us.