What this Guide Covers
This guide is written for project managers of digital products and project owners in a company (corporates and startups). You don’t need to have a technical background, but it will be useful to have some understanding of technologies, software development approaches like agile and SCRUM methodology, and UX/UI design.
Each section of this Guide to Choosing Software Development Agencies will walk you through the considerations when approaching digital studios or agencies to find the best fit for your project. This guide can help product managers and product owners understand the types of software development agencies available, how to approach agencies to ask for quotes and how to evaluate which agencies may fit your project priorities.
By understanding how development agencies work, you’ll fast-track your way to navigating a successful collaboration.
Note that this guide is an advanced guide and makes some assumptions about baseline knowledge. This guide expects that that readers have done some research and have some knowledge on:
- building a successful mobile app
- validating a business idea
- Agile development and SCRUM Methodology
We also assume that a reader already has an idea of the problem they want to solve with digital solutions, whether it is a customer-oriented product or an internal company tool.
This Guide to Choosing Software Development Agencies includes:
1. Framing your Project
2. Choosing a Software Development Agency
3. Contacting Agencies and Getting Estimates
4. Maximizing Meetings to Get Comparable Answers
5. Evaluating and Choosing an Agency Partner
Being a Good Product Owner
Understanding your role as a product owner will help you communicate with agencies. As the product owner, you will often be the key contact point between your team or company and the agency. Having a clear product vision is important to kick-starting the project and also evaluating the agencies you are in discussions with. Whether you are a solo entrepreneur or working for a corporation, knowing some of the factors below will help you frame your project to start discussions and managge expectations.
Framing your Project
In order to approach a development agency and get a quote, you have to have a clear idea of what it is you are building. Are you developing a consumer product, for what demographic and what solution does it offer? Does your product help improve customer experience (sales) or employee experience (productivity)?
Budget, timeline and project scope are three factors every project manager/owner needs to consider for a software project. Understanding the priorities of these three factors is important.
These projects have a fixed budget or hard delivery timeline that a team works backwards from. Understanding this, the project will likely need to make sacrifices in features or quality to meet the budget/time constraints.
These projects are focused on product scope to estimate a timeline going forward. These projects will adjust the budget and timeline based on the scope and features desired and have more flexibility to add features later on.
Overview of Building an Idea into a Final Product
When contacting a software development agency, it is important to be clear on where you are in the software development process to choose the right potential partner. Below is an outline of steps:
- Defining the Problem & Designing a Solution
- Prioritized Feature List
- UX/UI Design
- Technical Planning
- Software QA
- Launch / Handover
- Feature Improvement / Maintenance (Repeat Steps 1-7)
For this guide, we assume that a project manager has already defined the problem and an initial idea for the solution.
Choosing a Software Development Agency
Understanding Agency Types
Before you can choose a development firm, you need to know what options there are. Choosing the right development agency for you is not about choosing the “best”, but rather the best fit for the job and best fit for your working style. After framing your project, below are the steps for screening a suitable agency:
5 steps to screen a software agency
1. Research the types of agencies that fit your needs by checking their past clients
2. Create a question list with weighted answers based on your project priorities
3. Share your project in a meeting (background, feature list, designs if available)
4. Compare responses between the candidates
5. Follow-up with meetings and choose an agency
Choosing which types of agencies to approach can help you focus your search efforts.
Ask yourself 2 questions to narrow the types of agencies you want to consider:
1. Where you want the agency to be?
2. What type of agency suits the project?
Location: Local vs Overseas vs Hybrid
Location matters because it impacts your work flow. For example, how do you typically communicate with service providers? Do you prefer face to face or is video conferencing fine? Are you willing to use the agency’s tools or do you need them to match yours? Do you need frequent meetings to work closely together and fine tune the prototype based on feedback or are you certain of your product and would prefer regular reports? Below is an overview of the location considerations:
Local agencies, especially in mature markets like the US and UK, are probably priced at a premium compared to agencies abroad. Cost is a big consideration, but also remember time-cost and look at how the workflow may compare to overseas companies. One benefit is that a local agency may help deliver better within a tight timeline because of proximity. You can have face to face meetings. There are no time-zone considerations. The agency has a high cultural contextual understanding, which is important for UI/UX design.
Depending on where you are, the development cost may be cheaper. While an overseas agency cannot be at a physical meeting, video conferencing and real-time chats (if the time zones work out) are common solutions. In addition, good agencies will likely have tools to share their project progress (such as regular e-mail updates, sharing builds, using Basecamp or another project management tool). These may be economical choices for teams with extremely defined projects.
Hybrid companies try to offer the best of both worlds, with project managers and/or developers and designers at a local office. The rest of the team will be overseas. Ideally, this means that a company can offer clients the benefit of face-to-face meetings and project managers will ensure product quality. There may still be time zone considerations that have a time lag for projects, but these teams may be cost-effective with part of the development being done overseas.
Types of Companies
The types of agencies to work with depends on the type of product you are developing. Though many agencies are versatile, they will also have specializations. Below, we will outline the types of software agencies and what they are suited for:
- Business Solutions
- Packaged Software Solutions
- Agencies that Work with Marketing Firms
- Digital Product Studios
Some agencies specialize in enterprise solutions with services such ERP (enterprise resource planning), and IT service management. For example, they may use Sharepoint to help enterprise teams with collaboration. These agencies often work with clients to improve operational efficiency, workflows, and resource management in large organizations.
Packaged Software Solutions
Many software development agencies may also deliver solutions with packaged software. For example, they may only develop WordPress websites or Magento eCommerce online stores. For apps, they may use standard templates or hybrid approaches to rapidly develop cross-platform apps at affordable rates for clients. These may be good for clients who have standard requirements such as a company blog or a simple online store.
Agencies that Work with Marketing Firms
Some agencies also frequently team up with marketing firms to provide bundled digital solutions. For example, a client may be looking for a packaged solution with a simple event website and digital marketing support, or an app solution for a consumer engagement campaign. These agencies are usually frontend, UI-focused with sleek graphic designs rather than an emphasis on code base quality or overall user experience.
Digital Product Studios
Digital product studios will often be used for custom-built products. A UX-driven approach to software development requires designing product features that are necessary for specific use cases. The technologies used for each project will vary. For example, a rapid prototype may use the React framework for cross-platform development. A B2C app for an international brand may require iOS development that integrates into existing APIs. A financial institution may need a custom AI algorithm to synthesize and analyze all the different data formats it has collected over the years.
After you have made a shortlist of agencies based on your workflow, budget, timeline, and product needs, the next thing to do is to contact the agencies and get quotes.
Contacting Agencies and Getting Estimates
The next step as a product owner is to contact the agencies. You can do so by asking for referrals or searching online. Be sure to check portfolios to get a sense of the types of projects a team has focused on in the past.
Note that well-reputed software agencies are often in-demand and will have projects scheduled at least 3-months in advance. We recommend doing your research early and scheduling initial discussions to avoid finding a suitable company, only to discover that their timeline does not match yours.
Below is an overview of the steps between an initial contact to kick-starting a project.
Steps from First Meeting to Signed Contract:
- Project manager contacts the agency.
- Client briefly describes the scope of the project and shows available user stories, wireframes, or designs for the envisioned app/product/solution.
- Agency consultant provides follow-up documents (e.g. functional specifications, high level user stories, or high level features) based on the client description to confirm understanding and provides a ballpark figure for design and/or development.
- Client refines scope of project based on the provided documents and budget.
- Consultant refines high level user stories and provides a quote (Oursky does design quotes first and development quotes after designs, but agencies have their own preferences.)
- Consultant confirms scope, budget and schedule with client. Contract is signed.
Contacting the Agency and Setting up a First Meeting
Usually, the first point of contact is an e-mail form. You as a potential client can briefly describe the project and attach relevant files. Project managers should note that sought-after agencies have a high volume of inquiries. Having a succinct project description and relevant files will significantly help in a first meeting. Requesting to sign NDAs before an initial meeting may deter agencies from responding.
The meeting and discussion period between project owner or product manager and an agency is an opportunity for both sides to get to know each other. The agency wants to understand the product and whether it is a project they would like to work on. For product owners, the meeting is for further explaining the product, getting expert advice on the resources (time, cost) needed, and assessing whether the agency is easy to communicate and work with.
Why Understanding an A gency is More Important than Getting a First Quote
In order for an agency to give you an accurate quote, you will need to have a clearly defined project scope. Ideally, you will have had a few meetings with this agency, provided relevant documents, and have clarified the scope based on the questions and feedback from the agency.
Agencies often receive inbound inquiries that start with a request for a quote estimate. Because the initial e-mail is only a starting point, the ballpark estimations can vary dramatically based on the assumptions each agency has made based on quick calculations and past experience. Setting up the first meeting is more important than the initial quote as agencies also want to provide better estimates after understanding your idea further.
Maximizing Meetings to Get Comparable Answers
We assume that project managers will be getting quotes from at least a few agencies. After the initial inquiry and response with a ballpark figure, a project manager to understand why the prices and the formatting of quotes can differ to compare agencies. In follow-up meetings, you can prepare questions to standardize the information you are getting from agencies to make an informed decision about what is included in the prices and how an agency works.
In addition to getting a quote for your project, the initial meetings with the agencies’ contact points, often known as account managers or consultants, are opportunities for you to learn more about an agency’s approach to products and working style.
Approaching a First Meeting
The initial discussions should focus on conveying your product idea, rather than getting into exact pricing. The meeting helps the agency ask more information in order to give more accurate information. The more relevant information you can provide to an agency, the more they can narrow down their estimate.
We are assuming that project managers are seeking an agency to help with the design and development of a digital solution. In such a case, the order of events from first meeting to kicking off a project may roughly look like this:
Materials for a Quote and Project Kickstart
1. A Feature List or Simple User Stories
2. Project Background (if applicable)
3. Problems / Idea / Business Objective / Data
4. User Personas
5. Reference Apps
How to Ask for Clarifications in Estimates
Big price differences between agency estimates after initial meetings may indicate that your scope needs to be better defined. The agencies usually need to make initial assumptions based on the materials they’ve been given about the type of project you have in mind. Some agencies may provide initial estimate before a first meeting, while others may provide the quote after the meeting. In either case, these initial estimates should be treated as a way to start a conversation to understand how an agency works, such as what services are included in a package or what technologies they use.
There are some initial clarifying questions that can immediately affect the scope and pricing implications. For example, if you wanted to develop an app for iOS and Android, ask the agencies if they are planning to build native, React Native, or hybrid apps. Do some agencies have services that require additional fees, such as software QA? Some apps may have multiple components that make costs higher than initially anticipated, such as a marketplace app requiring an individual component for a public user, service provider, and admin portal. Asking these questions gives you the opportunity to learn key information about the agencies that will help you find the right fit for your priorities.
Preparing a List of Background Questions for Agencies
Many clients will ask some standard background questions for software development agencies. The questions are intended to learn where a company invests its resources and whether they are able to deliver on their promises. Great agencies differentiate themselves in how they answer questions: often with transparency of process and explanations of requests that are not realistic rather than general guarantees or name-dropping popular terminologies.
We suggest that project managers compare agencies by creating a standard list of questions to ask. This way, you can collect consistent information to compare between candidates. The differences in responses will also provide more context for the range in price estimates, or perhaps even a refusal to provide an initial estimate. We also suggest weighting the questions so that you have reflected and understood the priorities for your project (for example, speed versus long-term maintenance costs).
Basic Questions to Ask Software Agencies
- What’s the culture and vision of the agency?
Details can include information such as overview of the company, the leadership, and executive team. Years in business, size of agency and office locations, if there is overseas development, differentiation from competitors, and composition of the team (sales/consultants, PM, designers, developers, QA).
Why Ask: Do you like the culture? This is a good way to find out whether an agency can communicate effectively.
What are your services?
Agencies may provide a description for consulting, design, development, software QA, and maintenance. Ask for deliverables at each stage and who owns the code at the end of a project.
Why Ask: Can the company provide services that fit your needs? Understand how they deliver their work and the upfront project cost as well as long-term costs involved if applicable.
How do you communicate with clients?
What communication channels does an agency use and how do they keep clients informed about progress (such as reports, project management software, milestone meetings, etc.)? For each service stage, an agency should be able to list the items they need from a client and critical dates for project management.
Why Ask: Understand whether their communication style and workflow can match your company’s requirements.
What is your development lifecycle methodology?
What is the company’s development philosophy? Why? How have they refined it over time? What are software best practices are used?
Why Ask: There are many different ways to manage a project and each approach has their strength and weakness. Is their approach useful for your case?
What technologies are used?
What experience does the agency have with the technologies needed for your product? What do they use for iOS/Android, web, or machine learning?
Why Ask: Rather than look for agencies with a wide range of technologies, it is important to understand whether the technologies that an agency uses meets your scope or budget needs. A common mismatch arises for mobile when an app requires native iOS/Android development for performance, but an agency uses mostly Ionic for cross-platform development.
Can you provide case studies? (but with a grain of salt)
Ask for past clients, awards, and summaries of client projects that are similar or utilize the technologies that may be used for your project. Ask for a summary of the goal, solution, and result.
Why Ask: Though recognized brands as clients may be a promising first signal, the most important aspect is how well an agency is able to walk through a client’s challenge and articulate the logic behind the solution. Check to see if projects with big brands are branding exercises or actual products that are still in use. If your side has a technical team member, ask them to look at the technologies used and if possible ask about the how a product was architected. This reveals the attention to the code base.
Quick Advanced Questions:
In addition to the initial vendor background questions, it is important to assess how transparent a company is. We have also added questions to help product managers and product owners without a technical background to quickly test whether an agency is being transparent with their process. Below is a short set of questions.
- Does your source code come with a unit test? If yes, what is your code coverage commitment? This is a “bad question” that is meant to reveal when an agency is not famliar with unit tests. Read more here.
- Does your development team do regular code reviews? Can you share how it is done?
- Does your design team read and follow the iOS Human Interface Guidelines and Material Design Guidelines for Android?
- If I give you a completed UX/UI Design, how would you like me to provide the design requirement to your developers?
- How many junior/senior developers does your team have? How do you maintain quality across teams with different compositions?
Again, how an agency answers is more important than a “right” or “wrong” answer. Product owners or managers do not need to have a technical background to assess the quality of the answers. We provide the explanations and answers to these questions in our blog piece: ‘5 vendor screening questions‘.
After you have met with agencies or had e-mail exchanges, you should have a clear picture of the agency’s:
- company culture
- approach to product and software development
- suitability for your project
- approach to project quotes and estimates
The next step is to gather the information from the various agencies and evaluate your options.
Evaluating and Choosing an Agency Partner
After you have spoken to potential agencies, you will need to evaluate and select one. It is important to remember that there is no one single factor that determines the best partner. However, there are some key indicators that make the decision more obvious.
We can return to the two original questions:
1. Where you want the agency to be?
2. What type of agency suits the project?
After speaking to different agencies, you will have a better idea of the implications various factors such as location or communication style that may affect your workflow.
Approaches to narrowing down:
1. Eliminating deal breakers
2. Consider pricing models
3. Consider flexibility
4. Considering an agency’s specialities
5. Understanding resources
Deal breakers are the bottomline requirements for your project. The bottomline requirements could be factors based on timeline, budget, or technology, to name a few. Sometimes a great potential agency might just not be able to fit your project into their schedule because their development schedule is lined up several months in advance. In another case, your budget limitations may mean you go with a modified template app to do a quick prototype and prove your concept first.
After you had collected the possibilities from the agencies you have spoken to with standardized questions, some factors may be:
- Preferred communication style?
- Specific technology requirements?
- Specific UX or codebase quality?
- Upper budget limitation?
- Hard deadline?
As a product owner, consider which trade offs you are willing to make both for the immediate project and potentially for the future. Knowing your trade offs will also help you manage expectations and work more effectively with the agency.
Considering Pricing Models: Fixed-Cost or Estimations?
Some vendors can propose a fixed-cost pricing rather than a ballpark or estimation. The estimation approach implies a vendor’s business model. Some companies will charge less for development upfront, allowing for a fixed-cost model, but make revenue on the hosting or post-launch maintenance if you are using their services and they keep the code base. Agencies may also be able to do a fixed cost because they are using pre-existing template apps and can make minor customizations. Using template apps that do not fit the project requirements will run the risk of poor quality software.
Some dev shops (Oursky included) will provide an estimate based on features and quote per day, with the philosophy of handing over the code base upon project completion and not sacrificing code quality to meet fixed project deadlines.
The most cost-effective approach depends on what the needs of your projects are (for example, if it is a one-off prototype, or if it will require future updates or long-term production).
Considering Flexibility: Can Design and Development Quotes be Separated?
Resist the temptation to make decisions based solely on project cost estimations. Any estimate an agency provides is a ballpark estimation based on similar past project experiences. Projects can narrow down the estimate only after a UX/UI design or technical design is completed. The designs can be provided by the client, third-party, or the software agency. If the designs are provided by the client or third-party, ensure the files provided are what an agency needs, and you can ask that as one of our 5 vendor screening questions.
If you do not have design files that can be used for software development, commissioning a smaller design or consulting project first is an option. Understand that not all agencies offer this service, but the ones that do should provide design deliverables that allow clients to take the files to be used by any other third-party developer (or their own internal team). You can read more in our blog post about why clients save money with design projects first.
If you already have design materials and specifications that meet software development needs, you can skip a design service. We strongly recommend that project managers only ask for software development estimations after designs are completed. Some initial design work, such as wireframes, can be done by a project manager to anchor meeting discussions. Project scopes can also vary based on each case, so services can include a consultation, project management service, design, development, a code diagnostic, or maintenance service.
Understanding an Agency’s Specialties, Capabilities, and Technologies
Any agency that tells you they can do everything is a huge red flag. Every agency has one or two specialties. The agency’s abilities must align with your project requirements. For example, does the agency focus on web apps or develop only with React Native for cross-platform development? Do they focus in one area like building Shopify and Magento e-commerce stores? When they say they do AI development, what projects have they worked on? Check beyond the logos and written case studies on an agency’s website and use meetings to ask about how the products they built work and whether those apps, websites, or solutions are still in use.
Check the Quality of Communication
The negotiation period is a good opportunity to see how well an agency communicates. Will they be able to propose solutions based on your priorities? Can they explain the trade-offs between hybrid versus native apps? Don’t be afraid to ask questions to learn more about how an agency makes recommendations because that gives an idea of how the communication will be after a project kicks off.
Understanding the Resources Put into a Project
Finally, consider how agencies assign resources to projects. For example, a project may have a dedicated project manager, designer, and developer. Few agencies will have a dedicated software QA team, so understand how they do their software QA. Some software QA services may have additional fees and good agencies will be transparent about how they itemize their service. By understanding the resource allocation, you will also understand another key factor in price variation between agencies: a difference in service packages.
By adding all the necessary services for your project, such as software QA or long-term maintenance services, you may find that agency price estimates are closer than they initially appeared.
There are a variety of software development agencies out there that can help you build your app, e-commerce store, or AI solution. The key to a successful product is knowing your role as a product owner, providing relevant information, and facilitating good communication with a team that fits your working style and timeline needs.
We wish you the best! You can always contact Oursky for a free quote if you are looking for a UX/UI design, software diagnostics and QA testing, upgrades to an existing product, or a partner to build your next idea into an award-winning product!