A lot of businesses decide to start a collaboration with an external Ruby on Rails consulting. As using remote support is becoming more and more popular in different businesses, it is crucial for stakeholders to understand both the opportunities and the potential risks of such an approach, and to be able to verify the skill and experience level of a software development agency.
A Single Developer is Not the Same as an Agency
When hiring an external Ruby on Rails development team, you may not realise that you aren’t just getting people who will build your product. You’re not only hiring people – you’re also tapping into the whole organisation behind them, their shared knowledge, and the processes developed collectively by the company. That’s a lot of value for both your product and your company.
Battle Tested Development Process
When working with an agency, pay attention to their processes. Do this for two reasons. Firstly, you want to make sure they know what they’re doing, and they are well-organised. Secondly, if you’re a startup, or you have just embarked on your business journey, you can learn a lot from a mature company and pick up their tools and processes instead of reinventing the wheel.
A professional external development team should be Agile. Don’t worry about applying the methodology to the letter, but you should see clearly defined practices that align with the Agile ideology. Next is communication, which can make or break a good business relationship. Plenty of communication channels should be available to you so that you can reach your development team whenever you need to. Slack, Google Hangouts, email and a regular meeting schedule are the basics.
At Netguru, we strive to be completely transparent with clients. We share our style guide, our internal documentation, and code review practices, because we believe in sharing our knowledge and building trust. Just because another company doesn’t do the same doesn’t mean they are doing something wrong – you simply have to ask about the processes and practices when choosing an agency and make sure you’re comfortable with how they do things.
Top Tools and Practices
Expect and require only the top tools from your development agency. This is a big part of why you’re hiring them in the first place – to avoid costs of providing an internal team with tools, equipment, office space, etc. Their practices have taken the agency years to implement and master, and you get to skip the hard part and get to access them right away.
We’ve put together a list of some of the tools we use at Netguru. They are not the only existing options, but they certainly are some of the best ones.
Github: it contains our code repositories. We take advantage of all its powers and have made Git our default distributed version control system.
Circle CI: it’s our default continuous integration tool. It tests all new changes to the code and, depending on results, deploys them to the staging or production environment. It also performs security checks.
Jira: our default task and issue tracker, perfectly crafted for Agile needs.
Rollbar: we strive to maintain exceptionally high code quality, but sometimes something unexpected happens on the server. To catch such exceptions, we use Rollbar. It tracks errors so that we can reproduce them and quickly fix them.
Codebeat: it’s our default choice for maintaining code quality. It measures our code against various metrics such as simplicity and code coverage.
Slack notify: it’s our go-to communication tool, so it was only natural to try and get more out of it. We have connected notifications from many other tools, and now, we know immediately when something happens on production servers (notification emails serve as a backup).
Security: In our projects, we use `bundler-audit` and `brakeman` gems by default to spot all security issues as fast as possible (security checks are performed each time in CircleCI). It’s really important to keep all libraries up to date and spot all potential security pitfalls.
The Hidden Value of Good Ruby on Rails Agency
Measuring the value of such tools in US dollars is actually an easy task. Here are some basic calculations, though they don’t include all of our tools.
This might not seem like a lot, but keep in mind that most projects are developed over at least several months, and that this is only part of the hidden value offered by every development team. If you hire your own developers, you will have to cover similar costs for a somewhat lower value, because you’ll have to develop the processes and practices that an external team would bring to your project.
It’s common knowledge that working with an external software development agency is the cheaper option. The cost of familiarising developers with a new technology is absent – you choose the agency based on the technologies they work with, for instance, you might choose Netguru if you were looking for a Ruby on Rails development team. You don’t have to provide office space, equipment, and testing equipment – basically none of the material stuff necessary for building an app. You can also forget about recruitment costs. You don’t need to worry about software and a test infrastructure. You can skip trying to gather the exact set of skills necessary for your project – a good agency will offer devops, backend and frontend development, UI and UX design, as well as product and graphic design.
All in all, it often makes sense not to invest in your own team before you even have proof of concept for your product. It's also important to work with an agency that will offer you the full spectrum of tools and strategies available. If you still have doubts about this approach, feel free to drop us a line – we’re always happy to chat.