Apriorit provides networking and display protocol expertise for a large software company. The team worked on iOS, Android, Mac, and Linux systems to establish backend connections.
The team has had minimal turnover over this 8-year-long relationship. Apriorit provides quality code and meets all deadlines set before them. They have a diverse set of developers with depth of knowledge across multiple technologies, making them an invaluable partner.
"We've created one of the best products on the market, thanks partly to Apriorit and their dedication to quality."
Introduce your business and what you do there.
We build software which competes with Citrix and VMware, utilizing remote desktop protocols. I was the project lead while working with Apriorit.
What challenge were you trying to address with Apriorit?
We originally contacted Apriorit because we needed a developer with experience in networking and display protocols. They had done a lot of reverse engineering in this area and it was one of the things that Apriorit initially touted. We had been doing this kind of work ourselves and needed to expand our team in a cost-effective way.
What was the scope of their involvement?
We build our own software. Apriorit provided development for iOS, Android, Mac, and Linux, creating what we called a connector, which established remote connections to our backend servers. Apriorit is in charge of the client piece of our software. We also have a Windows-based component, which is developed in-house.
Apriorit helped us add some protocol enhancements, like flash and USB redirection. These components go across all connective versions. Apriorit built both the server and client pieces for various connectors.
Apriorit also provided a good bit of quality assurance work for us. At its peak, my team was comprised of 60% in-house resources and 40% resources from Apriorit. They accounted for almost half of our team. At most, Apriorit provided us with an 18-person team, split between development and quality assurance, almost in half, but favoring the development side.
How did you come to work with Apriorit?
We found Apriorit through online research. We have worked with 4 different companies, settling on Apriorit after around a year. We had been working on other items before finding Apriorit, which didn't turn out very well. We came to identify Apriorit as the best option, started working with them and gradually expanded their involvement. We have had a good relationship with Apriorit's owner. He has always been very flexible, has had good ideas, and made sure that the Apriorit team was made up of smart people, up-to-date with various technologies used by companies. It has been very difficult for us to imagine starting again with another contracting firm. The technology we've worked on was quite unique, and Apriorit also learned a lot by working on the project with us. To spin this back up with another team would have taken us at least a year, without a guarantee that we'd receive the same level of competence.
How much have you invested with Apriorit?
The cost of Apriorit's services has come up to 1 million dollars per year, for the last 3-4 years.
What is the status of this engagement?
We initially got in touch with Apriorit 8 years ago.
Could you share any evidence that would demonstrate the productivity, quality of work, or the impact of the engagement?
We've had a good overall relationship with Apriorit. It was a bit rocky in the beginning. We started out doing project-based work, but it was not a well-managed process. We threw some tasks at Apriorit, asking for ports to Mac or Linux for example, without giving them a lot of clarity. We created a bit of a headache for ourselves, making branches of code which quickly became diverged. We came to assign a development leader to the project in order to get things back to a single codebase. This helped us a lot. We started having bi-weekly meeting with Apriorit's team and they came to work as an extension of our team from that point on, as opposed to doing project work. We've been working like this for the last 5 years.
Apriorit's leader has also been very good at failing. Staff turnover has been very light, with only 5 developer changes during the last 8 years. Most of the people we're working with at the moment have been around since the beginning. Retaining those people for that long has been amazing. Most of them are relatively young, which means that they want to move their careers quickly. When we did lose a team member, Apriorit's principal has made sure that we'd have a good person to fill the spot, with similar skills.
We've been working on the same project with Apriorit from the start, namely building the connectors for our solution, making incremental improvements. We've created one of the best products on the market, thanks partly to Apriorit and their dedication to quality. Our product has recently gone into maintenance mode due to our company being acquired by a former competitor.
How did Apriorit perform from a project management standpoint?
Apriorit was very good in terms of meeting deadlines. They were an extension of our team, so Apriorit operated more in lines with this relationship, as opposed to doing project-based work. We kept release schedules which Apriorit always respected, delivering good quality.
We used Team Foundation Server as our main collaboration tool for all aspects of the project, including bug tracking. I know that Apriorit uses other tools internally as well.
What did you find most impressive about Apriorit?
What is distinct about Apriorit's practice is the level of very highly skilled developers, not only in terms of app or database builders, but across numerous technologies. Apriorit is very good at creating low-level protocols for security, being able to work at OS level. I appreciated Apriorit's depth of knowledge and skill.
Are there any areas Apriorit could improve?
We have learned that if work is going to be contracted to a third party, the project scope needs to be well-defined. If we gave Apriorit something which was open-ended or had ambiguities, we sometimes didn't receive what we wanted and had to unwind what was built. It worked better for us to bring in Apriorit as a part of our team, as opposed to simply doing project-based work. Our kind of development didn't fit very well with the latter approach. We needed people on our team which were capable of making decisions and incremental improvements through experimentation and trial-and-error. It wasn't the type of work that we could hand off to Apriorit and have them create a magical outcome or improve something by 35%, if we didn't know that the goal was really possible. We only used Apriorit as a traditional contractor in the beginning, but ended up changing the way in which we worked, which turned out better for us.