Categories
Business Platforms

What is the right CMS for your business?

 

choosing-CMS

“I don’t care about the platform, let’s just create our website on something popular and cheap and get on with it”.

Dear IT decision maker, this is wrong. On an infinite number of levels.

This article is going to show you why. It’s not going to promote one technology or CMS platform over another,(well, at least not much, taking the author’s unavoidable personal bias under account). Instead, it’s going to address the issues that usually arise long after the CMS platform has been selected and paid for.

For the purposes of this article, we have picked interesting details about a number of popular and emerging CMS platforms like WordPress, Joomla, Drupal, Typo3, DNN and Umbraco , and we have also included references to Concrete5, Contentful and Rooftop, as well as Wix (a web site builder  that is provided exclusively in SAAS form). Although WordPress is currently by far the most popular CMS out there, this post is not a “Wordpress VS the world” one.

“A lot of people are using it, what could go wrong?”

Let’s take WordPress. It’s got over 24 million installations (an estimate from a relevant article on Quora, but we can’t know for sure what percentage of them regards installations of business websites as opposed to personal sites, blogs, or small business like hairdresser salons, neighbourhood groceries and auto repair shops (that are usually just a couple of pages set up on a free or very cheap theme and that’s about it). Don’t get me wrong – there’s nothing wrong with this type of websites, but they’re not indicative of a CMS platform’s capabilities in any way.

For comparison, Typo3 says it has over 500,000 installations, Umbraco says it has over 380,000 installations, Concrete5 is just shy of 140,000 installations and Drupal has over 1,200,000 installations.

Although other CMS platforms feature a very smaller number of installations, a Fortune 500 company website will – probably –  outrank a local hairdresser’s website in complexity, features and quality.

So one number you should pay attention to is how many use cases are published out there, and for what type of clients. Do not base your choice solely on how many people are using the CMS, but introduce some quality criteria. How many companies in your business sector are using this CMS? What is their preferred choice and why?

“As long as it does its job”

Having been in the industry for about 20 years I’ve seen a lot, including “fake” CMS platforms. Many years ago, around 2001, I met with the owners of a small web development agency who believed in the doctrine that the client should be totally platform agnostic. They showed me the CMS they were using.

It was a glorified web file manager managing static HTML pages! This is what they knew how to do best – static HTML pages. But since clients were starting to demand “a CMS”, they gave them what they wanted.

When you choose your CMS, always make sure that it provides you with the editing functionality you really need. Chances are most of today’s CMS platforms will allow you to do several things (we’re not in 2000 any more), but how far you need them to go is up to you.

For example:

  • Does the website’s navigation system (menus, footer links etc.)  get updated automatically or based on a specific set of rules when you add new pages (provided that you can easily add new pages!) or do you have to do that by hand?
  • How are page URLs generated, are they SEO friendly, and what happens when you change a page’s URL with regards to SEO and links that may exist on your old URL?
  • Does it manage image resizing for you or do you have to resize images before uploading them unless you want your visitors’ bandwidth to choke over that 20 x 6MB image gallery?
  • Are you really protected from “breaking” the layout if you use the CMS’ WYSIWYG editor (assuming it has one!) to update content in an unorthodox way?

The above are just food for thought. There are actually dozens of tiny little things that you should consider in the same regard.

For some CMS platforms, the answer to almost every one of the questions above is “it depends on the developer”, which is actually a good thing since it means that the CMS can be properly customized and extended for your own needs as long as your specs are detailed and correct. Which leads us to our next point..

“I’ll hire somebody to extend it when I need to”

There are agencies out there that provide design and development services using their own proprietary CMS, claiming that it has been specifically developed to address your needs. While this may be true, you’re actually getting tied to a specific agency’s proprietary software, with little chances to find developers outside this agency willing to work on it in the future, even if the agency gives you the full source code of their CMS (which, in most cases, won’t happen anyway).

If you decide to go with a popular open source CMS, you should definitely take the “signal-to-noise” developer ratio under consideration. What I mean by that is that it’s easy to find developers for popular CMS platforms, but you should watch out for fakes or people with very limited knowledge. A rule of thumb is that the more popular the CMS platform is, the more chances you have to hire a person who just learned about it yesterday, or works solely with plugins/add-ons without having ever written a single line of code.

Although there are no known statistics for this, it is obvious that the easier a CMS is to set up and start with, the more possible a greater pool of inexperienced developers is. Open source CMS platforms suffer from this a lot – my experiences are limited to WordPress, Joomla and DNN Community – all three are very easy to set up and get going, but need a lot more when it comes to specific functionality. There are a lot of folks out there that claim to be “developers” using one of those platforms when in fact they just know how to set it up and configure it with a theme (usually a free one) and probably some plugins. Ask them to do something that isn’t covered by the core CMS functionality or the plugins they are familiar with and you’re suddenly open to a whole new world of expenses, bugs, and subsequently more expenses.

“I got it cheap, now it’s ready and I don’t have to pay anything more”

Maintenance costs, unless they are agreed upon from day one, are considered hidden costs and they often end up, in the long term, being higher than the actual cost of developing your web site with the CMS of your choice. If your CMS’ performance degrades over time or if your CMS is often vulnerable to exploits, then you *must* consider maintenance services. The alternative is far more expensive.

So what can you do? First, have in mind that the most widely used a CMS platform is the more “bad” people are going to target it and the more vulnerabilities will be discovered.

Exploit DB maintains a great database of exploits per platform. Let’s see how two of the most popular CMS platforms around today are doing there compared to other, less popular choices. WordPress had a whooping 982 total entries at the time of writing this article, Joomla (a similarly popular but notoriously insecure platform) had 1,152 entries while less popular platforms like, for example, Umbraco (the one I’m working with) had 1, Concrete5 had 16 and ModX had 15.

This does not make popular CMS platforms less valuable – it just indicates that, if left unmaintained, they will have higher chances of being exploited, hacked, defaced and lots of other terms generally meaning “more money to spend on repairs”.

The problem with updating a CMS in order to secure it often lies with third-party add-ons that may not follow your platform’s update path. It is common for popular CMS platforms to have a wide number of add-ons (called plugins or modules or packages or extensions, depending on the platform) made by third parties, and some of them break when the CMS is upgraded to a newer version, or even become the starting point  for exploits in the first place.

At the time of writing this post there were 47,956 WordPress “plugins”, 859 DNN “modules”, 7288 Joomla “extensions”, over 1500 Typo3 “extensions”, 36,031 Drupal “modules”, and over 1000 Umbraco “packages, just to get a feeling of the sizes we are talking about.

If you go with a popular platform, or one that is widely known to often be the target of hackers, you should ensure that your site is developed in a safe manner, its add-ons chosen very carefully, and that it is maintained correctly (either by your agency, your web host or a person you will hire for that). Alternatively, you can switch to PAAS or SAAS solutions, like for example wordpress.org hosting for WordPress or Umbraco Cloud hosting for Umbraco and leave site maintenance to the experts (at a cost). Even Wix is considered a SAAS solution (with restrictions mentioned elsewhere in the article).

“I spent a week doing data entry”

No matter how much you pay for your CMS and/or development, your content is what is most valuable to you and what you are going to be maintaining and expanding for years to come. You must be absolutely sure that you really own your content and that you can have it exported in a way that will allow you to reuse it with minimal cost if you need to.

Wix, for example, is a SAAS platform  that provides a very nice (and cheap) way to have a site up and running in virtually no time – but with a price. Your content is “tied” to their platform and cannot be exported or transferred elsewhere.

 

“It’s OK, but we may need to have more in the future”

Let’s say that the only thing you want done today is have your website built as soon as possible. What about tomorrow?

Often a website needs to get expanded with functionality that was not predicted or planned from day 1. This may include importing data from third-party sources, integrating feedback forms with CRM applications, adding e-commerce capabilities etc. If you have only your website in mind today, you may choose a platform that is hard (or expensive, or both) to extend in the future.

For example, WordPress has an abundance of plugins that make it integrate with third-party systems, and it’s relatively easy to have developers write some additional code to do so. But, if your long-term goal is to use the same platform for your intranet and include SSO capabilities for Windows Domains, then DNN is probably the way to go.

Let’s also not forget that a CMS today is not what a CMS was 10 years ago. A website on a desktop PC or laptop is only one way of presenting information. Your site must be ready for mobile (tablets, phones), and your data should be ready to be accessed by native applications. Well, most CMSs today solve the mobile problem by either letting you implement the responsive/grid layout of your choice or already using one for you (although how they allow you to form your content using WYSIWYG editors and how they provide decent previewing varies greatly). How you can expose data to be consumed (and updated) to native apps, though, is another issue.

If you are primarily interested in having your data consumed by third-party apps / native mobile apps, then a different set of priorities need to be introduced:

Does the CMS of your choice feature an API that is easy to use?

Although almost every CMS today is advertising an API, not all APIs are equally mature. CMS platforms with a rich add-on ecosystem usually feature the more mature APIs since those facilitate add-on development. A generic API may not be always useful for exposing your data to other apps, but it’s a first step towards that.

Does the CMS of your choice provide a REST API?

Some CMS platforms allow you to easily create your own REST APIs where others provide them out of the box (and allow you to extend them). If you need to make your data available anywhere outside the confines of the CMS, your best choice would be a platform with a mature REST API. Thankfully, all popular platforms provide that in a way or another. WordPress, for example, has multiple plugins that provide REST API functionality. Umbraco has a REST API developed internally. Joomla features a REST API in the form of an extension.

The factor that you should pay attention to, however, is how complete the REST API is. The less you need to extend it yourself the better.

For CMS platforms with an add-on ecosystem, a critical factor for your decision is how many of the add-ons you are probably going to use will work well with the existing REST API.

For example, Gravity Forms , a very popular WordPress plugin, is not implementing the WordPress API in a standard way and, instead, provides its very own API, which can lead to a lot of work if you need to seamlessly work with WordPress and Gravity Forms in a unified, RESTful way.

Should you consider an API-first CMS instead of a page-oriented one?

This is the toughest question that you may have to answer. If your primary goal is providing your data to third-party apps, then an API-first CMS like, for example, Contentful or Rooftop  (which, by the way, uses WordPress as its back-end and manages to solve the WP-Gravity Forms API integration problem we talked about above), is definitely the choice to go for.

What an API-first CMS offers as an advantage is the total separation of the data and presentation layers, meaning you have an “engine” that can manage your data regardless of where they are eventually consumed. This can be a blessing or a curse, since it’s up to you to decide which technology to use for a web front-end (which is treated like any other app that consumes its data), while you may have to deal with potential limitations imposed by the number of SDKs available.

“We work with Java, but what’s wrong with launching a PHP-based website?”

Let’s suppose your organization heavily depends on Azure, Office 365 and Active Directory. Why on earth would you select, for example, Django CMS as your platform? Although it is a fine CMS, its technologies will be far out of your organization’s scope and internal expertise and you would have to resort to third parties for every single issue introduced during the lifetime or your web site. You might do that anyway (see the next section), but you have no way to evaluate results if the technologies used are alien to you. Let alone integrate your web site with other things.

This is a highly subjective point of view and you may totally disagree, but my belief is that the CMS you will choose to power your web presence should be in harmony with other technologies already being used in your business, since this opens up a lot of options for its evolvement later. Unless, of course, you’re using an API-first, cloud-hosted CMS, around which you can build additional services.

“We’ll extend it internally”

So you’ve got a couple of IT people that are familiar with some Web technologies and you think that it would be cost effective if you selected a CMS platform that utilizes the technologies they already know so that you can maintain it and extend it internally.

I don’t even have to prove why this is fundamentally wrong, but let’s say that it is analogous to having your graphics designer paint your house.

Conclusion

Your decision on the CMS platform you should use for your site is not an easy one, and it should not be left in the hands of the agency you intend to hire  just because “that’s what they’re working with”. It’s easy to be impressed with the design and visuals and forget there’s an “engine” that powers your website behind the scenes, but that engine is the most important aspect of the whole construct since it’s the one that will restrict you or enable you to do more when that time comes.

You should have a long-term plan about how you want your web site to evolve, what you expect it to cost you in a specific period of time and how you are going to tackle challenges like security and extensibility. There is no globally right answer, it all depends on what your own main objectives are.  

Being conscious about the technology, the platform, its pros and cons and its features will only benefit you in the long term. If you feel you don’t have the technical knowledge or the time to make such a decision, you should hire an expert consultant who will take all parameters into account and suggest the best platform for your own needs. Whatever you do, though, for heaven’s sake don’t buy a website at the price you would buy a new pair of jeans just because “that’s all you need”. You’ll end up paying for a whole new wardrobe really fast.

 

Categories
Business Tips

[Infographic] How to design a growth strategy for your app.

Developers are makers. They solve pains, entertain, enlighten, and enhance productivity. Building an app can be an exhilarating experience and the joys of shipping can linger for… about ten seconds. Then comes the question: “I’ve built an app, now what?” Where do you start with your app growth strategy?

Building strategies for user acquisition and retention are the two major tasks for dev teams after they have built an app. Analytics helps understand exactly what is happening and how to keep building traction. From there, new possibilities can emerge that will help you grow your user community even stronger and help you identify novel ideas that may offer you a winning edge.

Check out our infographic based on our series of articles on User Acquisition , User Retention and Growth Analytics.

Built_an_app_Infographic (3)

Want more insights on app growth strategy?

Check out our State of the Developer Nation Reports, and make sure you understand Analytics for Growth.

Categories
APIs Platforms Tools

Do-it-yourself NLP versus wit, LUIS, or api.ai

 

NPL_bot_

 

Alex and I have been building bots for about 1.5 years and have talked to hundreds of bot devs through our BotsBerlin meetup, which now has over 1,000 members. Something we get asked a lot is whether it’s worth investing in building your own NLP engine, or whether it makes sense to use a third party service like wit.ai, LUIS, or api.ai.

What does a chatbot’s NLP engine do?

Let’s say you’re building a restaurant bot. These tools will help you take a sentence typed by a human, and turn them into structured data, for example:

 

NLP Module chatbots

 

Do you build yours or use third-party tools? Let us know in our DE Survey.

The structure on the right is something computers can actually work with, and you can pass this on to the business logic of your bot. For example, you would probably query the Foursquare API and fetch a list of restaurants. If there are some popular restaurants matching those constraints, you would probably suggest those to your user. If not, you might suggest a Chinese restaurant instead.

NLP-api-chatbots

Foursquare has already done the hard work of finding matching restaurants, so the trickiest part of building this MVP is finding a way to generate structured data from natural language. The great thing about tools like wit, LUIS, and api.ai is that they make this part so easy that you can build an MVP like the above in an afternoon. In our experience, 3rd party tools are an excellent way to build quick prototypes. You could just as quickly build a bot to find videos with the YouTube API, or products from Product Hunt.

Reasons to do it yourself

If your restaurant bot is a runaway success, you will inevitably want to become independent. We see that the more advanced bot teams are all developing their own NLP. Data from the Developer Economics surveys, which polled the opinions of thousands of developers interested in chatbots, are pointing towards a democratisation of chatbots through open source projects (there’s a live survey out now if you want to contribute to this knowledge pool).
Here are three real-life examples of why people switch.

API constraints

databot was a Slack app we built at the start of 2016. Databot would connect your data warehouse to your Slack, so you could ask

what was the ROI like for October’s facebook ads?

and databot would generate the corresponding SQL query and answer your question.

We started off using wit.ai, which would always default to guessing that October referred to the following October, not the previous one. So we had a lot of fun with our date library to build a workaround. Of course wit could add a feature to let you customise this default, but that’s missing the more general point. If you use an API you are have to live with someone else’s engineering decisions, and that friction tends to grow as your project matures.

Data ownership

We talked to a startup building a commerce bot, specifically one which let you look for presents for friends and family and find good deals, e.g. “my sister likes running and craft coffee and I want to spend around $30”. For them, gathering the data around people’s purchasing intentions is core to the value of their business, and they want to make sure it belongs to them. Moreover, for privacy sensitive verticals like insurance, health, and banking, sending every message to a 3rd party is not an option, users and businesses just aren’t comfortable with it.

Performance

Admithub is an education startup. This team actually has one of the most technically advanced NLP modules I’ve seen, it can recognise thousands of intents. Their bot helps university students by updating them about events and deadlines, and can answer questions ranging from “when are housing applications due?” to “can I have a salamander in my dorm room”.

AdmitHub found very quickly that third party tools weren’t up to this task (they tend to optimise for the small data use case, performing well even when a developer is getting started and there are only a few examples). Most also failed to handle misspelled words, which are common when chatting with teenagers. While simple bots are generalizable, sophisticated bots are all complicated in their own way. Every algorithm has trade-offs, and a one-size-fits-all approach can let you down when your use case becomes more advanced.

Bonus: Control your own fate

Ultimately, technological independence is compelling for many teams. It’s great to use free tools developed by big tech companies, but they may not stay free (Microsoft have started charging for LUIS) and they may disappear with little notice (like Parse did).

The rise of do-it-yourself NLP

{wit,LUIS,api}.ai are wonderful tools that make prototyping very quick. But from talking to dozens of bot teams, I’m convinced that everyone will eventually become independent. Early indications from the state of AI survey are that virtually all businesses are uncomfortable relying on APIs for their AI, and that doesn’t surprise me given the examples I’ve just talked about. The engineering case is that web APIs just aren’t the solution to every problem in programming. The business case is that you really want to own your data and be independent.

In 2017 we will see the bots that have traction moving away from 3rd party NLP services. The biggest drawback, until now, has been the engineering investment and machine learning talent required to build a custom NLP engine. It makes no sense every bot team to reinvent the same things, so at LASTMILE we decided to open source ours. You can find out more at rasa.ai

 

Are you involved in ML and/or AI? Take the Developer Economics Survey and shape the future of ML/AI development.

Categories
Business

You’ve Built an App: Now What? Part 3: Analytics for Growth

 

analytics_growth

Like many developer teams that have released an app, Ægir Thor Steinarsson and Anne-Marthe Lorck (creators of the BudUp app), are now working on the next two goals of app creation: user acquisition and retention.

Steinarsson said that right now, he is “laying the groundwork”: setting up databases and spreadsheets to track what is happening. “I am taking a scientific approach to it: everything will be calculated. You need to Excel the shit out of this! I am using Google Analytics with collection points like counting every time users download the app, where the users are coming from. We have this set up but haven’t really started using it, but will in the near future. This is a learning process for us, so what is most important is measuring the traction channel. We’re very focused on collecting information.”

The Core Apps Analytics Process

Caroline Ragot, co-founder of Women in Mobile and a mobile strategist at Schibsted Spain, described the complete process for new dev teams when setting up their analytics:

“The basic tool is Firebase. It’s easy to integrate but isn’t as powerful (as paid options), but it is free and the others are not cheap but very powerful.” Ragot said Firebase is one of the most powerful free analytics tools available, especially if it is combined with Google Analytics. Firebase has been designed especially for mobile analytics and Ragot believes Google will keep investing in making it better. She also pointed to Flurry Analytics, which has a free component. Like many developers, Ragot focuses on Android apps first. According to VisionMobile’s Developer Economics State of the Developer Nation bi-annual report, 47% of professional developers consider Android their primary platform.

“If you start doing acquisition, you have to start tracking everything.” She suggested using AppsFlyer or Adjust. “Track everything that you promote, for each campaign for Facebook, you can have a separate link so you can see each specific campaign and how many downloads it gets you.”

Ragot said it is essential to go beyond downloads and track events to see how users from each traction channel are actually using your app. For example, for a job search app, you would want to set up event tracking for signing in, editing a CV, or applying for a job. “That way, you can see the quality of the campaign and whether the download users are doing something in the app. For example, 50 out of 100 downloaders might sign in coming from one campaign, and in another channel, 200 downloads are done but only 20 of those actually sign in to the app, so the quality is actually not so good so you can decide how to invest your money. So track everything with AppsFlyer and Adjust.”

Ragot said once analytics is in place, it is possible to start looking at the data and making sure your funnel is right. Each app has its own engage and customer funnel. For example, for Steinarsson’s BudUp app, the funnel involves creating an event, and attending it with other users who are looking for social company. For e-commerce, the funnel is selecting a product and going through the shopping cart to buy it. For an image manipulation app, the funnel is to add a filter to a photo and share it on social media or publish it.

Ragot said that over time, each step in those processes needs to be included in Google Analytics, so that dev teams can analyze when a user exits without completing the process. “Look at every step. Where do they drop? Was it a UX problem, that is super important. Analytics is for making sure your product is working well. How many downloads and users you have is really vanity metrics,” Ragot warned.

Brenden Mulligan, who is currently working on the app platform Firebase, is the former LaunchKit founder, which was recently acquired by Google. He listed a range of tools that he believes should be the bedrock of an app team’s analytics process. “Listen, learn, listen, learn,” he encouraged. “Analyze user behavior with analytics tools like Firebase Analytics, Mixpanel, or Fabric Answers. Make sure your app quality is strong with monitoring tools like Firebase Crash Reporting or Crashlytics. See what users are saying on the App Store with LaunchKit Review Monitor or App Figures. Set up communication channels through Intercom or Zendesk. Track any press mentions with Google Alerts and keep track of what people are saying on social media. Do A/B testing of different on-boarding flows and critical user journeys using Optimizely and Firebase Remote Config.”

Selecting Key Performance Indicators (KPIs)

Steinarsson said he is interested in two metrics at the moment:

  • Active users vs downloads (“That will be bad now, but we need to set a base”), and
  • Measuring each acquisition channel (“for example, measuring referrals from blogs or from Facebook ads”).

Ragot said new dev teams can even just focus on one metric: “If there is one KPI, according to my experience, that tells you everything, it is “Retention at Day X”. D1 retention is how many people come back to your app in the same day after they install it. I am always looking at D1, D3, D7, D14 and D30. If you put all of your effort into measuring this, you have good analytics that is a mix of retention and acquisition.”

Thinking Outside the Box

For Steinarsson and his cofounder Lorck, one of the biggest journeys since releasing their app has been the need to shift mindset from developing an app to running a business. “The greatest challenge has been moving away from being an amateur building something and being someone who runs a company and all the skills that go with that,” said Steinarsson. “Now it is out there, there is no hiding anymore and you have to acquire the skills at lightening speed, so that transition is the greatest challenge for me at the moment. Luckily, I have people who are working with me: for almost a year, my cofounder and I have been working together. She understands the pain point we are addressing, so she corrects me when I go off course. I can’t stress enough the importance of working together in a team.” He mentioned having a separate web designer and someone doing content generations for videos, and other outlets as an example of building his team.

“Mobile marketing is a discipline which is creating itself, and is still in process of creation,” explained Ragot. In the same way that once upon a time we would say “webmaster” and think of one person, now we all agree that it would be crazy to have one person managing content, social media, backend infrastructure, API developers, community engagement, and all of the other roles that are required for a scalable, growth-focused web business. It is the same for mobile, she said. As an app grows in its usage, the rest of that team needs to fill out, and everyone has a role in keeping on top of new developments, or testing new ideas.

“It is crazy to think you can have one developer do everything for your mobile app,” cautioned Ragot. “To me, a good developer has to know the 360 overview and what are those other expertise and how they work together but doesn’t need to know everything.”

The beauty of growing that team means that new ideas can spring up and new techniques to encourage user acquisition and retention. Ragot says that as an emerging industry, there are still new methods that have great opportunities for app developers. While Facebook Ad campaigns are now a mainstay in mobile marketing — with cost per acquisition now reflecting a high level of competition — other techniques are still available to savvy dev teams.

“App indexing is the new trend that not many people are using,” Ragot suggested. This requires both a website and mobile app for now although there are plans to make it available for app-only sites. Ragot says the technical integration is not easy, but the idea is that if you have the same search interface on both web and app, then users can open your website on their smartphone browser and when carrying out a search on your site, they are automatically directed to download your app, or directed to automatically open your app and carry out the search there if it is already downloaded. “It is still not fully used, whereas Facebook campaigns are now overcrowded and everyone knows that is the easiest way to get paid acquisition. App indexing is a great way to get organic acquisition — which means free downloads.

Building strategies for user acquisition and retention are the two major tasks for dev teams after they have built an app, and analytics helps understand exactly what is happening and how to keep building traction. From there, new possibilities can emerge that will help you grow your user community even stronger and help you identify novel ideas that may offer you a winning edge.

The strategies listed here work equally well for Android, iOS and Windows mobile apps, but for many developers the need for analytics tools to integrate with the Android platform is of paramount importance. According to VisionMobile’s  Developer Economics State of the Developer Nation  bi-annual report, Android has 79% of mindshare amongst mobile developers and is dominating as the mobile application platform used by professional developers. Based on surveys with over 16,500 developers across 145 countries, this latest study from VisionMobile shows how developers are building apps and thinking through solutions for mobile, desktop, IoT and emerging technologies including VR and Machine Learning. 

We are currently running our new survey and it is sci-fi themed! Would you like to contribute ? Take the survey 

 

Categories
Business

You’ve Built an App: Now What? Part 2: User Retention

user_retention

When devs create apps, it feels like that is the project. But once an app is built and released on an app store, it becomes obvious: creating the app was just the start of the journey. Now comes the really exciting (and scary) stuff: getting that app in front of users who will find it useful, and making sure they keep coming back to your app on a regular basis.

According to the  Developer Economics State of the Developer Nation bi-annual report, mobile is the key platform for application development, with developers also building solutions for desktop browsers, IoT, and now emerging technologies, which includes VR and Machine Learning. But for professional developers, the main game is still mobile, and Android is increasingly dominating as the mobile app platform of choice.

So after you’ve built an app, the first task is to position it so that your potential users start downloading it. User acquisition is all about getting app downloads. After downloads start climbing — even a slow increase is okay as long as it is steady — then it is important to start focusing on retention: getting users to start integrating your app into their habits so they reach for your app regularly.

Caroline Ragot, co-founder of Women in Mobile and a mobile strategist at Schibsted Spain, who has helped shepherd apps at several businesses into top ten rankings, says that without an early focus on retention, any resources invested in user acquisition can be wasted. “When you have a good base, then you can decide to go stronger on acquisition and invest more in downloads, but there is no use doing that too early,” Ragot said. “If you acquire and you cannot retain, then that is money you are throwing out the window.”

Brenden Mulligan, who is currently working on the app platform Firebase, is the former LaunchKit founder, which was recently acquired by Google. He said that the easy answer to retention is to “create an engaging and valuable experience and users will keep coming back over and over.” But, of course, it’s rarely that easy. “Users are constantly distracted with other apps, and everything else going on in their life. Therefore it helps for devs to build in re-engagement triggers into their app. Keep users interested in what’s going on within the app, and remind them to come back if they’ve lapsed too long. Study user behavior to know what the signs of a churning user look like and set up notifications and incentives to come back in before they lose interest.”

App user retention strategies fall into three categories:

  • User experience
  • Re-engagement
  • Performance.

Retention Strategy 1: User Experience

Ægir Thor Steinarsson and Anne-Marthe Lorck recently built the BudUp app aimed at supporting users to make new friends by letting them create and post activities or to join posted activites. Steinarsson said that now that the app has been released, he wants to focus on activities that don’t necessarily scale, but that give him a depth of insight into how downloaders are using the app. “You need to go and talk to people and stop hiding. It is very intimidating. For people who have spent a year and a half building something in the bedroom, it can be really scary.”

Ragot agreed. “You need to speak to people who are using the app, even if you are a dev and social skills are not your forte, you need to go out of the building because that will help you improve your app.” Ragot said that after launching an app, devs should be speaking to every single user. “Do they understand how to use the app? Do they get value out of it? Ask them to use the app in front of you.”

Ragot said the basic funnel for app user retention is the signup process. This is crucial because it is an early step in having the user make a commitment to using the app, and by signing in, it makes it easier to use retention strategies like social media plugins that let the user share in their networks that they are using your app (see part one on acquisition).

Ragot said watching users go through this basic funnel can be revealing. “Even in the beginning, you will see that some don’t know how to hide the keyboard, and maybe that is hiding the button for ‘next’ so if the user is blocked, they don’t complete the signup and they don’t come back. If you paid $1.50 to get that user, that is $1.50 you just lost.”

Retention Strategy 2: Re-Engagement

Echoing Mulligan’s comments about re-engagement triggers, Ragot also suggested using a number of app marketing and user retention products to help automate engagement with users. “The basic strategy is to use a tool for push notifications or in-app messages so you can segment your users,” said Ragot. She suggested using some mobile marketing automation tools to be able to create at least two types of segmentation. The first would be a re-engagement trigger automation so that when users have not used the app within a certain time frame — say, more than one week — they are prompted with a reminder that encourages them to use the app again. For apps like Steinarsson’s BudUp that have a geographical focus for the user, Ragot suggests also using a geographical segmentation to send relevant messages to users within a particular area. She pointed to Appboy, Swrve and Firebase as three tools that can help with this automation and re-engagement.

Ragot also suggested that devs regularly scan reviews of their app and respond to each comment. “Look at every single one and reply to each of them,” Ragot recommended. For now, devs can respond to reviews in Google Play, but apparently Apple has plans to introduce a similar feedback feature soon, too. “You can even say, send an email to support at whatever and we will help you. Try to talk to them, make a list of complaints about what are the major problems. Then you first fix what’s not working, and then you build the cool new features.”

Retention Strategy 3: Performance

Knowing when users are frustrated by their app experience leads to the third important strategy for retaining users: keeping your app highly performant.

48% of users who download an app and see it crash are less likely to use the app again and often quickly delete it for good from their device, with a third (31%) of downloaders then telling others of their negative experience.

“It is very important to have a tool to see the crashes in your app,” said Ragot. She recommended Fabric, which is made by Twitter. “You can integrate their SDK and see live how many people are using your app. It even prioritizes the crashes: it details the number of crashes and identifies at what line of your code it is happening.”

Ragot says that app developers should be aiming for 98% crash free performance.

Acquiring users is a challenging process, so devs need to be sure they can retain those users once they start using your app. Otherwise, there is a risk that the money, time and effort spent on acquisition is wasted as users have a quick look, and never return again.

These retention strategies work equally as well with Android, iOS and Windows mobile apps, but many of the tools available are embedded in the Google Play platform or able to be integrated with Google Play. This is incredibly important, as according to VisionMobile’s Developer Economics State of the Developer Nation bi-annual report, 80% of developers building apps professionally are targeting the Android platform.

In our final part of our series, we look at how developers can set up an analytics process to track acquisition and retention, and we unlock some of the next wave strategies that are not yet flooding the industry and may offer new apps a competitive advantage.

We are currently running our new survey and it is sci-fi themed! Would you like to contribute ? Take the survey 

 

Categories
Business

You’ve Built an App: Now What? Part 1: User Acquisition

user acquisition

Developers are makers. They solve pains, entertain, enlighten, and enhance productivity. Building an app can be an exhilarating experience and the joys of shipping can linger for… about ten seconds. Then comes the question, “I’ve built an app, now what?”

“Building an app is incredibly hard,” said Brenden Mulligan, former LaunchKit founder, which was recently acquired by Google. “But getting people to use it is an even bigger challenge. Once an app is released you start getting so many signals of how it’s doing, and it’s important to have the right infrastructure set up to receive and learn from those signals. Things like user activity, app store reviews, churn… In addition, devs have to be thinking of the next feature, or bugs they need to fix.”

Earlier this year, Ægir Thor Steinarsson and Anne-Marthe Lorck built an app to resolve what they were seeing as a common pain point.

“I am a fairly introverted person, and I am a bit disconnected from social groups: I’m studying with people much younger than me, I live in a foreign country. I mostly felt content in my day to day life, but also that I was missing out: I would end up repeatedly cancelling stuff I did want to do, like go to a concert or even a museum, because I didn’t know who to invite,” said Steinarsson.

“We did interviews with about 40 people and found others were experiencing social isolation as well,  we asked people to give it a pain grade on a scale of 1 to 5 and we started seeing everyone giving it a high pain point (3 and above). That turned out to be the main theme rather than the exception.”

Steinarsson and Lorck created BudUp as an app to solve that: users can register an event (a concert, movie, dinner party or other activity), and specify the number of people they hope to attend with.

The app was released on the Google Play Store. Android is the main mobile platform for professional developers, according to VisionMobile’s State of the Developer Nation quarterly report, which found that Android accounted for 79% of mobile developer mindshare.

For the BudUp team, while they have plans for an iOS app, for now their focus is all about traction: to get user downloads. As they ramp up their user acquisition, Steinarsson wants to make sure he has data systems in place to know what is happening and to monitor the user experience.

Knowing what to measure and using the free tools that can help developers do that quickly is crucial, said Caroline Ragot, Co-founder of Women in Mobile and Mobile Strategist at InfoJobs, a company of Schibsted Spain.

Ragot says there are two tasks to focus on after building an app: the first is acquisition, which is really about marketing an app.

The second task for a new app is to focus on retention. Ragot says retention is about marketing and the product working together. Analytics underpins an understanding of both these tasks.

Focusing on Acquisition: App Store Optimization (ASO)

Increasing user acquisition for your app starts with app store optimization. 30% of downloads occur after someone has searched by keywords in Google Play. So getting noticed within the app marketplace can already drive up user downloads before looking at any other type of promotion.

Ragot says there are three components in app store optimization:

  • text
  • icons
  • Screenshots
  • Review and rating.

Building off the experience of websites in getting noticed, app store optimization makes an impact. Ragot suggests thinking what people will search for when looking for your app, and making sure that those keywords are included in the application title text. “Put the keyword close to your brand,” said Ragot. “When I have done that for app projects, within about two hours I have seen apps move from a ranking of 30-something to a ranking of 8.”

After ASO, the next task is to make sure your icon looks appealing. Don’t believe this is important? Ragot suggests doing a simple app search for something like ‘clock’: “You will see that there will be some you don’t want to download just by looking at them.” In the Google Play console, there is a function to allow developers to A/B test their icons. Ragot suggests testing several and seeing which icon design drives more downloads for your app.

Screenshots are also important. “It’s like the landing page for your app. When visitors arrive, they need to understand what your app is about and it should inspire them to download. It is your first touchpoint with a user,” Ragot explained.

Finally, reviews and ratings make an impact. App stores like Google Play use metrics of downloads and active users as part of their search ranking algorithm, and reviews of apps makes a significant impact on helping encourage searchers to download.

Organic and Paid Acquisition

“The two big acquisition buckets are organic and paid,” said Mulligan, who recently talked about how to optimize app launches with First Round. “Ideally, an app can attract users organically. To do this, there are a lot of ways to optimize a launch to be more successful in initially attracting users. You need to make sure your product name is short and your tagline is clear and concise. You need to figure out what good acquisition looks like for your product and track it from the beginning. You need to bake in marketing hooks that let users share with others how they’re using your app and invite their friends to join them. When the time is right, you need to target the relevant reporters to cover your product and post it to sites with good lead generation like Product Hunt. And the whole time, make sure your line of communication with your early community is very open so you know what’s working, what’s not, and how to change your product to boost your acquisition.”

Other acquisition ideas include Facebook ad campaigns, which Ragot cautions can be expensive, but suggests it is still a good idea to dedicate a small budget of a few thousands dollars to encourage initial traction. Ragot also suggests focusing on social media by encouraging downloaders to share that they have downloaded your app and encourage their networks to do the same.

Steinarsson and Lorck will next focus on content marketing: getting featured in blogs, in particular. They believe when starting to acquire users it is important to do things that don’t necessarily scale in order to maintain an initial personal contact with potential users. They will target several content domains and see in which ones they get traction and focus on those segments to start.

When starting with acquiring users, it can feel like everything is an opportunity cost: choosing one strategy means not investing in another. Setting up analytics to quickly identify what is working is crucial to being able to do more of what works and quickly identify where effort is wasted. Ragot, Mulligan, Steinarsson and Lorck all agree: setting up analytics for acquisition and retention is essential.

And while their strategies are universal across mobile platforms, all three have focused on how to build acquisition with an Android app, reflecting the dominant position of Android in the mobile app developer’s mindshare. According to VisionMobile’s State of the Developer Nation report, 80% of those building apps professionally target Android.

In our next part, we will look at how to retain users once they have started using your app and in part three, we examine what analytics techniques for acquisition and retention to have in place and what free tools to use.

We are currently running our new survey and it is sci-fi themed! Would you like to contribute ? Take the survey 

Categories
Business

A developer’s career path: How to navigate between product & custom software development

The booming IT industry attracts more and more people by offering tremendous job opportunities and compensation well above the average level – according to the U.S. Bureau of Labor Statistics, in 2015 the median annual salary in IT was twice higher than the national rate. While the IT staff headcount increases dramatically (by 48% in the US and 28% in the UK in 2015, as stated by CompTIA), building a successful career in this dynamic industry requires more than sufficient knowledge of technologies and advanced programming skills. Without a thought-out career strategy that implies progression, one day a developer is likely to find themselves stuck in a dead-end job.

We suggest building a personal career roadmap while leveraging every learning opportunity. An indeed effective way to achieve the goal is to find the balance between experience in product and custom software development companies. Here are the tips on getting maximum valuable knowledge and skills with both types of employers.

A product company to master technical skills

Become a team expert. Stability is what appeals most about starting a career at a large product development company. Developers can work for as a many as 10 years on one product, bringing it to perfection. At this career stage, the underlying opportunity for programmers is to master a particular technology and become an expert in their team or even the entire company. A deep technology experience acquired through time will contribute to a developer’s professional competitiveness in case such a narrow specialist is required by other companies as well.

On the other hand, exactly this narrow specialization is likely to block career growth. Staying for too long in the same position can lead to the stagnation of your skills and pay. In addition, at a big product company the customer-centric approach is mainly adopted at the upper management level, while developers focus more on implementation and efficiency rather than on customers’ business needs. As a result, most developers grow biased towards technicalities without understanding a bigger picture.

Learn to keep it universal. Targeting an entire market segment rather than individual customers makes out-of-the-box software developers think universal in order to come up with products that can be used by a range of companies with similar needs. If you decide to continue your career in custom software development, the vision gained through such an experience will pay off by helping to avoid too narrow thinking while implementing technical solutions.

Grow as fast as the business. A dynamic product company is an ideal environment for a fast career growth if you show the required competencies and are ready to work overtime. As the alternative to a salary, a startup employer can also offer revenue sharing for compensation. This can work fine if the startup makes it, or can leave you broke if it doesn’t.

Stay on the cutting edge. Learning never stops for developers as technologies keep evolving. In the cutting-edge tech environment of product companies, developers can’t help but keep up with innovations in the industry.

The bottom line: Despite their in-depth technological skills, developers who reduce their experience solely to product development can get too far from real-life market needs to get promoted. To overcome this challenge, try getting into the habit of stepping beyond the code and putting yourself in the shoes of marketers or salespeople who actually push your product to the market.

A custom software development company to understand the market

Gain diverse development experience. While being a specialist in a particular technology, a developer is more likely to build a successful career if they have understanding of and hands-on experience with different technologies. Every custom software development company stimulates programmers to learn more technologies and tools, as well as gives opportunities to acquire relevant skills while working on diverse projects.

Understand the customer, market, and industry. In the end, be it a product or a custom solution, software is first and foremost a tool to solve a customer’s challenge. To get promoted to a software architect or a CTO, developers have to learn to see software the way customers do. Get used to asking yourself: How well does the software fit business needs? how cost-effective is it? how well does it integrate with other software? what makes it more usable than competitors’ offering?

At a custom software development company, programmers get the understanding of the customer’s needs first-hand, with no additional research required. As customers often come from different industries, you also get a precious knowledge of their domains, which is hardly possible to acquire in another way.

Master soft skills on the go. The trickery of software development is that it’s indeed a team business that brings together extremely clever but largely introverted minds. When less proficient programmers get promoted quicker than their more technically experienced colleagues, the clue is in the soft skills they manage to nurture at work. The most cited ones are communication skills and responsibility.

Engagement in custom software development allows to develop proficient communication and problem-solving skills, as developers get a chance to communicate with diverse customers across time zones and cultures. A highly qualified developer, such as a software architect, not only understands how technology can solve a customer’s problem but can effectively communicate this vision to the team that will bring the project to life. By learning to effectively interact with all the parties involved in a solution delivery – the team, the product owner, the sales people, etc., a developer gets the communicative competencies required for a managerial position. The ability to undertake responsibility should be also developed and manifested over time. Therefore, it’s important to keep taking on more and more responsibility, first, for the design of smaller elements, then for larger ones, until you get capable of supervising a technical design for the entire solution.

The bottom line: With a wide range of projects, custom software development companies offer opportunities for gaining industry and market understanding, nurturing diverse technical competencies and filling the gaps in soft skills required for a career growth. Yet, with too much orientation on the needs of particular customers, watch out for the problem-solution trap. For this, learn how to recognize similar problems of customers and use best practices acquired while working at previous projects.

Learn to navigate your career path in between

Product and custom software development companies alike provide unique career advantages, so the question is not which one to choose but how to combine experience with both for a bright career. There are at least two strategic options:

The custom software-to-product strategy. A developer starts with 2-3 years at a custom software development company so as to gain understanding of industries and customers, as well as diverse technical experience. Then with the customer-oriented approach deep in mind, they become a more valuable candidate and can move to a position at a higher level at a product company. While being employed with a product development company, the developer continues to master technicalities and complements their vision with a universal approach to software. This makes the developer a reasonable candidate for further promotion.

 The product-to-custom software strategy. First a developer gains a deep technical experience either at a cutting-edge technological startup or, ideally, at a stable product company for about 2 years. Working in the corporate environment first will teach them how to do business at a big scale, which is hardly achievable at a startup. Either way, upon getting a solid technical background and getting used to address similar challenges of diverse customers with a single product, the developer can move to one of the leading custom software development companies. With the previous product development experience, they will quickly climb the career ladder, as long as they keep enriching their understanding of the market through participation in a range of projects.

Afterthought

Combining experience in both areas, a developer becomes a competitive specialist and elevates the chances of employment in (or promotion to) a higher position. For sure, it’s possible to stay self-employed or start your own business right away. Yet, the deal appears too risky with the claimed 80-90% percent rate of startups fails. Besides, in the startup environment, the CEO’s, CMO’s and developer’s responsibilities overlap, which means that to succeed, you will need to demonstrate technical and soft skills alike. With such a solid background, it will be easier to start your own business and survive on the market knowing what product the market needs, as well as how to deliver it. In due course, all these will make you look more reliable in the eyes of investors and raise the chances of staying in the 10-20 % of the startups survived.

 

This post was provided by ScienceSoft, a US-headquartered custom software development company with 450+ IT professionals located internationally. With over 27 years of IT business experience, ScienceSoft is a recognized partner of IBM, Microsoft, Oracle and EPiServer.

 

Categories
News and Resources Tools

Oculus previews a new untethered VR headset

Welcome to DeveloperEconomics’ weekly news roundup. In this edition Oculus previews a new untethered headset, Cyanogen shifts business strategy to a modular OS program and online furniture store Wayfair releases its first API. Read on for the full news rundown.

 

Oculus working on cheap untethered headset

 

Oculus revealed plans to release an untethered VR headset during its developer conference last week. The new VR device is intended to sit between mobile and full PC experiences, without relying on a separate smart device, like Google Daydream. The device is currently in a prototype stage and Oculus has remained silent on a release date.

 

Cyanogen shifts to Modular OS program

 

Cyanogen has appointed a new CEO and says it will shift its business model toward a Modular OS program. The new Modular OS program gives developers more freedom to borrow from Cyanogen’s technology, removing the limitations of the full Cyanogen OS stack. The company previously admitted it was having difficulty scaling its userbase and laid-off 20% of its staff earlier this summer.

 

iOS 10 adoption outpacing all other iOS versions

 

iOS 10 is now installed on 66% of active devices, according to marketing firm Fiksu. The adoption of the latest version of Apple’s mobile OS has been faster than all previous versions, according to the company. A Fiksu representative said: “We’ve never seen this kind of acceleration in the adoption curve for an iOS upgrade.” Apple’s official numbers dispute Fiksu’s and claims the OS has reach 54% of devices.

 

Oculus introduces $499 VR-ready PC

 

Oculus showed-off an VR-ready PC costing just $499, during its developer summit last week. The rig meets new Oculus minimum requirements, enabled by asynchronous spacewarp technology, which lets 45 frames per second look like 90 frames per second. The new price point is half the cost of the VR-ready PC Oculus introduced last year.

 

WaveMaker enhances app tool API integrations

 

WaveMaker has updated its platform to allow enterprise devs to create hybrid mobile apps. The update supports integrations of apps on any stack, including Java, .NET, PHP, Python and Node.js. WaveMaker says its new platform also doesn’t require the deployment of server-side components, required to access data from systems independent of the technology stack.

 

Wayfair launches 3D model API

 

Online furniture retailer Wayfair has released its first API. The API gives developers access to over 10,000 “realistic” 3D furniture and décor models. Wayfair says it’s also working on its own VR and AR app that allows customers to view its catalogue of furniture in their own home.

 

NetBeans 8.2 releases ahead of Apache hand-off

 

Oracle has released version 8.2 of NetBeans. Version 8.2 is the last NetBeans release before the Java IDE leaves Oracle and becomes part of the Apache Software Foundation’s Incubator Project. New features include ECMAScript 6 support, Docker Support, PHP7 support and NodeJS enhancements.

 

Facebook open-sources Yarn, a JavaScript package manager

 

Facebook in collaboration with Exponent, Google and Tilde has open-sourced Yarn, a new Javascript package manager. Facebook are already using Yarn in production. It greatly improves speed compared to the official npm client and adds security by comparing checksums of the modules installed.

 

Visual Studio Code updated with TypeScript 2.0

 

Microsoft released version 1.6 of the code editor, bringing TypeScript 2.0 and more. Other improvements include Format on Save, Switch Windows (partially addresses this issue), search term history and more.

 

Facebook launches Workplace, enterprise social networking

 

Facebook has launched Workplace, an enterprise-focused messaging and social networking service. Workplace has chat, live video and audio calling, multi-emotional reactions and automatic translation services. Workplace has the Graph API for building custom integrations

Sign up for our weekly newsletter, with the latest facts and insights on the app economy.

Categories
News and Resources Platforms

Google announces new hardware and “Actions on Google” platform

Welcome to DeveloperEconomics’ weekly news roundup. In this edition Google announces new hardware and “Actions on Google” platform, Apple and Deloitte team-up for enterprise solutions and HTC’s Viveport VR app store goes live globally. Read on for the full news rundown.

 

Google announces new hardware and “Actions on Google” platform

 

Google has launched two new premium smartphones using the Pixel brand, a Daydream VR headset, a new WiFi router, and a 4k Chromecast. They have also announced dates and pricing for the previously announced Google Home speaker. On top of this, December will see the availability of a new ‘Actions on Google’ platform for developers to add to Google’s new Assistant in Allo, Google Home and exclusively on Pixel phones.

 

Google combines services under ‘Cloud’ brand

 

Google has created a new umbrella brand for its cloud services. Google for Work – Google’s Cloud Platform – and Google Apps for Work – which itself is being rebranded as GSuite – all now fall under the newly created Google Cloud brand. Google said its decision to rebrand underscores its seriousness about enterprise services.

 

Android Wear 2.0 delayed until 2017

 

The release of Android Wear 2.0 will be delayed until 2017, Google has announced. The release, originally scheduled for this autumn, was pushed back to allow Google to collect more feedback and fine tune the software. Google has instead released the third developer preview of the OS, which includes Google Play on Android Wear.

 

Genymobile announces cloud-based Android platform

Genymobile has announced a new cloud platform to help enterprises build and test Android applications. Genymotion Cloud features support for Jenkins and Bamboo, along with support for testing frameworks such as Robotium, Appium, Expresso and Calabash. The platform also features virtual device sharing, live demos and app sharing for cross-company collaboration.

 

HTC’s Viveport VR store goes global

 

HTC has launched its official store for the Vive VR headset. Viveport is launching in 30 countries, with around 60 titles covering categories such as education, design, art, social, video, music , sports and health. The store is currently highlighting content from the likes of Everest VR, The Blu, Google Spotlight Stores and Stonehenge VR.

 

Occipital launches $500 VR dev kit for smartphones

Start-up Occipital has released a dev kit that offers room-scale motion tracking for iOS and Android phones. The $500 kit uses Occipital’s Structure sensor, which has already been used on smartphones to create 3D meshes of environments. The kit includes a Structure Sensor, custom faceplate, phone case and 120-degree wide vision lens.

 

Codenvy partners with Bitnami for “one click” cloud stacks

 

Codenvy and Bitnami have teamed-up to offer “one-click” programming stacks for common frameworks. The stacks integrate the Che cloud IDE and workplace server with Bitnami stacks, allowing devs to intantly access Dockerized workspaces, removing the need to set-up and configure IDEs and frameworks before writing code. Frameworks supported include Express, Swift, Play and Rails.

 

Waratek enhances Java app security with RASP

Waratek has released a new version of its AppSecurity platform for Java apps. The release lets developers modernise the security capabilities of older Java apps with a RASP plug-in that the eliminates the need to replace existing Java Runtime Environments. Waratek adds that its virtualisation-based architecture avoids the performance penalties associated with other RASP products.

 

Oracle loses appeal against Google in Java battle

Oracle has lost its appeal against Google, in the long-running legal battle over whether Android infringes on Java copyrights. This latest appeal concerns whether Google failed to disclose its intent to develop tools to run Android on the desktop using the Android App Runtime for Chrome. A District Court Judge denied the motion, saying it had “no consequence with the defined scope of our trials.”

 

Apple and Deloitte announce iOS partnership

 

Apple has teamed-up with Deloitte to help companies get to grips with the enterprise features of iOS. The partnership involves a “first-of-its-kind” Apple practice with over 5,000 strategic advisors, who are focused on helping business take advantage of the iOS ecosystem. The deal will also see Deloitte offer native app development services for ERP, CRM and HR departments.

 

Skymind raises $3m for Java deep-learning library

 

Skymind, which offers an open-source deep-learning library for Java, has raised $3 million from investors such as Tencent, SV Angel and Mandra Capital. The start-up aims to build a library that lets Java developers work on AI deep learning. Skymind says its libraries have been downloaded 22 thousand times just in the last month.

Sign up for our weekly newsletter, with the latest facts and insights on the app economy.

Categories
Tools

Choosing a Javascript charting library in 2016

Given the overabundance of tools available to a Javascript developer in 2016, finding and choosing the right one is often a challenge.

Especially when it comes to visualising data, either drawing animated charts or implementing custom interactive infographics, the choice becomes harder since there are a lot of tools out there: Wikipedia’s “Comparison of Javascript charting frameworks” currently lists 44 different libraries, jsgraphs.com currenty stands at 72(!) different charting tools and – to make matters worse – the Google search result for “best javascript charting libraries” over-delivers with approximately 786K results, out of which the first 20 results are all links with titles like “{{integer in multiples of 5}} best javascript libraries”.

Naturally, most of the relevant Stackoverflow questions of the”what is the best tool” nature are “closed as not constructive”.

In this article I aim to help with the above challenge by means of a slightly unconventional approach: In my research I tried to quantify the merits of the most popular libraries, given a series of “developer-friendly” metrics.

Sounds weird and subjective? It is. Read on.

Step 1: Understanding declarative vs imperative approaches

Before we start comparing, it is essential to understand how almost all of the available libraries can be split into two distinct categories based on their approach. Let us borrow from classical computer science and use the “declarative vs imperative” paradigm comparison for this.

The declarative approach

The majority of JS charting libraries follow the declarative paradigm: You write code that describes what you want to end up with, and the library ensures it happens dealing with all the minutiae.

FusionCharts, Highcharts, amCharts, Chart.js etc. all follow this approach: You pick a chart type (column, bar, pie), you specify a configuration object and the library outputs a nice looking interactive chart based on your wishes.

The imperative approach

On the other hand, tools like D3.js, Paper.js or Snap.svg follow the imperative paradigm. They provide you with helper methods which you then need to use to write code that visualises your data step-by-step.

For example, to create a bar chart with D3.js you will need to initialise the canvas, calculate where to draw the axis, draw the axis, calculate where to draw the columns, draw the columns, the legend, the point data, add the events etc.

It does feel a little counter-intuitive to choose any tool that follows the imperative approach, until one sees the amazing work implemented by Mike Bostock (creator of D3.js) for the New York Times, with animated interactive infographics such as the 2012 “512 Paths to the White house” to understand how powerful a library like D3.js can be.

In the next step I made an effort to establish “winners” in each of those two categories.

Step 2: Quantify the popularity of each tool

2.1 Mentions in Google articles

One needs to start from somewhere so my first step was to revisit the “best javascript charting libraries” Google search, filter out to show results only from the past year, open the first 20 hits (first two pages) and note down which libraries were mentioned.

95 libraries in total – see the “Mentions” tab of this Google sheet for a full reference (it’s the first tab – and yes, there exists a library called “Aristocharts”. Seriously).

I then filtered out the list to include only the libraries with at least 4 hits:

javascript-chartinglibrary.1png

Some surprises here already. No amCharts? No mention at all of Paper.js or Snap.svg? Interestingly, the fact that N3-charts “made the cut” here can be construed I believe as a testament to the popularity of Angular.js.

What comes as no surprise is the popularity of D3.js. It is also the only library in this list that follows the “imperative” paradigm making D3.js the clear choice when it comes to that approach. I marked D3.js as the “winner” in the imperative category, filtered it out and continued.

2.2 Licensing

Next step was to establish the license of each library. Many developers are partial to tools that are either open source or come with really relaxed licensing.

Library-mentions-license-visionmobile2

Some reading is involved if one wants to make sense of Google custom license for their “Charts” library (it’s free with a lot of caveats). Interestingly ZingChart offers a free (albeit watermarked) version of its library.

Please note that personal bias prevented me from filtering out the commercial offerings at this stage. I’ve used both Highcharts and FusionCharts in the past to great success and as a result I opted to not judge based on price – until I had all the metrics that is.

2.3 Github stars and watchers

Does the library have a repo in Github? And if yes, how many people are watching, how many have starred it? I intentionally steered clear of other Github measurements such as number of contributions or PRs since each repo has owners and each owner has his / her own personal approach towards how “open” they are to contributions.

On the other hand, a project’s star rating is a clear indication of how many developers (rather than simply users) “like” it. The “Watch” metric also tells us the number of devs who actively want to be notified when new things happen in the project.

javascript charting library

Google Charts had a few github repos but they were for projects that wrap / package their “Google Charts” project, e.g. GoogleWebComponents.

Two things stood out for me in the table above. The massive community support for ChartJS  – almost the same number of stars as Backbone.JS (!) – as well as the number of people who are watching Chart.js.

What is also surprising is that out of the three commercial offerings, Highcharts number of stars is orders of magnitude higher than the rest.

2.4 Stackoverflow tagged questions

Another metric that can tell us how many people are using a library is to see the number of questions that are “tagged” in stackoverflow for a specific library.

This is not foolproof – one might argue that extremely well designed and structured libraries will be so intuitive in their use that people will not be asking questions about them – but my personal experience has shown that even the simplest of tools generate a lot of questions when used by a lot of people.

javascript charting library comparison

Is Highcharts the most difficult library of all? Or is it perhaps the most widely-used one? Perhaps its developers are extremely responsive to the questions of the community? We cannot answer this with 100% confidence. What these counts show however, is that highcharts has more tagged questions in Stackoverflow than all rest of the libraries combined.

Choosing the winners

Since I’ve already opted for a (completely) subjective approach, what better way to pick a winner by simply…. adding everything up.

Here are the top 5 libraries sorted by “Score”, i.e. the sum of github stars, github watchers and stackoverflow tagged questions:

javascript charting library comparison

Full data available on the “Final results” tab of this Google sheet.

Declarative approach – Open source – Chart.js

If the Github stars are anything to judge by, there is a lot of developer enthusiasm for what Chart.js offers.

The documentation is clear and concise – http://www.chartjs.org/docs/ – with several inline examples, browser support is solid (as long as <canvas> is supported chart.js will work – this means no IE8 and some inconsistencies on <= IE 10) and the 8 chart types it offers should be more than enough for most needs.

Declarative approach – Commercial – Highcharts

I’m an avid user of Highcharts and I was pleasantly surprised to see it “rising” in the ranks of my little quantitative experiment. The massive number of stackoverflow questions clearly signifies that despite its commercial nature, the community uses it… a lot. The high number of github stars – (I repeat: for a commercial project) – is also quite indicative of the “developer feelings” for Highcharts.

The documentation is stellar (with a really powerful “Demo” showcase where every single example is linked to a working JSFiddle), the API browser / reference is a great resource and browser support is not an issue since Highcharts auto-falls back to VML rendering for older IE browsers.

Check out this JSFiddle to see how easy it is to visualise a table like the one shown in “Choosing the winners” above:

choosing a javascript ibrary

Imperative approach – Open source – D3.js

The central principle of D3 is to enable developers to programmatically construct SVG objects and render them as they see fit. As long as you can visualise it, D3.js can help you (a) draw it, (b) make it interactive and (c) animate it.

D3.js is the tool to use when a charting library simply won’t cut it. And the community demonstrates this very clearly:

Github stars – 54848
Github watchers – 2653
Stackoverflow tagged questions – 22036

If I had to score this the same way I scored the charting libraries, then D3 leaves everyone behind by a factor of 2 with a score of 79537.