Digital businesses need a good ideation, implementation, execution and growth, but at the development side the challenges are huge as well. As much as a product grows, so do the challenges and problems to solve.
In this opportunity I want to tell you the main product development challenge our engineering team faced, and I will show you how we fixed it. Maybe your business are facing some similar issues and this post can help you to find a solution.
SmarterSelect is a web platform to create and manage forms. As they say: “Online Applications. Made Easy”. Over 1 million active users (and counting) are creating and managing online applications, grants, scholarships on SmarterSelect every week in the United States.
SmarterSelect enable partners like Texas Tech University, San Angelo Area Foundation and Vermeer to manage online applications.
4Geeks created a engineers dedicated team, getting together Ruby on Rails engineers and Quality Assurance experts, to solve past issues and improve the product constantly.
Let’s start! Here is the 4 main problems we found and how we fixed it.
Challenge #1: QA manual
Too many projects faces issues in production, customers don’t like that for sure. Our first recommendation is to add human power to avoid mistakes on development. QA people is amazing to think on hundred of combinations for test scenarios, that what SmarterSelect needed.
We added QA experts to the team, in the same building to improve communication on issues and help the developers to create ever more code quality.
Challenge #2: Dockerize the app
I remember having some bad nights working with server infrastructure, libraries. With Docker we got rid of that, same container, same for all environment, we forget about the differences on development, staging or production.
Also, some advantage we see is when some new developer joins to the team. There will be no need to spend hours or days trying to install all gems, libraries and dependencies with just a docker command, voilà! environment ready. Our client is definitely happy for that.
Challenge #3: Implemented CI tools
The team introduced CircleCI to the projects, helping us on running the small (increasing) set of automated tests before putting any code into main branches.
For every PR (Pull Request) we run CircleCI containers and confirm the code is not breaking any configuration or code.
Have you implemented (or thinking to do) CI tools on your project? Comment below your experience.
Challenge #4: Rails upgrade
This is a huge deal. Some day we decided that It was time to move from Rails 2 to Rails 4. It sounds crazy but we didn’t want to do a little migration to Rails 3 to later move to Rails 4. It was time to do the roughest change.
So for 4 months the team was focused on create features and migrate at the same time. It was a complete successful, and now we are thinking on move to Rails 5 for sure, but our client doesn’t know (probably he will find out here).
We improve some security issues by that migration and we also did some refactors on old legacy code.
Bonus: Download the full Case Study in order to get know how SmarterSelect grew up more than 110% in 2018.
If you need help with your business/product and your annual revenue is $3M+, please reach out to us; our consultants will be happy to assist you on find the right path and solution.