For your project to be successful, the decision about which development company to hire should not be taken lightly
While investing in custom software has many benefits for all types of companies, it is not an investment that should be taken lightly. Once you reach the decision that the off-the-shelf or out of the box software solutions don’t fulfill your exact requirements, you then need to address the question: what exactly do we need, and how do we create it?
What is a software development company?
For those that are new to the concept, a software development company develops projects for clients that are usually tailored to their specific needs. Many software development shops are generalists and have the capability to help customers conceptualize, design, and develop products. This can range from mobile applications to websites to AI-enabled tools such as chatbots, plugins, and more.
Establishing a software need
Once a client (whether a startup or large company) realizes it wants to create something unique, the question of “how do we create it” will need many internal conversations with key stakeholders to determine project goals, scope, budget, timeline, and more. These conversations often start at the molecular level of creating a product which seeks to understand who the users of the software product will be and the problem or pain points your solving for them.
Seeking outside development support
After these meetings reach a certain point, most companies will feel they are ready to get in touch with software development teams that can develop a project but also provide other services depending on the client’s product development stage. Oftentimes, a software development partner will help their client with parts of the project adjacent to development, such as product management, UI/UX design, and more.
Approaches to software development outsourcing
There are numerous approaches and ways to find a software development company or freelancers, or even full-time employees that serve your specific development needs. We have spoken before about freelance platforms such as Fiverr, Upwork, Toptal or more to discuss the benefits and limitations of these options.
Generally speaking, those that use software development companies are either struggling with finding full-time talent themselves, need to augment their current team with increased capacity, or simply want the support of a company altogether rather than piecemealing a team together with either contract of full-time developers over time. Many larger technology companies including Microsoft, Uber, AirBnB, and more have outsourced development partners that they’ve utilized for years for application development.
Choosing a partner that supports your project through its lifecycle
Access to specific talent from platforms like the above may work for some projects. However, many companies require a robust partner with a team that is capable of bringing a vision to life, ensuring functionality, usability, quality, and security. What’s more, they need to achieve this while working alongside the company at every stage of the design and development journey.
With so much at stake, it’s important to get the decision right, which means properly assessing the potential partner. Here are important questions to ask a software development company before making an investment to ensure your project is a success.
1. What sets you apart from other companies?
Every software company has their own approach to developing solutions. Ideally, you want a company that demonstrates a strong level of commitment from the first time you meet, whether the relationship develops or not.
At Asymm, for example, we take pride in researching new projects from day one. Our goal is to craft plans for solutions that will exceed expectations and detail the user experience of a product that we’ll build for a client. Our sales process is more of an understanding and due diligence phase than it is of a sales phase that’s templated standard. Since our business model is selling services, we start off every relationship or potential project with the goal of understanding our potential customers' problems and start to put the pieces together of how we can solve their problem by helping their current team or working on a specific scope of work.
Our practice is that our team invests our effort up front to properly understand a project or engagement even before any agreement or deal has been made. We help prospective clients by investing our time and resources into fleshing out ideas. In a recent example for a mobile app, we researched various ways of connecting and integrating with a company’s hardware before a deal was signed.
We understand that this won’t always lead to a project, but we believe in researching and ideating with a prospective client before both parties commit to a project. When the projects do pan out, it leads to a stronger and more productive relationship and a really strong foundation for understanding and estimating the time, length, and cost of projects.
Not all companies take this approach, however. Many won’t agree to carry out any research until a deal has been made – which can set the tone for the level of service throughout the project.
2. How do you manage your projects?
As a rule of thumb, quality software development companies are going to take a highly collaborative approach to projects. But specific project management styles can vary widely from one company to another.
There are set approaches such as agile or waterfall development methodologies – and it’s important to know which works best with your own goals. The waterfall approach follows project phases, with the team required to finish each one before moving onto the next phrase. The clear deadlines and linear progress makes this approach great for large projects or ones with lots of different stakeholders – such as various departments in a multinational company.
However, it is not the most flexible approach. As it doesn’t incorporate as-you-go feedback from clients or users, it can lead to design flaws that derail the project once discovered. It is also difficult to change the scope of a project during development.
In general, for small-to-medium-sized businesses, we would recommend taking an agile approach. Agile, offers greater flexibility for client feedback throughout the project and will allow you to remain more hands on throughout. This is particularly true when you have an experienced team that is used to working with each other as there is less need for the rigid organization of waterfall.
3. How do you price your projects?
Software projects can be priced in a number of ways depending on the services provided by the firm, the complexity of the product, the platform where it will be used, and the size of the team – among other factors. For example, a software upgrade or enhancement will involve less work than developing a new product from scratch.
In general, the pricing model will fall under three categories: fixed price, time and materials, and dedicated team. Fixed price projects are at the simple end of the development spectrum, such as creating a landing page. For a company to offer a fixed price, they need to have a very clear idea of time, outcome, and complexity.
More ambitious projects will need a different approach. The first option here is paying for time and materials, which is where the customer pays for “real work done.” This is a flexible, high-quality, and low-risk approach, with plenty of control and transparency. The main downside is budget control as there are no (or fewer) defined deadlines and no budget cap.
The final approach is dedicated team pricing, where you get a full development partner at your side. In many ways, it is like hiring your own team in house, except you don’t need to deal with onboarding, holidays, sick leave, and vacations. Also, once the project is over, there are no layoffs, as can happen with short-term project hires.
At Asymm, we take a nearshore development approach, which allows us to offer a dedicated, high-quality team in a more cost-effective way. What’s more, within this setup, we can offer different levels of partnership – staff augmentation or full outsourcing – to ensure that each project receives the level of support that’s right for them. We also make sure that any discussions on pricing take place at the beginning of the relationship so there are no surprises later on.
4. Have you developed similar products or solutions to my project?
The instinct with this question is to look for a like-for-like comparison. If you are a real estate tech company, you would naturally want a company with experience creating products for similar businesses – as we have done at Asymm. Same if your company is operating within the insurance industry and looking for insurance software design and development solutions.
While this is of course nice, it also doesn’t mean that you should discount a company because they haven’t worked on exactly the same product. At Asymm, for example, we have also had success with Insurance web design projects, healthcare data science projects, environmental health and safety projects, and much more.
Instead, look for what you would call “transferable skills” in an interview situation. Transferable skills usually equate to sizing up what a business needs in a software product and being able to describe that thoroughly to then design and develop it properly. Look for the company’s ability to understand critical features and functionality and the skill to identify who the users of the product will be.
After all, the purpose of custom software is for it to be unique. Answers that show how the company realized the technical specifications of a project are more important than a direct comparison to a project that is exactly the same as one they have developed.
5. Tell me about your development team
Development companies have different internal setups, which can influence their approach to software development projects. It could be an internal team, an outsourced team, a mixture of both, or, as in our case at Asymm, a nearshore team made up of both full time employees and contractors.
Again, there’s no right or wrong here, but the approach the company takes will influence aspects of the project. An internal team, for example, usually means there will be excellent cohesion and availability during working hours as you will likely choose a company in your time zone.
However, fully internal teams can be cost-prohibitive when compared with an outsourced team. While the quality of an outsourced team may be just as good as an internal one, there is a greater likelihood of issues with communication and collaboration given the physical and time distances at play.
At Asymm, we believe that nearshore offers the benefits of both approaches, with a team that is cohesive and cost-effective.
6. What is your quality assurance process?
The actual process that a company uses doesn’t matter excessively. Different approaches can produce equally excellent results in most cases. Instead, what you are looking for is a demonstration that the company consistently takes quality seriously by looking at their projects in a production environment.
Some companies don’t place a huge amount of emphasis on testing until development has finished but this can lead to complications. Ideally, look for an answer that shows quality is an ingrained part of the entire process. One way to be sure is to download their previous projects on the app store or ask to have demos of web applications that they have been wholly responsible for.
7. How do you remain on budget and on time?
There’s an old saying that “even the best laid plans often go awry” and software development projects are living examples of this. At some point during the process, particularly for larger projects, there may be setbacks. This is true even with good planning.
New features get introduced, new security measures have to be taken, new functionality is needed for the users, and so on. This is normal for software projects. What’s more, as many companies claim to be agile and flexible, they should be able to accommodate changing requirements and scope.
While changing requirements is never an issue for the technologists, it can cause complications for the business teams. Changing scope and shifting requirements usually imply more time needs to be spent on research and development or even in a worse case, going back to already built features and retrofitting them for the updated specs. A good software development company will have meticulous project management and be able to quote changing requirements as the project progresses.
For this question, when asking a software development firm, you aren’t looking for a guarantee that there are never any hiccups. Instead, you want to see how the company responds to unexpected events such as changing requirements, additional scope, and more. The key here is fairness and flexibility, finding solutions that work for both parties and allow for collaboration to continue even as projects shift and morph.
8. Do I retain all intellectual property rights?
It’s important to understand from the outset when working with an outsourced software development firm who will own the intellectual property once the product and accompanying work product has been created. As a general rule, the client always owns the rights to the software.
At Asymm, the client or customer automatically owns all intellectual property and related work product and software assets that we develop on their behalf. There are particulars that come into play like the fact that most software developed in this day and age is based on open source libraries and tools. We go into these specifics when in conversations with potential clients and detail these nuances out in our agreements before we start a project with a new client.
9. Do you offer support after deployment?
For some companies, after they develop and deploy a solution for a customer, they will wash their hands of the project. They consider the contract fulfilled and will move on to the next vendor.
However, as anyone who has taken part in a development project can tell you, there are frequently bugs, points of improvement, changing circumstances, and future-proofing that can continue long after deployment. In essence, a good software application should always be evolving and introducing new features and functionality for the users of the application.
Different companies will offer varying levels of support for post-build application maintenance. At Asymm, we offer various degrees of application maintenance packages depending on the size and scope of maintenance. For some of our clients we provide consistent ongoing maintenance alongside small feature development, while for other projects and clients we periodically add on large sections or features to the pre-existing application we have developed.
Generally speaking, we work with clients once a project is developed. Together, we outline maintenance goals and future feature development to structure an appropriate plan and package that will serve their software and budgets efficiently.
10. What should I know about your company that I haven’t asked?
This can be a nice way to finish the interview as it can reveal questions you forgot to ask. Really, there is no right or wrong answer to this question but it can help you to get a final sense of who they are and provide them an opportunity to add some detail and story of why they might be a good fit for your project.
For us, we believe our standout qualities are client service and our expert team of nearshore developers who are experienced in developing custom software solutions. We pride ourselves in being hands on from the beginning of any relationship, and working closely with our clients to understand their vision and bring the project to life.
We have many fun stories of how strong initial meetings led to productive ongoing relationships – but we prefer to tell them firsthand.
So, when you’re ready for a chat, contact us and we’ll be happy to walk you through the Asymm experience.