Software development is a creative and challenging thing, involving a large number of people working together. And like any other teamwork, it requires the process to be perfect in order to achieve the aim within the shortest time and maximum joy. Rubyroid Team decided to share with you some of our secrets about our development process. So you are more than welcome to check them inside.
1. Pull Requests
Since almost any project of Rubyroid Labs includes more than one developer, it is important for us to make sure that nobody’s code is messing with somebody else’s. This is why we work by creating branches and doing pull requests. JIRA handles the issues greatly, and pull requests are definitely adding more transparency to the working process and allows significantly speed up the troubleshooting.
2. Code review
Another important thing that comes hand in hand with pull requests is code review. Code review not only encourages experience exchange but also helps junior developers and people who a new to the project to progress and onboard so much quicker. We feel that code review is essential to any Team, no matter how senior it is and how quick task is required to go live.
3. Continuous integration
During the last decade, Continuous Integration has become a golden rule for any project that expects have a good and successful e-life. The essence of this method is test based. Any push committed is checked to go well with other code in the system and if the test fails, should be revised. This way we can always be sure that new features won’t break the old ones.
4. Staging Environment for big projects
And again, talking about large projects with a number of complicated features. Here, at Rubyroid Labs, we put a lot of effort into delivering high-quality products. And having a staging environment where all features are tested before going live is definitely helping us with it. The thing is that with a high level of complexity some features some of them may affect others, so it is important for QA Team to have an environment, where it can experiment with different behavior and locate bugs.
5. Automatic deployment
Automatic deployment works well when you have a staging environment. In this case when a feature is merged to master, one doesn’t have to wait for it become available for testing, since it is done automatically. So this speeds up thing a lot and keeps everyone on track with what is going on with a project.
6. Ticket Management System
No mature software development processes can be imagined without a proper ticket management system. One can’t, but value all the good thing it brings to the project, including a track of progress, an easy splitting of responsibilities, documenting the requirements, planning iterations and what not. Here we tend to use either Redmine or JIRA. Both systems have their own advantages, so make sure system chosen fits the specific project.
7. Project Chatroom
Besides communication via tickets, we highly encourage communication via chat rooms: it is great for team building, figuring out minor questions and simply keeping the Team posted on what is going on. Usually, it is Skype or Slack we use for the project depending on customer preferences. A few chatrooms are created for each project to keep the information segmented and making sure everybody is involved only in the activities he actually needs.
8. Time Tracking
And finally, we do believe that time tracking allows smoother progress of the project and is essential for a successful development. With having time tracked, it is easy to see how the sprint is going, so by checking a Burndown chart a Project Manager can get some insights and figure out whether there are any stumble blocks on the way. Besides, with estimates planning becomes more realistic and the roadmap combats certain vagueness. Usually, we use Redmine and Toggl for time tracking depending on the project.
As you see, these are really easy to implement tools that will help you to achieve more with almost zero effort taken. And what are your tips for a good development process? Share with us in the comments.