Partnership with the right development company can transform your enterprise.
Searching for a good software development firm can be a daunting process. Entering the marketplace, you will likely be overwhelmed with the sheer number of firms offering their services, with ability to create the absolute perfect piece of software that will change the way that you handle every aspect of your business.
The amount of money typically involved with creating high-quality software draws many into this field. As a result, often you are dealing directly with sales team who knows little about the nature of the actual technology involved in the process, leaving you with some tough and intuitive choices to make. The stakes in quickly providing high-quality software is crucial to your business’ success. Getting it right the first time is extremely important to you and your brand.
We have assembled a list of steps that will tremendously help you choose the right development partner that can transform your business ideas and plans into solid results, all with highest quality and within budget.
1. Do they understand the requirements?
Going out to analyze vendors with an RFP (Request for Proposal) that lack a detailed PRD, is the main catalyst for a detrimental engagement down the line. When there is lack of details, there is a high possibility for under-bidding, that could lead to missed deadlines and a frictional relationship down the line. Establishing clear expectations upfront can drastically improve the process of hiring the right vendors. Hence, the need for a detailed PRD is critical.
It is understandable that many times, the clients may not know the requirements and would want to explore the market to analyze a potential product fit. In these cases, it is better to execute a separate Discover Phase, either internally or with the help of a vendor. I have created another post to explain why a separate discovery phase is important in a large project.
If you know what you want, in detail, creating a PRD does not have to be complicated. You can find a good article here. Invest as much time and effort, don’t forget to collaborate internally with multiple team members and stakeholders while creating it.
Once you create the PRD, and have communicated that to the vendor, it is very important to have multiple calls or meetings before the submission of the bid, to make sure that the vendor understands the requirements and engages in a creative conversation with you.
2. What products and services do they provide?
Before even beginning, one of the things you should do when picking a software development firm it is to put yourself in the shoes of your customer.
Do you understand what their services are? Can they create something that will suit your needs? Some vendors specialize in certain verticals and technologies and some can provide services in a wide range of them. It is important to align your needs with the vendors services to avoid potential delays during the project. Of course you will need a demonstration of technical expertise you would expect from a high-quality software development firm, however, just like your customers or clients, will also need to seem a demonstration of a strong ability to communicate what it is they can do for you.
3. What does their past work look like?
Past accomplishments are a strong indicator of future success.
An obvious first step is to look over a client’s portfolio of past work. Pay close attention to what it is they provide. Most agencies will showcase items that highlight their best skills. They will, however, likely not list everything. While this is certainly not always the case, there may be instances where they may not be proud of some of their previous work. However, just because it is not listed does not mean that is bad or non-existent. Some materials cannot be shown due to either NDAs or a wish to maintain a client’s privacy. In fact, not showing materials for some companies may be a sign of professionalism.
Many agencies will list some of their past clients, particularly if their work does not show in their portfolio (due to NDAs or other reasons). Here you can get an idea of the types and sizes of companies with whom they have worked. Some firms specialize in working with non-profits or governmental agencies. Others work solely with large Fortune 500 companies and the like, while others have a lot of experience with smaller companies. You will be able to get an idea if the work they do fits well with your business or organization. If you are a small to medium sized business, it is important to realize if the firm lists large companies only, the cost or style may not work well for you.
One of the best ways for identifying whether a firm is reputable is to see whether or not they provide testimonials or feedback from past clients. This should provide you with some good insight into how a application development company views its past clients. Good agencies tend to elicit positive feedback; people are often willing to say something nice about a firm with which they have had a positive experience, such as their professionalism, support, and willingness to work carefully within a client’s needs.
A good effort is to ask them if they have a list of past clients, including contact information, so you can contact them directly to get an honest account of their experiences. Honest firms will often provide this on request. If the agency balks at this request, ask them why (there may be some good reasons, such as NDAs, etc).
4. Are they well-suited for your organization?
Compatibility with a development firm is important. Here are a few ways you can help identify whether you can work together with an optimal level of success
Much like software which must interact with end-users, the ability of a firm to be able communicate efficiently and swiftly with youis extremely important. If you notice an inability of the firm to be able to articulate your business needs and the goals of the software back to you, it is a bad sign. It potentially means that the firm is not going to adjust to your changing requirements and expectations down the line or that it would be missed. You intuitively understand your own needs; if they can’t communicate their software abilities and what they do back to you, how are they going to represent it to your end user? For this reason, communication skills are equally as important as the software itself.
Does the agency follow a standard for their development processes? Do they employ SDLC (Software Delivery Life Cycle) workflows? Do they use Agile?
While this may seem like a strange thing to ask a client, it is actually very important to find out if they have adopted any standard process or standards. These mean more than simple buzzwords. Using industry-approved processes drastically increases a firm’s ability to finish projects within specified time frames and budget guidelines. They may not all use Agile, however not having any clearly defined project management strategy should possibly be seen as a red flag.
Does the firm show a genuine interest in what it is you do? Even if they are not familiar with your product or service, do they take time to learn?
Of course you are asking them questions, but it is important to pay attention to whether they ask you any questions beyond what your budget is, etc. If they ask you questions, are they informed? Have they made any effort to understand your line of business? You can gauge a lot of this in an early meeting with the firm. Are they talking purely about their processes or are they asking questions about you?
A professional development firm should show some genuine curiosity in what it is you do, and may also provide some suggestions regarding your product that you may not have considered. It’s easy to find a firm that will simply do whatever you say, however one that brings something else to the table specific to your line of business, is extremely valuable. Conversely, lack of interest beyond landing the contract is something you might want to consider as a disqualifying factor.
Ideals and Work Ethic
Running a business or organization typically requires a strong work ethic; you would not be succeeding without it. You will likely want to have a firm that is in line with your personal code. If you expect yourself to meet deadlines, you will likely want a firm that does the same. This also includes honesty. If for some reason, a project cannot be fulfilled to expectations within a given time-frame or budget, it’s better for everyone if this is clearly stated at the moment it becomes a reality. If you notice any wavering in this ethic in an agency early on, this may be a sign of things to come.
5. Delivery Timelines
Do you have an immediate need to get a website launched?
You will want to ask some serious questions about whether a firm can deliver what you need in the time you need it.
How complicated is your project?
Sometimes it may be difficult to understand what technical needs are required to be able to produce what you request. Some firms may promise you things that may not be possible. If the agency asks you questions regarding prioritization, and which components need to be done immediately, this is a good sign. It means that they believe in lean development and will assist you in going to market faster with a Minimum Viable Product. Sometimes all pieces may not be deliverable as fast as you may want but may be able help you achieve pieces within segments that may assist you achieve your goals.
The size and expertise of the team
There are two components to size of the team. The normal size of the vendor’s team and the size of the team that you need for your project. The latter is more important. Also, it is important because, sometimes, the vendor may have to scale up their team to have the talent and expertise specifically suited for your project. Remember the typical scenario of Mythical Man Month, adding more people to a project is not going to speed up its completion, but having proper processes in place will. A smaller team with better processes in place can provide results that you would be amazed at. In the due course adding more resources, if needed, to the “process”, can improve the results.
Information about the size of the team is also important depending on the type of the project bid. For both fixed cost projects and especially for time and materials, it is good to know the following:
- Type of resources being allocated
- Are they full time or part time?
- If part time, how many hours are worked during the week?
- Do they tend to switch the full time resources back and forth with other clients?
- How are the knowledge being handled across the team to reduce risk and delays?
Project Management Strategy
Understanding how a firm manages their projects can help you identify whether they can meet your time constraints.
If you need a project to be completed quickly under clearly defined deadlines, look to companies that employ an Agile project management approach. This perspective is designed specifically to generate high-quality output in very short and measurable time frames. They should follow either a scrum or kanban methodology. Some follow Scrumban, a mix of both worlds.
However, If you want a project to be complete, as a whole, and with no chance of any pieces needing immediate fixes (such as is common with financial companies under strict regulations), you may need to expect a longer time for the project to be completed, and may prefer a company that uses a “waterfall” method.
Expense is always an important factor. No matter how good an offering that a firm provides, if you cannot afford to spend what they request, it is a waste of both of your times.
However, don’t give up quickly, just because you think you can’t afford to build a game-changer of a website. Look for a firm willing to adapt to your financial needs. Many good quality development firms can help you boil down your goals into something that can work well within a limited budget. You’d be surprised at the scalability. You may be able to trade off some of the features but still provide your customers an excellent experience. Similarly, you may not be as concerned with the “look” of a product so long as it has the features you need. A good firm is usually willing to brainstorm with you and help identify the areas with the greatest amount of benefit to your company.
If you have a clearly written Product Requirements Document (PRD), a fixed cost bid is a better option for you to keep the budget under control. If you are letting your requirements evolve over time, then Time and Materials is a better option. A good vendor should be able to offer both based on your needs. Remember, in Time and Materials, all services are billable, even if it is QA or Project Management, as opposed to fixed cost where these costs are usually absorbed in the development costs, which itself must be having a buffer. There can also be a combination. The initial MVP could be a fixed cost build with the minimum clear requirements and follow a time and materials from there onwards. In this way, you will have a chance to keep budget under control as well as test the market. A fair win. If it is a large project and you don’t have a PRD, see why a separate discovery phase can help you in the long run.
You can also reduce cost with decisions to buy vs build certain components of your product. There are many SaaS options out there that you can rely on for particular components of your product. You should be asking the vendor which of those can be used in your product and which ones need to be custom built. If the cost-benefit analysis and technical feasibility align with your expectations, always buy instead of custom building that component.
Although not initially, hosting your product can get financially cumbersome down the line. Make sure to ask your vendor if they offer Cloud Optimization Services on a frequent basis to make sure there is no unnecessary spending on the cloud infrastructure.
7. Support and Maintenance
No matter how much effort is put into a project, there will invariably be support needs. Perhaps a valuable customer has requested a feature which you did not anticipate? Maybe a previously undetected bug has been spotted. Things happen in your application and there are factors on which we have little to no control. There are different types of support and maintenance to address these issues.
You will sleep a lot better at night knowing that somebody can take care of this for you quickly. It is good to ask the following:
- How well-staffed is the firm for the support you need?
- Are they willing to be on call if needed?
- How do they assign the priorities to issues?
- What are the response times to the issues of different priorities?
- What is the escalation procedure?
- Do they have a Standard Operating Procedure setup for the operations of such support?
- Are they willing to operate within the communication channels you are comfortable with?
- How many layers do you have to go through before somebody fixes the issue?
Security is a very important factor in choosing the right support strategy. The vendor should be able to implement adequate security strategies and infrastructure in place to protect your data. Read more on DevSecOps to understand how the vendor incorporates this on their daily routine of product development.
Depending on the size of the project and the type of bid (usually for fixed cost bids), a good quality vendor should provide you with a time period for application and cloud maintenance free of cost after the launch of the initial version of your product. If you need the services beyond that, make sure to ask for that in advance as you may get a fair discount based on the type and time span of the services needed. Usually, the vendors provide these services on a retainer with time and materials billing. Having a very good idea about what type of support the development firm provides after the project is done is very important to your long-term success.
Although each of the above factors play a significant role in predicting a good relationship with a potential vendor and success of your project, it is better for you assign your own priority to each of the above and interview the vendors based on it. You may be able to forgo some factors if your higher priority ones are met. The reality is that some firms can certainly handle all of it, and create a high quality product. Arriving at a shortlist of them involves intensive effort. As quality software requires a significant investment, it is absolutely crucial for you and your business to be able to assure that you hire a firm that will provide you with not only software that you have requested, but software that will serve the real needs of your company.