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.