“What differentiates Oursky from other agencies?”
That’s one of the most common questions we get asked by clients. After we share our software development process, methodologies, and workflows in business meetings, it is up to them to decide which software outsourcing company they’d go to with for their project.
Whether we get the job or not, we want clients to choose the most suitable software development team for them. We’ll share quick questions that entrepreneurs, startup founders, and product owners and managers should ask to software outsourcing companies. These questions will help evaluate their competency and transparency. These questions are especially useful if you hire freelance developers or if you don’t have your own in-house developer or designer to accompany you — and advise you on the tech side of things — on your meetings with a vendor.
Test Coverage and Source Code Management
In a nutshell, test coverage is a metric of what you’re testing and how much you’re testing, and involves testing every software requirement. Any competent agency should be adept at the different kinds of software testing techniques (e.g., component testing, unit testing) to ensure defects are spotted and addressed early on.
Does your source code come with a unit test? If so, what’s your code coverage commitment?
Why ask: A good development team should have standard practices for unit testing. When asking the outsourcing company, stress the understanding that this could be an additional cost, so that the vendor doesn’t become defensive in perceiving that you’re putting the squeeze on them or suggesting that their code is not of high quality. Unit testing is a best practice for software quality assurance (QA).
As a standard, Oursky has unit test coverage at the back end as well as automated integration tests for APIs. We also adopt agile software testing.
Good Answers: “Yes, and around 50 – 80% test coverage.”
There’s no hard and fast rule on the best percentage for test coverage. It depends on the situation. In general, having lower than 50% code coverage is peculiar, while more than 80% may mean that the tests conducted are not very useful, as the test may match the code in a strange way.
Bad Answers: “Yes, 100% or 99% test coverage,” or “Yes, and we do it manually with another team.”
The vendor may be bluffing, most likely because the tests are written in a way to cover all lines of code instead of considering the usefulness of each test. Unit tests are always automated, so if the agency touts that they’re doing it manually, the people answering you are probably not familiar with software testing life cycle.
Ensuring Software Quality Assurance
A good software development outsourcing agency has tangible plans, means, and activities of assuring you that the app or software not only functions as intended, but also meets standard and defined quality requirements and specifications. Software QA is part of the software development life cycle, from coding to deployment and maintenance.
Does your development team conduct regular code reviews? Can you share how it’s done?
Why ask: Any developer should have another pair of eyes regularly reviewing code. It is difficult to review code beyond a few hundred lines. If a development team regularly conduct code reviews, their developers, programmers, and engineers should have the habit of submitting code to another developer in small batches (i.e., approximately 1 – 200 lines of code). These submissions are called a “pull request.”
Good Answers: “Yes, we do it on each pull request done by another developer.” For example, a dedicated developer working on a project may submit a pull request with a clear commit comment.
Another good answer would be, “Yes, we do it for important source codes done by another developer.” This may be the case if a vendor cannot afford the cost and resources needed to review each pull request.
Bad Answer: “Yes, we review it every week (or month, or upon project completion).”
Intervals may seem logical, but they don’t indicate a strong software development workflow. The outsourcing company is likely bluffing. Unless it’s code review for a security audit or some sort of knowledge-sharing session or internal training, reviewing a lot of code at once is considered a bad practice. Code should be reviewed before being merged and then easily rolled back if there’s a problem. There is simply too much code to review after a week’s worth of work. This kind of workflow may also be a red flag that indicates other problems within the vendor’s software development process.
App Design and the Elements of User Experience
Any agency providing software development services should know at least the basics of the app design process and user experience (UX): scoping the project, writing user flows and stories, wireframing and prototyping, and designing the visuals and user interface (UI) elements, to name a few. Software design is different for every platform (e.g., Android, iOS, Windows) as they each have their own specifications.
Does your design team read and follow the iOS Human Interface Guidelines and Material Design Guidelines for Android?
Why ask: Mobile app design is very different from graphic design or general visual design. This question reveals whether the designer is equipped with a basic understanding of how the app design process works or what UI/UX design fits best on mobile, desktop, or tablet (i.e., iPad). The design guidelines that Apple and Google created for iOS and Android are also regularly updated.
This should be a simple “Yes” or “No” question, but the outsourcing company’s design team should be able to explain how they use them. The agency’s designers should also have a strong UX design portfolio. To further verify, have a designer join the meeting so that they can ask and discuss best practices. Ask their points of view after the meeting.
Agile Team Structure
No amazing digital products are ever built alone. A strong software development outsourcing agency should be able to flexibly adapt their structure and expertise to suit their client’s needs. An agile team structure also helps divvy up tasks across cross-functional teams while also upskilling fellow developers, designers, project managers, or business analysts and consultants.
How many junior and senior developers do you have in your team? How do you maintain quality across teams with different compositions?
Why ask: No vendor can afford not having some junior developers — usually with less than five years of experience — in their team. More importantly, not investing in junior developers is unhealthy for the agency’s long-term software engineering ecosystem. A healthy ratio is expected from any good development team that invests in training junior software engineers.
A good development team ensures that their people are inspired to perform to the best of their abilities. Any software outsourcing company can find skilled developers, but not every agency manages to foster collaborative environments for people to thrive. Vendors should also have different measures to ensure quality of work. This could include code reviews by a senior technical lead for each pull request, regular technical knowledge sharing, standardization of frameworks, proper technical planning, and a mentorship or buddy system.
App Design and Software Development Process
Apart from having a good understanding of the app design and UI/UX design process, a competent vendor should have a strong workflow for kicking off development and handing over their outputs.
If I give you a completed UI/UX design, how would you like me to provide the design requirement to your developers?
Why ask: This question wants to learn if:
- A vendor’s design team has a standard output for developers.
- Their developers have a standardized way of working with designers.
This question ultimately reveals the vendor’s app design process, or if they have one at all. Alternatively, you can confirm if the agency has an in-house development team, then ask how your own design team can hand over the design outputs to their developers.
Good Answers: “You can provide us the original design files, with design specifications and design guidelines. We can work on Sketch, Adobe XD, Figma, or Photoshop.”
Another good answer would be, “Can you send us a {insert any design specification software, such as Zeplin}?”
A good design and software development team will also be able to give feedback where design specifications or guidelines may be incomplete. They will also usually have a checklist of items needed.
They’ll ask about them because these design specifications become the blueprints for developers to build the digital product, and they are ensuring that everyone is on the same page. If development begins without a complete UI/UX design, issues could arise, such as missing app features or having software architectures that don’t have important use cases.
Outsourcing Software Development: Dos and Don’ts
When asking your questions, pay as much attention to how the agency responds as you’d do to their actual responses. A good and capable design and software development outsourcing team will give realistic answers and reasonable explanations.
Here are a few other things to keep in mind when outsourcing software development:
- Make sure your business model aligns with the vendor’s. Identify and spell out your objectives, metrics, deliverables, and milestones.
- Be open and clear with your needs and regularly communicate with the vendor for progress and status updates. Don’t forget that working with an agency is a partnership and you both have a stake at the project’s success. Be involved in the process without micromanaging.
- Check for cultural compatibility and shared values; it’s easier to work with agencies that speak the same language as you do.
- Don’t limit yourself to tightly specific requirements. A feature that you think you need may not be technically feasible, or could be done through other approaches.
- Don’t just consider price; focus on the most suitable solution available. While price points should be part of your decision, there are other ways to measure an agency’s worth — from their technical expertise to the quality of work and resources they’ll dedicate for your project.
Rather than looking for the vendor who gives the highest or most ideal numbers, dig deeper into how they work and make their estimates. At Oursky, we adopt evidence-based scheduling (EBS). Though you are outsourcing developers and designers, they are your partners. They need to openly share with you how they work from day one in order to build a successful digital product.
Oursky’s team of passionate developers, designers, AI experts, and QA engineers can help you bring your ideas to life — whether on mobile, web, or simply designing your digital product. If you have app and software development projects or are exploring code reviews and diagnostics for your existing product, get in touch with us!
If you like this article, consider subscribing to our mailing list for more business and dev hacks!
2 comments
Good Guidance. native UI component replaced the custom implementation of aesthetic view.