Technology Stack Changes – It’s a Big Decision to make!
We made a decision this year to change our development technology. We thought we’d share the thought process and our experiences.
Latest and Greatest …
Here at MyBuzz Technologies, we’ve been writing code for a very long time. Since we founded the company 6 years ago, we’ve seen lots of advances in the tools and techniques being used for developing software.
We’ve always tried to keep an eye on useful updates, and we’ve spent a lot of time researching opportunities to grow. It’s fun seeing new technologies emerge. To join in the excitement when something looks like it’s going to be the latest and greatest thing.
But, as much as it sounds fun to always use the “latest greatest”, it isn’t always feasible for a small business.
Fashions change and in business it’s a bad idea to keep jumping around to the next big thing, just because it sounds trendy. For the most part it’s just too expensive and distracting to do this without a dedicated R&D team. Technology stack changes need to be controlled, evaluated and carefully supported with training etc.
As much as we all like to play with “new toys”, in a business like ours, we just can’t afford to do that.
Our first app, MyShiftPlanner, was build 6 years ago, essentially as a back-bedroom, one-man project.
There was one goal – get the product-to-market ASAP!
For us, it was important to be cross platform. Android and iOS are both equally important to our user-base. So, the question for us at the time was, how to create one app, with one person, on both platforms, when they need different tools, languages and expertise?
The only feasible solution was to explore cross platform tools. One language, one thing to learn, equals half the development time … in theory!
In practice, it wasn’t quite so smooth. There’s still a lot that’s needed to be learnt about each platform, and plenty of platform specific code to wade through.
But, 80% of the requirement was common code, so it was we decided that cross-platform development was the best route for us.
The next question, was which one to go for?
6 years ago, cross platform options were limited. Xamarin was pre-Microsoft and expensive. Phonegap was slow. But, Embarcadero RAD Studio was a strong option – we went with that.
Things Moves Pretty Fast …
Accelerate forward 6 years, and cross-platform has blossomed. Particularly with interest from some of the big players. The releases of Facebook backed, React Native and Google backed, Flutter, have given a well-timed boost to the cross-platform market.
Experience in the last few years has also taught us that regardless of which tools you use to create your apps, they must be able to keep up with the pace of change from Apple and Google. If not, it can lead to frustrated developers waiting for fixes to problems they didn’t cause or an inability to use the latest popular features of new phones.
The answer for us is to look seriously at open source as a way forward. Leveraging the power of the community to find and fix bugs is a refreshingly exciting prospect. Rather than having
to wait for a resource-constrained company to adapt and deliver.
Time for a Change?
For MyBuzz, the decision is therefore to move to a new technology, sooner rather than later.
But simply rewriting the app in a newer language and toolset is not as easy as it sounds on paper. 6 years of maturity features and expansion have greatly increased the size of the app. Theres lots of subtleties in the code which need transferring. All of which is expensive and time consuming.
Is it worth it? Our decision has been to say, yes.
But rather than dive straight into a complete rewrite of 1million lines of code. We decided to start smaller and build some new products in a new technology first, to test the processes.
We spent some time evaluate the options available. Mostly ignoring the articles lambasting different tools – everyone has their favourite and a list of specific requirements they’re looking for, which means they rarely give a “balanced” review with our specific needs in mind.
The best option we find is always to trial, build and evaluate.
We have spent a year trying different options. None are perfect, none are ever as good in every way as going native, but the trade-off is in time and cost to market, resource needs and training.
Flutter to the Future
We decided that Flutter was the best of all cross-platform options. And we’ve not been sorry about our decision. It’s a great tool with a lot of resources to back it up. On top of that, there’s a highly active community, and it’s backed by Google, who are clearly investing in it heavily.
We’ve decided to start small. We’ve built a fun little Christmas list app – MyChristmasBuddy. So far, Flutter has passed all tests. We’re really happy with the results and can’t wait to build our next app in the tool.
Take the Time to Get it Right
Our take-away from our journey into technology-stack change, is that sometimes it doesn’t need to be perfect at everything, it just needs to be perfect for what you need in your case.
In our case, Flutter is 95% of that, and we’re really happy with that percentage. We’ve made the decision to use Flutter for all new projects, and we’re very excited by what it can offer us going forwards.
Our advice to other developers who may be looking at switch or choose tools is simple – focusing on tools for building great experiences is really important, but it must be great for both the users and developers.
Make sure to fully evaluate the options based on what you need from them, review the community and make sure it has a lot of healthy, active support, and most importantly, enjoy the experience!