Posts

As a web and mobile app development shop, we love to talk about technology choices. Many people don’t really care what technology solution is used to solve a problem as long as the problem itself gets solved. And that’s OK in the “Wild West” days of a startup. However, as a business matures, sometimes the technology choice will hinder you during the growth phases. When a business reaches a certain scale, they will often end up rewriting the entire application. It’s not always avoidable but we like to try our best to manage the risk of a full rewrite later on.

At Oak City Labs, we approach technology choices with what we like to call a “sniff test.” It’s called a sniff test because it’s brief and not all encompassing. It’s also not meant to delve into great detail since we aim to make timely decisions looking at trends. This sniff test is very much business oriented, which really ought to be the driver behind most of your choices. It’s also why we don’t recommend cross-platform development and why we don’t throw the latest Javascript framework into production heavy work. That’s a whole other discussion which should be aided by beer, wine or your calming beverage of choice (Mt. Dew counts!).

Sniff Test Quiz

1. How long has the language or technology been around?
We’re not looking for the most mature, but we like to see longevity for projects and languages. This tends to influence answers for the rest of our quiz.

2. Is there widely available support, including forums or consultants?
This is very related to #1. Is a fix at 2:00 am in the morning just a Google or Stack Overflow search away?

3. For open source projects, how active is the community?
When was the last commit? How often are releases? How many contributors?

4. Is there support from scalable cloud services like AWS and Google Cloud?

5. Can we easily and readily hire a developer with little ramp up time?

6. Is the project or language trending up or down?
Not always a perfect measure but can be telling. Google Trends and Stack Overflow can help with this analysis. Again not perfect but it’s what we’ve got without in depth technical analysis. Here’s an example over the last five years between three prominent languages.

7. Was the project or technology bought or started by a large company?
This can be a good thing but we tend to shy away from backend service providers that might get shut down as Facebook did with Parse. Our preference is to build an app so the full stack is modular and not reliant on a single provider.

Ultimately we want to make choices that will provide long term growth and scalability for our clients. For example, while PHP may be a great choice for some niches it might be tough to hire in your local area for a PHP developer or it could even be on the decline in usage. And sometimes we’ll use a technology for a small part of an app but not for the whole application. For example, a database like MongoDB might be good for caching trivial data but we wouldn’t use it for mission critical features of an application.

We also like to choose technologies that fit business cases. Let’s say a company is in the life science market and will be performing data analysis. We would likely recommend Python because it’s somewhat mature and has all the science and math support needed for detailed analysis. It’s also widely used by the scientific and research community. If you’re in the Fintech space, you might choose Microsoft products because of the enterprise level support and prevalence of .NET developers already in finance.

The sniff test still remains the same when considering long term viability of the technology stack regardless of the market or software application. It doesn’t mean all of your choices, or ours, will be correct up front, but it does mean you can help manage the risk. If you’re thinking about an idea for a web or mobile app, contact us today and we can discuss performing a sniff test (and more!) for you.