ALU

Analysis

How Competition Affects Trust In The Workplace

Competition is widely believed to have a corrosive impact on trust, but what happens when that competition comes from a rival firm? Does the external "threat" bind us together? That was the conclusion reached by a recent study from the University of British Columbia, Princeton University and Aix-Marseille University.

The researchers collected data from the manufacturing sector in both the United States and Germany, and it emerged that the more intense the competition within the sector, the more likely it was for pro-social behaviors, such as cooperation and knowledge sharing, within each company.

Original Link

Connection Handling and Authentication in RavenDB 4.0

An interesting question has popped up in the mailing list about the behavior of RavenDB. When will RavenDB client send the certificate to the server for authentication? SSL handshake typically takes multiple round trips to negotiate an SSL connection, and that a certificate can be a fairly large object. It makes sense that understanding this aspect of RavenDB behavior is going to be important for users.

In the mailing list, I gave the following answer:

RavenDB doesn’t send the certificate on a per request basis, instead, it sends the certificate at the start of each connection.

I was asked for a follow-up because I wasn’t clear to the user. This is a problem, I was answering from my perspective, which is quite different from the way that a RavenDB user from the outside will look at things. Therefore, this post is hopefully a more complete way of explaining how it all works.

RavenDB uses X509 Client Certificates for authentication, using SSL to both authenticate the remote client to the server (and the server to the client, using PKI) and to ensure that the communication between client and server are private. RavenDB utilizes TLS 1.2 for the actual low-level wire transfer protocol. Given that .NET Core doesn’t yet implement TLS 1.3 or FastOpen, that means that we need to do the full negotiation on each connection.

Now, what exactly is a connection in this regard? It this going to be every call to OpenSession? The answer is empathically not. RavenDB is managing a connection pool internally (actually, we are relying on the HttpClient’s pool to do that). This means that we are only ever going to have as many TCP connections to the server as you had concurrent requests. A session will effectively borrow a connection from the pool whenever it needs to talk to the server.

The connections in the pool are going to be re-used, potentially for a long time. This allows us to alleviate the cost of actually doing the TCP and SSL handshake and amortize it over many requests. This also means that the entire cost of authentication isn’t paid on a per request basis, but per connection. What actually happens is that at the beginning of the connection, the RavenDB server will validate the client certificate and remember what permissions are granted to it. Any and all requests on this connection can then just used the cached permissions for the lifetime of the connection. This stateful approach reduces the overall cost of authentication because we don’t need to run full validation on every request.

This also means that OpenSession, for example, is basically free. All it does is allocate a bunch of dictionaries and some other data structures for the session. There is no wire traffic because the session is created, only when you actually make a request to the server (Load, Query, SaveChanges, etc). Most of the time, we don’t need to create a new connection for that but can use a pre-existing one from the pool. The entire system was explicitly designed to take advantage of best practices to optimize your overall performance.

Original Link

How to Read a Thread Dump

Most Java applications developed today involve multiple threads, which, in contrast to its benefits, carries with it a number of subtle difficulties. In a single-threaded application, all resources (shared data, Input/Output (IO) devices, etc.) can be accessed without coordination, knowing that the single thread of execution will be the only thread that utilizes the resource at any given time within the application.

In the case of multithreaded applications, a trade-off is made — increased complexity for a possible gain in performance, where multiple threads can utilize the available (often more than one) Central Processing Unit (CPU) cores. In the right conditions, an application can see a significant performance increase using multiple threads (formalized by Amdahl’s Law), but special attention must be paid to ensure that multiple threads coordinate properly when accessing a resource that is needed by two threads. In many cases, frameworks, such as Spring, will abstract direct thread management, but even the improper use of these abstracted threads can cause some hard-to-debug issues. Taking all of these difficulties into consideration, it is likely that, eventually, something will go wrong, and we, as developers, will have to start diagnosing the indeterministic realm of threads.

Fortunately, Java has a mechanism for inspecting the state of all threads in an application at any given time —the thread dump. In this article, we will look at the importance of thread dumps and how to decipher their compact format, as well as how to generate and analyze thread dumps in realistically-sized applications. This article assumes the reader has a basic understanding of threads and the various issues that surround threads, including thread contention and shared resource management. Even with this understanding, before generating and examining a thread dump, it is important to solidify some central threading terminology.

Understanding the Terminology

Java thread dumps can appear cryptic at first, but making sense of thread dumps requires an understanding of some basic terminology. In general, the following terms are key in grasping the meaning and context of a Java thread dump:

  • Thread — A discrete unit of concurrency that is managed by the Java Virtual Machine (JVM).  Threads are mapped to Operating System (OS) threads, called native threads, which provide a mechanism for the execution of instructions (code). Each thread has a unique identifier, name, and may be categorized as a daemon thread or non-daemon thread, where a daemon thread runs independent of other threads in the system and is only killed when either the Runtime.exit method has been called (and the security manager authorizes the exiting of the program) or all non-daemon threads have died. For more information, see the Thread class documentation.
    • Alive thread — a running thread that is performing some work (the normal thread state).
    • Blocked thread — a thread that attempted to enter a synchronized block but another thread already locked the same synchronized block.
    • Waiting thread — a thread that has called the wait method (with a possible timeout) on an object and is currently waiting for another thread to call the notify method (or notifyAll) on the same object. Note that a thread is not considered waiting if it calls the wait method on an object with a timeout and the specified timeout has expired.
    • Sleeping thread — a thread that is currently not executing as a result of calling the Thread.sleep method (with a specified sleep length).
  • Monitor — a mechanism employed by the JVM to facilitate concurrent access to a single object. This mechanism is instituted using the synchronized keyword, where each object in Java has an associated monitor allowing any thread to synchronize, or lock, an object, ensuring that no other thread accesses the locked object until the lock is released (the synchronized block is exited). For more information, see the Synchronization section (17.1) of the Java Langauge Specification (JLS).
  • Deadlock — a scenario in which one thread holds some resource, A, and is blocked, waiting for some resource, B, to become available, while another thread holds resource B and is blocked, waiting for resource A to become available. When a deadlock occurs, no progress is made within a program. It is important to note that a deadlock may also occur with more than two threads, where three or more threads all hold a resource required by another thread and are simultaneously blocked, waiting for a resource held by another thread. A special case of this occurs when some thread, X, holds resource A and requires resource C, thread Y holds resource B and requires resource A, and thread Z holds resource C and requires resource B (formally known as the Dining Philosophers Problem).

Image title

  • Livelock — a scenario in which thread A performs an action that causes thread B to perform an action that in turn causes thread A to perform its original action. This situation can be visualized as a dog chasing its tail. Similar to deadlock, live-locked threads do not make progress, but unlike deadlock, the threads are not blocked (and instead, are alive).

The above definitions do not constitute a comprehensive vocabulary for Java threads or thread dumps but make up a large portion of the terminology that will be experienced when reading a typical thread dump. For a more detailed lexicon of Java threads and thread dumps, see Section 17 of the JLS and Java Concurrency in Practice.

With this basic understanding of Java threads, we can progress to creating an application from which we will generate a thread dump and, later, examine the key portion of the thread dump to garner useful information about the threads in the program.

Creating an Example Program

In order to generate a thread dump, we need to first execute a Java application. While a simple “hello, world!” application results in an overly simplistic thread dump, a thread dump from an even moderately-sized multithreaded application can be overwhelming. For the sake of understanding the basics of a thread dump, we will use the following program, which starts two threads that eventually become deadlocked:

public class DeadlockProgram { public static void main(String[] args) throws Exception { Object resourceA = new Object(); Object resourceB = new Object(); Thread threadLockingResourceAFirst = new Thread(new DeadlockRunnable(resourceA, resourceB)); Thread threadLockingResourceBFirst = new Thread(new DeadlockRunnable(resourceB, resourceA)); threadLockingResourceAFirst.start(); Thread.sleep(500); threadLockingResourceBFirst.start(); } private static class DeadlockRunnable implements Runnable { private final Object firstResource; private final Object secondResource; public DeadlockRunnable(Object firstResource, Object secondResource) { this.firstResource = firstResource; this.secondResource = secondResource; } @Override public void run() { try { synchronized(firstResource) { printLockedResource(firstResource); Thread.sleep(1000); synchronized(secondResource) { printLockedResource(secondResource); } } } catch (InterruptedException e) { System.out.println("Exception occurred: " + e); } } private static void printLockedResource(Object resource) { System.out.println(Thread.currentThread().getName() + ": locked resource -> " + resource); } }
}

This program simply creates two resources, resourceAand resourceB, and starts two threads, threadLockingResourceAFirstand threadLockingResourceBFirst, that lock each of these resources. The key to causing deadlock is ensuring that threadLockingResourceAFirst tries to lock resourceAand then lock resourceBwhile threadLockingResourceBFirst tries to lock resourceBand then resourceA. Delays are added to ensure that threadLockingResourceAFirstsleeps before it is able to lock resourceBand threadLockingResourceBFirstis given enough time to lock resourceB before threadLockingResourceAFirstwakes. threadLockingResourceBFirst then sleeps and when both threads await, they find that the second resource they desired has already been locked and both threads block, waiting for the other thread to relinquish its locked resource (which never occurs).

Executing this program results in the following output, where the object hashes (the numeric following java.lang.Object@) will vary between each execution:

Thread-0: locked resource -> java.lang.Object@149bc794
Thread-1: locked resource -> java.lang.Object@17c10009

At the completion of this output, the program appears as though it is running (the process executing this program does not terminate), but no further work is being done. This is a deadlock in practice. In order to troubleshoot the issue at hand, we must generate a thread dump manually and inspect the state of the threads in the dump.

Generating a Thread Dump

In practice, a Java program might terminate abnormally and generate a thread dump automatically, but, in some cases (such as with many deadlocks), the program does not terminate but appears as though it is stuck. To generate a thread dump for this stuck program, we must first discover the Process ID (PID) for the program. To do this, we use the JVM Process Status (JPS) tool that is included with all Java Development Kit (JDK) 7+ installations. To find the PID for our deadlocked program, we simply execute jps in the terminal (either Windows or Linux):

$ jps
11568 DeadlockProgram
15584 Jps
15636

The first column represents the Local VM ID (lvmid) for the running Java process. In the context of a local JVM, the lvmid maps to the PID for the Java process. Note that this value will likely differ from the value above. The second column represents the name of the application, which may map to the name of the main class, a Java Archive (JAR) file, or Unknown, depending on the characteristics of the program run.

In our case, the application name is DeadlockProgram, which matches the name of the main class file that was executed when our program started. In the above example, the PID for our program is 11568, which provides us with enough information to generate thread dump. To generate the dump, we use the jstack program (included with all JDK 7+ installations), supplying the -l flag (which creates a long listing) and the PID of our deadlocked program, and piping the output to some text file (i.e. thread_dump.txt):

jstack -l 11568 > thread_dump.txt

This thread_dump.txt file now contains the thread dump for our deadlocked program and includes some very useful information for diagnosis the root cause of our deadlock problem. Note that if we did not have a JDK 7+ installed, we could also generate a thread dump by quitting the deadlocked program with a SIGQUIT signal. To do this on Linux, simply kill deadlocked program using its PID (11568 in our example), along with the -3 flag:

kill -3 11568

Reading a Simple Thread Dump

Opening the thread_dump.txt file, we see that it contains the following:

2018-06-19 16:44:44
Full thread dump Java HotSpot(TM) 64-Bit Server VM (10.0.1+10 mixed mode): Threads class SMR info:
_java_thread_list=0x00000250e5488a00, length=13, elements={
0x00000250e4979000, 0x00000250e4982800, 0x00000250e52f2800, 0x00000250e4992800,
0x00000250e4995800, 0x00000250e49a5800, 0x00000250e49ae800, 0x00000250e5324000,
0x00000250e54cd800, 0x00000250e54cf000, 0x00000250e54d1800, 0x00000250e54d2000,
0x00000250e54d0800
} "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x00000250e4979000 nid=0x3c28 waiting on condition [0x000000b82a9ff000] java.lang.Thread.State: RUNNABLE at java.lang.ref.Reference.waitForReferencePendingList(java.base@10.0.1/Native Method) at java.lang.ref.Reference.processPendingReferences(java.base@10.0.1/Reference.java:174) at java.lang.ref.Reference.access$000(java.base@10.0.1/Reference.java:44) at java.lang.ref.Reference$ReferenceHandler.run(java.base@10.0.1/Reference.java:138) Locked ownable synchronizers: - None "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x00000250e4982800 nid=0x2a54 in Object.wait() [0x000000b82aaff000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(java.base@10.0.1/Native Method) - waiting on <0x0000000089509410> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:151) - waiting to re-lock in wait() <0x0000000089509410> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:172) at java.lang.ref.Finalizer$FinalizerThread.run(java.base@10.0.1/Finalizer.java:216) Locked ownable synchronizers: - None "Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x00000250e52f2800 nid=0x2184 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x00000250e4992800 nid=0x1624 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x00000250e4995800 nid=0x4198 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE No compile task Locked ownable synchronizers: - None "C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x00000250e49a5800 nid=0x3b98 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE No compile task Locked ownable synchronizers: - None "C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x00000250e49ae800 nid=0x1a84 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE No compile task Locked ownable synchronizers: - None "Sweeper thread" #9 daemon prio=9 os_prio=2 tid=0x00000250e5324000 nid=0x5f0 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "Service Thread" #10 daemon prio=9 os_prio=0 tid=0x00000250e54cd800 nid=0x169c runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "Common-Cleaner" #11 daemon prio=8 os_prio=1 tid=0x00000250e54cf000 nid=0x1610 in Object.wait() [0x000000b82b2fe000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(java.base@10.0.1/Native Method) - waiting on <0x000000008943e600> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:151) - waiting to re-lock in wait() <0x000000008943e600> (a java.lang.ref.ReferenceQueue$Lock) at jdk.internal.ref.CleanerImpl.run(java.base@10.0.1/CleanerImpl.java:148) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) at jdk.internal.misc.InnocuousThread.run(java.base@10.0.1/InnocuousThread.java:134) Locked ownable synchronizers: - None "Thread-0" #12 prio=5 os_prio=0 tid=0x00000250e54d1800 nid=0xdec waiting for monitor entry [0x000000b82b4ff000] java.lang.Thread.State: BLOCKED (on object monitor) at DeadlockProgram$DeadlockRunnable.run(DeadlockProgram.java:34) - waiting to lock <0x00000000894465b0> (a java.lang.Object) - locked <0x00000000894465a0> (a java.lang.Object) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) Locked ownable synchronizers: - None "Thread-1" #13 prio=5 os_prio=0 tid=0x00000250e54d2000 nid=0x415c waiting for monitor entry [0x000000b82b5ff000] java.lang.Thread.State: BLOCKED (on object monitor) at DeadlockProgram$DeadlockRunnable.run(DeadlockProgram.java:34) - waiting to lock <0x00000000894465a0> (a java.lang.Object) - locked <0x00000000894465b0> (a java.lang.Object) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) Locked ownable synchronizers: - None "DestroyJavaVM" #14 prio=5 os_prio=0 tid=0x00000250e54d0800 nid=0x2b8c waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "VM Thread" os_prio=2 tid=0x00000250e496d800 nid=0x1920 runnable "GC Thread#0" os_prio=2 tid=0x00000250c35b5800 nid=0x310c runnable "GC Thread#1" os_prio=2 tid=0x00000250c35b8000 nid=0x12b4 runnable "GC Thread#2" os_prio=2 tid=0x00000250c35ba800 nid=0x43f8 runnable "GC Thread#3" os_prio=2 tid=0x00000250c35c0800 nid=0x20c0 runnable "G1 Main Marker" os_prio=2 tid=0x00000250c3633000 nid=0x4068 runnable "G1 Conc#0" os_prio=2 tid=0x00000250c3636000 nid=0x3e28 runnable "G1 Refine#0" os_prio=2 tid=0x00000250c367e000 nid=0x3c0c runnable "G1 Refine#1" os_prio=2 tid=0x00000250e47fb800 nid=0x3890 runnable "G1 Refine#2" os_prio=2 tid=0x00000250e47fc000 nid=0x32a8 runnable "G1 Refine#3" os_prio=2 tid=0x00000250e47fd800 nid=0x3d00 runnable "G1 Young RemSet Sampling" os_prio=2 tid=0x00000250e4800800 nid=0xef4 runnable "VM Periodic Task Thread" os_prio=2 tid=0x00000250e54d6800 nid=0x3468 waiting on condition JNI global references: 2 Found one Java-level deadlock:
============================= "Thread-0": waiting to lock monitor 0x00000250e4982480 (object 0x00000000894465b0, a java.lang.Object), which is held by "Thread-1" "Thread-1": waiting to lock monitor 0x00000250e4982380 (object 0x00000000894465a0, a java.lang.Object), which is held by "Thread-0" Java stack information for the threads listed above:
=================================================== "Thread-0": at DeadlockProgram$DeadlockRunnable.run(DeadlockProgram.java:34) - waiting to lock <0x00000000894465b0> (a java.lang.Object) - locked <0x00000000894465a0> (a java.lang.Object) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) "Thread-1": at DeadlockProgram$DeadlockRunnable.run(DeadlockProgram.java:34) - waiting to lock <0x00000000894465a0> (a java.lang.Object) - locked <0x00000000894465b0> (a java.lang.Object) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) Found 1 deadlock.

Introductory Information

Although this file may appear overwhelming at first, it is actually simple if we take each section one step at a time. The first line of the dump displays the timestamp of when the dump was generated, while the second line contains the diagnostic information about the JVM from which the dump was generated:

2018-06-19 16:44:44
Full thread dump Java HotSpot(TM) 64-Bit Server VM (10.0.1+10 mixed mode):

While these lines do not provide any information with regards to the threads in our system, they provide a context from which the rest of the dump can be framed (i.e. which JVM generated the dump and when the dump was generated).

General Threading Information

The next section begins to provide us with some useful information about the threads that were running at the time the thread dump was taken:

Threads class SMR info:
_java_thread_list=0x00000250e5488a00, length=13, elements={
0x00000250e4979000, 0x00000250e4982800, 0x00000250e52f2800, 0x00000250e4992800,
0x00000250e4995800, 0x00000250e49a5800, 0x00000250e49ae800, 0x00000250e5324000,
0x00000250e54cd800, 0x00000250e54cf000, 0x00000250e54d1800, 0x00000250e54d2000,
0x00000250e54d0800
}

This section contains the thread list Safe Memory Reclamation (SMR) information1, which enumerates the addresses of all non-JVM internal threads (e.g. non-VM and non-Garbage Collection (GC)). If we examine these addresses, we see that they correspond to the tid value — the address of the native thread object, not the Thread ID, as we will see shortly — of each of the numbered threads in the dump (note that ellipses are used to hide superfluous information):

"Reference Handler" #2 ... tid=0x00000250e4979000 ... "Finalizer" #3 ... tid=0x00000250e4982800 ... "Signal Dispatcher" #4 ... tid=0x00000250e52f2800 ... "Attach Listener" #5 ... tid=0x00000250e4992800 ... "C2 CompilerThread0" #6 ... tid=0x00000250e4995800 ... "C2 CompilerThread1" #7 ... tid=0x00000250e49a5800 ... "C1 CompilerThread2" #8 ... tid=0x00000250e49ae800 ... "Sweeper thread" #9 ... tid=0x00000250e5324000 ... "Service Thread" #10 ... tid=0x00000250e54cd800 ... "Common-Cleaner" #11 ... tid=0x00000250e54cf000 ... "Thread-0" #12 ... tid=0x00000250e54d1800 ... "Thread-1" #13 ... tid=0x00000250e54d2000 ... "DestroyJavaVM" #14 ... tid=0x00000250e54d0800 ...

Threads

Directly following the SMR information is the list of threads. The first thread listed in for our deadlocked program is the Reference Handler thread:

"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x00000250e4979000 nid=0x3c28 waiting on condition [0x000000b82a9ff000] java.lang.Thread.State: RUNNABLE at java.lang.ref.Reference.waitForReferencePendingList(java.base@10.0.1/Native Method) at java.lang.ref.Reference.processPendingReferences(java.base@10.0.1/Reference.java:174) at java.lang.ref.Reference.access$000(java.base@10.0.1/Reference.java:44) at java.lang.ref.Reference$ReferenceHandler.run(java.base@10.0.1/Reference.java:138) Locked ownable synchronizers: - None

Thread Summary

The first line of each thread represents the thread summary, which contains the following items:

Section Example Description
Name "Reference Handler"

Human-readable name of the thread. This name can be set by calling the setName method on a Threadobject and be obtained by calling getName on the object.

ID #2 A unique ID associated with each Thread object. This number is generated, starting at 1, for all threads in the system. Each time a Thread object is created, the sequence number is incremented and then assigned to the newly created Thread. This ID is read-only and can be obtained by calling getId on a Thread object.
Daemon status daemon

A tag denoting if the thread is a daemon thread. If the thread is a daemon, this tag will be present; if the thread is a non-daemon thread, no tag will be present. For example, Thread-0 is not a daemon thread and therefore has no associated daemon tag in its summary: Thread-0" #12 prio=5....

Priority prio=10 The numeric priority of the Java thread. Note that this does not necessarily correspond to the priority of the OS thread to with the Java thread is dispatched. The priority of a Thread object can be set using the setPriority method and obtained using the getPriority method.
OS Thread Priority os_prio=2 The OS thread priority. This priority can differ from the Java thread priority and corresponds to the OS thread on which the Java thread is dispatched.
Address

tid=0x00000250e4979000

The address of the Java thread. This address represents the pointer address of the Java Native Interface (JNI) native Thread object (the C++ Thread object that backs the Java thread through the JNI). This value is obtained by converting the pointer to this (of the C++ object that backs the Java Thread object) to an integer on line 879 of hotspot/share/runtime/thread.cpp:

    st->print("tid=" INTPTR_FORMAT " ", p2i(this));

Although the key for this item (tid) may appear to be the thread ID, it is actually the address of the underlying JNI C++ Thread object and thus is not the ID returned when calling getId on a Java Thread object.

OS Thread ID

nid=0x3c28

The unique ID of the OS thread to which the Java Thread is mapped. This value is printed on line 42 of hotspot/share/runtime/osThread.cpp:

    st->print("nid=0x%x ", thread_id());

Status

waiting on condition

A human-readable string depicting the current status of the thread. This string provides supplementary information beyond the basic thread state (see below) and can be useful in discovering the intended actions of a thread (i.e. was the thread trying to acquire a lock or waiting on a condition when it blocked).
Last Known Java Stack Pointer

[0x000000b82a9ff000]

The last known Stack Pointer (SP) for the stack associated with the thread. This value is supplied using native C++ code and is interlaced with the Java Thread class using the JNI. This value is obtained using the last_Java_sp() native method and is formatted into the thread dump on line 2886 of hotspot/share/runtime/thread.cpp:

    st->print_cr("[" INTPTR_FORMAT "]",
        (intptr_t)last_Java_sp() & ~right_n_bits(12));

For simple thread dumps, this information may not be useful, but for more complex diagnostics, this SP value can be used to trace lock acquisition through a program.

Thread State

The second line represents the current state of the thread. The possible states for a thread are captured in the Thread.State enumeration:

  • NEW
  • RUNNABLE
  • BLOCKED
  • WAITING
  • TIMED_WAITING
  • TERMINATED

For more information on the meaning of each state, see the Thread.State documentation.  

Thread Stack Trace

The next section contains the stack trace for the thread at the time of the dump. This stack trace resembles the stack trace printed when an uncaught exception occurs and simply denotes the class and line that the thread was executing when the dump was taken. In the case of the Reference Handler thread, there is nothing of particular importance that we see in the stack trace, but if we look at the stack trace for Thread-02, we see a difference from the standard stack trace:

"Thread-0" #12 prio=5 os_prio=0 tid=0x00000250e54d1800 nid=0xdec waiting for monitor entry [0x000000b82b4ff000] java.lang.Thread.State: BLOCKED (on object monitor) at DeadlockProgram$DeadlockRunnable.run(DeadlockProgram.java:34) - waiting to lock <0x00000000894465b0> (a java.lang.Object) - locked <0x00000000894465a0> (a java.lang.Object) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) Locked ownable synchronizers: - None

Within this stack trace, we can see that locking information has been added, which tells us that this thread is waiting for a lock on an object with an address of 0x00000000894465b0 (and a type of java.lang.Object) and, at this point in the stack trace, holds a lock on an object with an address of 0x00000000894465a0 (also of type java.lang.Object). This supplemental lock information is important when diagnosing deadlocks, as we will see in the following sections.

Locked Ownable Synchronizer

The last portion of the thread information contains a list of synchronizers (objects that can be used for synchronization, such as locks) that are exclusively owned by a thread. According to the official Java documentation, “an ownable synchronizer is a synchronizer that may be exclusively owned by a thread and uses AbstractOwnableSynchronizer (or its subclass) to implement its synchronization property. ReentrantLock and the write-lock (but not the read-lock) of ReentrantReadWriteLock are two examples of ownable synchronizers provided by the platform.

For more information on locked ownable synchronizers, see this Stack Overflow post.

JVM Threads

The next section of the thread dump contains the JVM-internal (non-application) threads that are bound to the OS. Since these threads do not exist within a Java application, they do not have a thread ID. These threads are usually composed of GC threads and other threads used by the JVM to run and maintain a Java application:

"VM Thread" os_prio=2 tid=0x00000250e496d800 nid=0x1920 runnable "GC Thread#0" os_prio=2 tid=0x00000250c35b5800 nid=0x310c runnable "GC Thread#1" os_prio=2 tid=0x00000250c35b8000 nid=0x12b4 runnable "GC Thread#2" os_prio=2 tid=0x00000250c35ba800 nid=0x43f8 runnable "GC Thread#3" os_prio=2 tid=0x00000250c35c0800 nid=0x20c0 runnable "G1 Main Marker" os_prio=2 tid=0x00000250c3633000 nid=0x4068 runnable "G1 Conc#0" os_prio=2 tid=0x00000250c3636000 nid=0x3e28 runnable "G1 Refine#0" os_prio=2 tid=0x00000250c367e000 nid=0x3c0c runnable "G1 Refine#1" os_prio=2 tid=0x00000250e47fb800 nid=0x3890 runnable "G1 Refine#2" os_prio=2 tid=0x00000250e47fc000 nid=0x32a8 runnable "G1 Refine#3" os_prio=2 tid=0x00000250e47fd800 nid=0x3d00 runnable "G1 Young RemSet Sampling" os_prio=2 tid=0x00000250e4800800 nid=0xef4 runnable "VM Periodic Task Thread" os_prio=2 tid=0x00000250e54d6800 nid=0x3468 waiting on condition 

JNI Global References

This section captures the number of global references maintained by the JVM through the JNI. These references may cause memory leaks under certain circumstances and are not automatically garbage collected.

JNI global references: 2

For many simple issues, this information is unused, but it is important to understand the importance of these global references. For more information, see this Stack Overflow post.

Deadlocked Threads

The final section of the thread dump contains information about discovered deadlocks. This is not always the case: If the application does not have one or more detected deadlocks, this section will be omitted. Since our application was designed with a deadlock, the thread dump correctly captures this contention with the following message:

Found one Java-level deadlock:
============================= "Thread-0": waiting to lock monitor 0x00000250e4982480 (object 0x00000000894465b0, a java.lang.Object), which is held by "Thread-1" "Thread-1": waiting to lock monitor 0x00000250e4982380 (object 0x00000000894465a0, a java.lang.Object), which is held by "Thread-0" Java stack information for the threads listed above:
=================================================== "Thread-0": at DeadlockProgram$DeadlockRunnable.run(DeadlockProgram.java:34) - waiting to lock <0x00000000894465b0> (a java.lang.Object) - locked <0x00000000894465a0> (a java.lang.Object) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) "Thread-1": at DeadlockProgram$DeadlockRunnable.run(DeadlockProgram.java:34) - waiting to lock <0x00000000894465a0> (a java.lang.Object) - locked <0x00000000894465b0> (a java.lang.Object) at java.lang.Thread.run(java.base@10.0.1/Thread.java:844) Found 1 deadlock.

The first subsection describes the deadlock scenario: Thread-0 is waiting to lock a monitor (through the synchronized statement around the firstResource and secondResource in our application) that is held while Thread-1 is waiting to lock a monitor held by Thread-0. This circular dependency is the textbook definition of a deadlock (contrived by our application) and is illustrated in the figure below:

Image title

In addition to the description of the deadlock, the stack trace for each of the threads involved is printed in the second subsection. This allows us to track down the line and locks (the objects being used as monitor locks in this case) that are causing the deadlock. For example, if we examine line 34 of our application, we find the following content:

printLockedResource(secondResource);

This line represents the first line of the synchronized block causing the deadlock and tips us off to the fact that synchronizing on secondResource is the root of the deadlock. In order to solve this deadlock, we would have to instead synchronize on resourceA and resourceB in the same order in both threads. If we do this, we end up with the following application:

public class DeadlockProgram { public static void main(String[] args) throws Exception { Object resourceA = new Object(); Object resourceB = new Object(); Thread threadLockingResourceAFirst = new Thread(new DeadlockRunnable(resourceA, resourceB)); Thread threadLockingResourceBFirst = new Thread(new DeadlockRunnable(resourceA, resourceB)); threadLockingResourceAFirst.start(); Thread.sleep(500); threadLockingResourceBFirst.start(); } private static class DeadlockRunnable implements Runnable { private final Object firstResource; private final Object secondResource; public DeadlockRunnable(Object firstResource, Object secondResource) { this.firstResource = firstResource; this.secondResource = secondResource; } @Override public void run() { try { synchronized (firstResource) { printLockedResource(firstResource); Thread.sleep(1000); synchronized (secondResource) { printLockedResource(secondResource); } } } catch (InterruptedException e) { System.out.println("Exception occurred: " + e); } } private static void printLockedResource(Object resource) { System.out.println(Thread.currentThread().getName() + ": locked resource -> " + resource); } }
}

This application produces the following output and completes without deadlocking (note that the addresses of the Object objects will vary by execution):

Thread-0: locked resource -> java.lang.Object@1ad895d1
Thread-0: locked resource -> java.lang.Object@6e41d7dd
Thread-1: locked resource -> java.lang.Object@1ad895d1
Thread-1: locked resource -> java.lang.Object@6e41d7dd

In summary, using only the information provided in the thread dump, we can find and fix a deadlocked application. Although this inspection technique is sufficient for many simple applications (or applications that have only a small number of deadlocks), dealing with more complex thread dumps may need to be handled in a different way.

Handling More Complex Thread Dumps

When handling production applications, thread dumps can become overwhelming very quickly. A single JVM may have hundreds of threads running at the same time and deadlocks may involve more than two threads (or there may be more than one concurrency issue as a side-effect of a single cause) and parsing through this firehose of information can be tedious and unruly. 

In order to handle these large-scale situations, Thread Dump Analyzers (TDAs) should be the tool of choice. These tools parse Java thread dumps display otherwise confusing information in a manageable form (commonly with a graph or other visual aid) and may even perform static analysis of the dump to discover issues. While the best tool for a situation will vary by circumstance, some of the most common TDAs include the following:

While this is far from a comprehensive list of TDAs, each performs enough analysis and visual sorting to reduce the manual burden of decyphering thread dumps.

Conclusion

Thread dumps are an excellent mechanism for analyzing the state of a Java application, especially a misbehaving, multithreaded application, but without proper knowledge, they can quickly add more confusion to an already difficult problem. In this article, we developed a deadlocked application and generated a thread dump of the stuck program. Upon analyzing the dump, we found the root cause of the deadlock and fixed it accordingly. This is not always so easy, and for many production applications, the help of a TDA may be required.

In either case, each professional Java developer should understand the basics of thread dumps, including their structure, the information that can be garnered from them, and how to utilize them to find the root cause of common multithreading problems. While a thread dump is not a silver bullet for all multithreading woes, it is an important tool in quantifying and reducing the complexity of diagnosing a common problem in the world of Java applications.

Footnotes

  1. Thread SMR is an involved topic and beyond the scope of this article. The interested reader can find more information under the Hazard Pointer Wikipedia page, as well as Michael Maged’s 2004 article on the topic. For more information on the implementation of SMR in Java Threads, see the threadSMR.cpp implementation file for the HotSpot VM.
  2. This thread, along with Thread-1, are called anonymous threads because they are not explicitly named (i.e. no name was provided by calling setName on the Thread object or naming the thread using a constructor argument). The default name for anonymous threads in Java is Thread- followed by a 0-indexed ID that is incremented for each anonymous thread (e.g. Thread-0, Thread-1, etc.). The code used by the Thread class to generate names for anonymous classes is as follows:
class Thread implements Runnable { private static int threadInitNumber; private static synchronized int nextThreadNum() { return threadInitNumber++; } public Thread(Runnable target) { init(null, target, "Thread-" + nextThreadNum(), 0); } // ...
}

Original Link

Estimation, Planning, Teams and Money: A Data Analysis

When I deliver Agile training for teams I run an exercise called “The Extended XP Game.” It is based on the old “XP Game” but over the years I’ve enhanced it and added to it. We have a lot of fun, people are laughing and they still talk about it years later. The game illustrates a lot of agile concepts: iteration, business value, velocity, learning by doing, specification by example, quality is free, risk, the role of probability and some more.

When I run the exercise I divide the trainees into several teams, usually three or four people to a team. I show them I have some tasks written on cards which they will do in a two-minute iteration. They do two minutes or work, review, retrospect then do another two minutes of work — and possibly repeat a third time.

The first thing is for teams to Get Ready. I hand out the tasks and ask them to estimate, in seconds, how long it will take to do each task: fold a paper airplane that will fly, inflate a balloon, deflate a balloon, roll a single six on a dice, roll a double six on two dice, find a two in a pack of cards and find all the twos in the pack of cards. Strictly speaking, this estimate is a prospective estimate:“How long will it take to do this in future?”

Once they have estimated how long each task will take someone is appointed product owner and they have to plan the tasks to be done (with the team).

What I do not tell the teams is that I’m timing them at this stage. I let the teams take as long as they like to get ready: estimate and plan. But I time how long the estimation takes and how long the following planning takes.

Once all the teams are “ready” I ask the teams: “How long did that take?”

At this point, I am asking for a retrospective estimate. The teams have perfect estimation conditions: they have just done it, no time has elapsed and no events have intervened.

Typically they answer 5 or 6 minutes, maybe less, maybe more. Occasionally someone gets the right number and they are then frequently dismissed by their colleagues.

Although I’ve been running this exercise for nearly 10 years, and have been timing teams for about half that time I’ve only been recording the data the last couple of years. Still, it comes from over 65 teams and is consistent.

The total time to get ready to do 2 minutes of work is close to 13 minutes — the fastest team took just 5.75 minutes but the slowest took a whopping 21.25.

The average time spent estimating the tasks is 7 minutes. The fastest team took 2.75 minutes and the slowest 14 minutes.

The average time planning once all tasks are estimated is just short of 6 minutes. One team took a further 13.5 minutes to plan after estimates while another took just 16 seconds. While I assume they had pretty much planned while estimating it is also interesting to note that that team contained several people who had done the exercise a few years before.

(For statistics nuts the mean and median are pretty close together and I don’t think the mode makes much sense in this scenario.)

So what conclusions can we draw from this data?

1) Teams take longer to estimate than do

Everyone taking part in the exercise has been told – several times – that they are preparing to do a 2 minute iteration. Yet on average teams spend 12.75 minutes preparing – estimating and planning – to do 2 minutes of work!

Or to put it another way: teams typically spend six times longer to plan work than to do work.

The slowest team ever took over 10 times longer to plan than to do.

In the years I’ve been running this exercise no team has ever done a complete dry run. They sometimes do little exercises and time themselves but even teams which do this spend a lot of time planning.

This has parallels in real life, too: many participants tell me their organizations spend a long time debating what should be done, planning and only belatedly executing. One company I met had a project that had been in planning for five years.

2) Larger teams take longer to estimate than small teams

My second graph shows there is a clear correlation between team size and the time it takes to estimate and plan. I think this is no surprise; one would expect this. In fact, this is another piece of evidence supporting Diseconomies of Scale: the bigger the team, the longer it will take to get ready.

This is one reason why some people prefer to have an “expert” make the estimate — it saves the time of other people. However this itself is a problem for several reasons.

Anyone who has read my notes on estimation research (and the later more notes on estimation research) may remember that research shows that those with expert knowledge or in a position of authority underestimate by more than those who do the work. So having an expert estimate isn’t a cure.

But, those same notes include research that shows that people are better at estimating time for other people than they are at estimating time for themselves, so maybe this isn’t all bad.

However, this approach just isn’t fair. Especially when someone is expected to work within an estimate. One might also argue that it is not an effective use of time because the first person — the estimator — has to understand the task in sufficient detail to estimate it but rather than reuse this learning the task is then given to someone else who has to learn it all over again.

3) Post-estimation planning is pretty constant

This graph shows the planning delta, that is: after the estimates are finished how long does it take teams to plan the work?

It turns out that the amount time it takes to estimate the task has little bearing on how long the subsequent planning takes. So whether you estimate fast or slow on average it will take six more minutes to plan the work.

Perhaps this isn’t that surprising.

(If I’ve told you about this data in person I might have said something different here. In preparing the data for this blog I found an error in my Excel graphs which I can only attribute to a bug in Excel’s scatter chart algorithm.)

4) Vierordt’s Law holds

People underestimate longer periods of time (typically anything over 10 minutes), and overestimate short period of time (typically things less than two minutes).

Not only do trainees consistently underestimate how long it has taken them to get ready — which is over 10 minutes — but teams which record how long it takes to actually do each task find that their estimates are much higher than the actual time it takes. Even when teams don’t time themselves observation shows that they do the work far faster than they thought they would.

5) Less planning makes more money

One of my extensions to the original game is to introduce money: teams have to deliver value, measured in money. This graph shows teams which spend less time planning go on to make more money.

I can’t be as sure about this last finding as the earlier ones because I’ve not been recording this data for so long. To complicate matters a lot happens between the initial planning and the final money making, I introduce some money and teams get to plan for subsequent iterations.

Still, there are lessons here.

The first lesson is simply this: more planning does not lead to more money.

That is pretty significant in its own right but there is still the question: why do teams which spend less time planning make more money?

I have two possible explanations.

I normally play three rounds of the game. When time is tight I sometimes stop the game after two rounds. In general teams usually score more money in each successive round. Therefore, teams who spend longer in planning are less likely to get to the third round so their score comes from the second round. If they had time to play a third round they would probably score higher than in round two.

This has a parallel in real life: if extra planning time delays the date a product enters the market it is likely to make less money. Delivering something smaller sooner is worth more.

This perfectly demonstrates that doing creates more learning than planning: teams learn more (and therefore increase their score) from spending 2 minutes doing than spending an extra 2 minutes planning.

The second possible explanation is that the more planning a team does the more difficult they might find it to rethink and change the way they are working.

The $1,600 shown was recorded by a Dutch team this year but the record is held by a team in Australia who scored over $2,000: to break into these high scores teams need to reinterpret the rules of the game.

One of the points of the game is to learn by doing. I suspect that teams who spend longer in planning find it harder to break away from their original interpretation of the rules. How can you think outside the box when you’ve spent a lot of time thinking about the box?

In one training session in Brisbane last year the teams weren’t making the breakthrough to the big money. Although I’d dropped hints of how to do this nobody had made the connection so I said: “You know, a team in Perth once scored over $2,000.” That caused one of the players to rethink his approach and score $1,141.

I’ve since repeated the quote and discovered that simply telling people that such high scores are possible causes them to discover how to score higher.

I’m sure there is more I could read into all this data and I will carry on collecting the data. Although now I have two problems.

First, having shared this data I might find people coming on my agile software training who change their behavior because they have read this far.

Second: I need more teams to do this to gather data! If you would like to do this exercise — either as part of a full agile training course or as a stand-alone exercise — please call (+44 20 3286 4292) or mail me, contact@allankelly.net; my rates are quite reasonable!

Want to receive these posts by e-mail? Join the newsletter today and receive a free eBook: Xanpan: Team Centric Agile Software Development

Original Link

Fenox and Mitsubishi join $2.7m investment in Japanese chat app AOS Mobile

Copyright: <a href='https://www.123rf.com/profile_sheeler'>sheeler / 123RF Stock Photo</a>

Photo credit: sheeler / 123RF.

Tokyo-based AOS Mobile has raised close to US$2.7 million in a funding round led by Fenox Venture Capital. Mitsubishi UFJ Capital, Accord Ventures, Voyage Ventures, Ibis Capital Partners, and Evolable Asia also invested.

AOS uses artificial intelligence (AI) to help enterprises communicate through mobile with their customers. Some of the larger brands that use AOS solutions include airline ANA, taxi firm Nihon Kotsu, telco Freetel, ecommerce site Zozotown, pawn shop app Cash.jp, which was recently acquired by ecommerce player DMM.com.

Its products include AOSSMS, which enables businesses to send SMS text messages simultaneously and securely to multiple recipients, who are then able to respond via SMS. This platform has been used for purposes such as advertising or conducting customer surveys.

Another AOS product is InCircle, a high-security messenger that can be used as an office chat app.

The company also creates chatbots that can handle customer service interactions, freeing up human personnel and other resources that can be reassigned to more complex tasks.

These products have their roots in evidence restoration technology developed by AOS Mobile’s former parent company, AOS Technologies, from which it was spun out in March 2015.

Second life

AOS Technologies – which holds a 39 percent stake in AOS Mobile following the Fenox-led round – engineered a variety of tech solutions for use in legal services and law enforcement, including forensics and e-discovery tools.

These essentially involve identifying and extracting information that is hidden or difficult to access. The expertise AOS gained in this area gave it deep insights into digital security, and AOS Mobile was established to commercialize these technologies for customer services purposes.

“We had been analyzing and investigating SMS, consumer-based chat, email, and other forms of data on behalf of police departments and prosecutors’ offices when lawsuits happen,” AOS Mobile CEO Noriko Harada tells Tech in Asia. “So we knew the weak point of consumer-based chat and we knew that information can leak if an enterprise uses these tools.”

AOS is not the only Asian startup offering an office chat app or AI-driven customer service chatbots. For the latter category, Indonesia’s Kata.ai, and Singaporean outfits Active.ai and Pixibo have raised funding in recent months.

See: Ex-Googler’s startup gets funding to solve ‘online fashion’s oldest problem’

However, Harada suggests that AOS Mobile’s integration of SMS messaging with office chat and chatbot technology is what sets it apart. “There are many competitors in business chat market,” she says. “Also, there are many in SMS aggregator platforms. But there are no direct competitors who have both, which makes our position unique in the market.”

Copyright: <a href='https://www.123rf.com/profile_anyaberkut'>anyaberkut / 123RF Stock Photo</a>

Photo credit: anyaberkut / 123RF.

Challenging the status quo

Former SAP consultant Harada, who joined AOS Technologies in 2002 and spent several years in the US building the company’s business there, is one of those extremely rare things in Japan – a female CEO. According to nonprofit Catalyst, only 7 percent of senior executive positions in Japan are occupied by women, and nearly three-quarters of Japanese businesses don’t have any women in senior management.

But Harada thinks that tech startups have a major role to play in bucking the trend, and AOS Mobile isn’t the only one to do so. Satellite-sharing platform Infostellar is another female-fronted Japanese startup to have secured funding recently, raising US$7.3 million in its September series A round. Its co-founder and CEO is Naomi Kurahara, a graduate of France’s International Space University.

I didn’t feel any gender issues until I got married and had a child.

Harada says that startups’ typically open-minded approach to things like flexible schedules, remote working, and using technology gives mothers like her a chance to challenge the traditional barriers they face in corporate Japan.

“I didn’t feel any gender issues until I got married and had a child. I took maternity leave for four months, but I worked remotely by Skype and email,” she says, adding that this was when she really began to see the value in office chat apps.

Harada says she wanted to return to work earlier, but her inability to find babysitters or daycare centers hampered her plans. She says she visited almost 100 daycare centers, including private ones and government-run institutions, all of which had extremely long waiting lists.

“In Japan, there are not enough daycare centers, so many women have to give up their career after having children. This really is an issue. I was luckily selected by a public daycare center which is located close to my office.”

版権: sarawinter / 123RF 写真素材

Downtown Tokyo. Photo credit: sarawinter / 123RF 写真素材.

But the problems didn’t end there. According to Harada, public daycare centers can’t take care of children who have a temperature above 37.5⁰C, which indicates they have a fever – a fairly common occurrence among children of that age. Harada had to dash between her home, the office, and the daycare center in the middle of the working day whenever her child had a high temperature. But AOS Mobile’s flexible working practices allowed her to manage the situation.

“All these kinds of things prevent working mothers from getting executive positions in Japan,” she says. “But our company lets employees select working at home remotely and on flexi-time. I believe tech companies should take the lead to offer various work styles which can really help working women, especially those who have children.”

We cannot determine how talented someone is by their gender.

Harada says that Japanese companies should evaluate employees by their performance, regardless of how much time they spend in the office.

“Still, many companies evaluate employees by amount of work, by long hours, and not by results. We really need to forget about gender. We cannot determine how talented someone is by their gender.”

Ultimately, it is Japanese industry that loses out, she argues.

“Many talented female employees, especially those having children, give up their career. So if you consider supporting them with daycare, for example, they will really appreciate that and contribute to the business. Companies should also let male employees help their families. Many people still think it is a female’s work to take care of children and do housework.”

AOS Mobile said in a statement that it will use the funds it has raised to enhance its chatbot’s AI and further develop data tools so clients can analyze interactions between their customers and the chatbot. 

The company will also invest in new management and sales hires, with an eye towards entering other Asian markets and an IPO farther down the line. Aside from its native Japan, it also operates in South Korea, Thailand, and the US. Harada says that India is a key expansion target for AOS Mobile in the months to come.

Converted from Japanese yen. Rate: US$1 = JP¥111.

Original Link

SoftBank’s $10b investment in Uber could end the war with Grab in Southeast Asia

Grab and Uber CEOs Anthony Tan and Dara Khosrowshahi

Grab CEO Anthony Tan (L) and Uber CEO Dara Khosrowshahi. Image credit: Grab, Uber, Tech in Asia.

As Uber’s board gives the green light to what could be a US$10 billion investment deal with SoftBank, all eyes in our region turn to the ride-hailer’s local competitors, most notably Ola in India and Grab in Southeast Asia.

Assuming the deal goes through, Uber and Grab will once again find themselves sharing a major investor – Chinese ride-hailing giant Didi Chuxing is already an investor in both, and SoftBank (which has also invested in Didi) will be one more.

What does this mean in the long run for Uber’s fortunes in Southeast Asia? Not everyone agrees on that. Grab and Uber are neck and neck in the countries they share, including Singapore, with Grab pulling ahead of its US rival in several of them. Riding on both cars, SoftBank wins regardless in this scenario, but there’s another possibility everyone is thinking about – Grab and Uber putting aside their differences and merging under the SoftBank roof.

All in the family

Monk’s Hill managing partner Peng T. Ong believes the planned investment could bring the two companies closer together. “It is a possible friendly way to work towards consolidation,” he notes.

It is possible that SotfBank would bring the two operations together in the future.

Elizabeth Lim, editor at M&A research firm Mergermarket, shares the same view. “SoftBank will probably continue to invest in both startups in the region, and it is possible that they would bring the two operations together in the future,” she says.

Lawrence Cheok, senior research manager for market intelligence firm IDC, feels that the consolidation of SoftBank’s ride-hailing assets would be a “win” for the fund – yet there are other ways for everyone to win too.

“What would create a win-win-win scenario for all firms involved is to avoid price competition and collaborate on technology sharing to create a global ecosystem,” he explains. He uses the Uber-Didi deal as an example of how this could work. The deal basically resolved the unhealthy price war between them and left Uber with at least a foot in the Chinese market through its stake in Didi.

“Instead of straight-out mergers, a similar approach may be taken by [SoftBank] to encourage collaborations between firms under its portfolio. Doing so seems in line with their investment strategy to build up a global ecosystem of technology disruptors,” Cheok says.

Malaysia-born, Singapore-based Grab claims to have over 1 million drivers and recently announced a milestone of 1 billion rides across Southeast Asia. Having raised over US$4 billion in disclosed funding, its pockets are not as deep as Uber’s but it has cemented its presence in the region as a force to be reckoned with.

In Singapore, Uber celebrated its four-year anniversary earlier this year, announcing it hit 1 million active riders in the city-state with “tens of thousands” of drivers. It crossed the 5-billion-ride mark worldwide in June.

Cheok cautions a possible consolidation might not end up being such good news for consumers – the price wars might end, but that could result in increased costs for users that could sometimes be inscrutable, like the dynamic surge pricing system. “Under a monopolistic market structure, there needs to be more transparency how these changing prices are generated or calculated,” he notes.

Softbank’s top 10 deals this year. Graphic by Tech in Asia.

Spring cleaning

With or without an alliance, the potential SoftBank investment could help Uber put its house in order. “Such an investor will bring some discipline to [Uber],” says Kee Lock Chua, CEO of Singapore-based venture capital firm Vertex, an early investor in Grab.

The incoming investment could help Uber put its house in order.

Under former CEO Travis Kalanick, the embattled company was connected to controversies ranging from sexual harassment and sexism to questionable competitive tactics – like the Hell program to gather data on US rival Lyft’s drivers and a project called Surfcam to scrape data from competitors like Grab.

If SoftBank does end up coming on board as an investor, it will likely have little patience for such shenanigans, Chua thinks.

Mergermarket’s Lim also thinks SoftBank will have a big influence on Uber’s board.

“Uber has attempted to move past its recent woes by resolving certain issues within its board, which paved the way for this investment to take place,” she says. “With plans for an IPO in 2019, SoftBank’s stake buy and two new board seats signal a move forward finally for the ride-sharing company.”

The US company’s board of directors decided to go ahead with the deal by resolving the much-discussed feud between Kalanick and investor Benchmark Capital. Benchmark agreed to suspend the lawsuit it kicked off against Kalanick a few months ago so that the deal with SoftBank could proceed. If SoftBank does invest, Benchmark said it would drop the lawsuit, which aimed to reduce Kalanick’s influence over the board.

See: Uber was catching up with rivals in Southeast Asia. Now the gap could be widening

Head to head

In the meantime, Chua feels Uber’s competition with Grab is a good thing so long as it’s healthy, and new people coming on the company’s board should help with that.

Competition, after all, can help diversify and improve both companies’ services.

Grab has quite the headstart there, with several verticals under its umbrella. From taxis and private-hire cars to bikes, shuttles, and coaches, the company has offered enough different mobility services to make itself as ubiquitous as possible.

Uber does carpooling and motorbikes as well (although its offering in this regard lags behind Grab and Indonesia’s Go-Jek) but it’s mostly laser-focused on its core product – the private-hire car. UberEats is quite the tasty addition to its verticals but one that faces its own competition from other providers like Foodpanda and Deliveroo. Grab has its own food delivery offering but only in some markets like Indonesia and Thailand.

Grab wants to expand into other applications beyond just ride-hailing.

The kicker may be the way Grab wants to expand into other applications beyond just ride-hailing. The company wants to use its e-wallet function to enable more online-to-offline services.

Earlier this year it acquired Indonesian fintech startup Kudo to expand its payment network. During Grab’s five-year celebrations, CEO Anthony Tan said the company wants to “win payments in Southeast Asia,” saying that the app’s user base can be the groundwork for more services.

Grab already made it possible for users to make peer-to-peer micropayments using the wallet, while more recently it announced its payment system can be used at restaurants and hawker stalls through a WeChat-like QR code.

Go-Jek-uber-grab-indonesia-map-update

Not going anywhere

Grab’s strong position in Southeast Asia could portend a repeat of what happened in China where Uber sold its local business to Didi, or Russia where it pulled out while retaining a stake in a joint venture with home-grown player Yandex.

However, during The New York Times DealBook conference a few days ago, new Uber CEO Dara Khosrowshahi dispelled rumors of Uber ceding the Southeast Asian market to competitors.

That said, Khosrowshahi doesn’t expect profitability from Southeast Asia anytime soon. “The economics of that market are not what we want them to be – I think it’s over-capitalized at this point,” he pointed out.

See: What SoftBank’s $10b investment in Uber means for its battle with Ola in India

Original Link

What SoftBank’s $10b investment in Uber means for its battle with Ola in India

Photo credit: Ola.

Scandal-ridden Uber has confirmed a deal to sell a chunk of its stakes to SoftBank. The Japanese giant could invest US$10 billion over the next month to acquire 14 percent or more of Uber’s shares, both in fresh and existing stock.

The investment in Uber comes on top of the billions SoftBank has poured into other ride-hailing companies: Didi in China, Grab in Southeast Asia, and Ola in India. Just a month ago, it led a US$2 billion investment in Ola.

This is similar in strategy to SoftBank’s investments in India’s ecommerce market.

SoftBank boss Masayoshi Son sees a big opportunity in ride-hailing as a whole. So his strategy is to get substantial stakes in all the major players. If one or more of them emerge as winners in the long run – that is, regardless of which company wins these ride-hailing battles – SoftBank will be sitting on top of a huge global business.

This is similar in strategy to SoftBank’s investments in India’s ecommerce market. Initially, it hedged its bets by investing in both Snapdeal and Paytm. This year it upped the stakes by investing US$2.5 billion in Amazon’s biggest rival in India – Flipkart. At the same time, it made a solo investment of US$1.4 billion in Paytm.

As for the weakest player among the trio – Snapdeal – SoftBank tried hard to merge it with Flipkart but the deal fell through when the Snapdeal founders decided to hold out for more.

The inference one can draw from that is Ola and Grab will get backing as long as they remain in contention as market leaders. But if either of them loses market share rapidly like Snapdeal did in 2016, then it could be curtains or at best a distress sale.

Also, it potentially shuts out niche players with the leaders widening their offerings, as Ola has been doing with auto-rickshaws (three-wheelers).

Auto-rickshaws are a popular means of transport on congested Indian roads, clocking nearly 230 million passenger rides a day. Ola says it has onboarded 120,000 auto-rickshaws, and recently equipped them with free wifi. Uber, on the other hand, has struggled to get its auto act going, shutting down services in a few second-tier cities after running pilots.

See: Ola gives auto-rickshaws free wifi while Uber struggles to kickstart 3-wheelers

The advantage Ola has gained here is significant as the share of auto-rickshaws in rides booked online rose to 10 percent in the third quarter of this year, compared to a mere 3 percent in the same period last year. The number of auto-rickshaw rides booked via ride-hailing apps went up from 5.5 million in Q3 2016 to 18.5 million in Q3 2017, according to RedSeer Consulting.

Ola VP Ankit Jain points out how customer needs vary in India compared to the West. “If you land in New York or a European city, you’ll find two or three options, from a slightly nicer car to a less nice car to a car pool. In India, we have people who are willing to pay over 500 rupees for a ride to those who want to pay less than 50 rupees for a ride. So that’s why you see in our offerings that we go everywhere from luxury cars, SUVs, sedans, hatchbacks, and shared cabs to rickshaws, bike taxis, and now we’re even experimenting with bicycles,” Jain said at a tech conference in Bangalore last week.

In terms of the mobility we’re driving, we’re almost starting to compete with the entire personal car market.

Ola’s wider play is reflected in its presence in over 100 Indian cities, compared to Uber serving only the biggest 30. That’s a strategic differentiation because Uber is focusing on doubling down and winning in the major cities, which contribute the bulk of the revenue. Ola, on the other hand, could have an early mover advantage by going into areas which are yet to gain momentum.

The mega investments by SoftBank into both Ola and Uber would enable them to make longer term plays for differentiation. Thus, we can expect moves in business as well as tech innovation, and not just competing on discounts for riders and incentives for drivers.

After raising US$1.1 billion from SoftBank, with another US$1 billion in the pipeline, Ola announced a partnership with Microsoft to build a connected car platform to enhance customer experiences. This will be an extension of in-cab entertainment suite Ola Play.

Meanwhile, Uber has been investing in self-driving tech while its US rival Lyft is partnering with Google’s Waymo self-driving project.

Growth stalls, then picks up smartly

In India, both Ola and Uber experienced a slowdown in growth at the start of this year as they cut back on driver incentives to pare down on losses. Drivers went on strike in cities across India, affecting growth and giving a boost to traditional radio taxi operators like Meru.

Recent data from RedSeer Consulting suggests, however, that growth has picked up again for ride-hailing apps. The Indian capital Delhi had a 10 percent monthly growth rate in September; only Islamabad in Pakistan had a higher growth rate in South Asia and the Middle East.

Source: RedSeer Consulting.

Ola has a wider reach with over 800,000 vehicles on its platform in over 100 cities. But Uber has claimed a surge in number of rides this year, despite the distractions of scandals and boardroom battles. Surveys have suggested that Uber is closing the gap with Ola.

App Annie data shows Ola is the market leader with 52-52 percent compared to Uber’s 46-48 percent based on monthly active users in May. More recently, Cheetah Lab data showed a slender lead for Ola in terms of reach based on active users on its platform.

Source: eMarketer.

Into this neck-to-neck race comes the SoftBank investment in Uber, just a month after leading a $2 billion investment round in Ola. This huge influx of capital will make an impact on the ride-hailing scene next year in India, which is Uber’s biggest market outside the US after it lost out to Didi Chuxing in China.

The biggest winner could be the consumer with better offers and experiences as the well-funded Ola and a rejuvenated Uber slug it out. Apart from commutes, ride-hailing has the potential to reduce the usage of private cars and congestion.

As Ankit Jain of Ola points out, “a ride-sharing car typically does nearly 10 times the number of kilometers as a personal car, in the range of 200-250 kilometers a day against 25 kilometers.”

By that yardstick, Ola’s 800,000 vehicles would be equivalent to 8 million personal cars, which is one-third the total personal car ownership in India. “In terms of the mobility we’re driving, we’re almost starting to compete with the entire personal car market,” says Jain.

Add Uber’s 450,000 vehicles to that, and you have the equivalent of half the personal cars in India in terms of kilometers run. Masayoshi Son’s huge bets on ride-hailing can be seen in that context too, and not just the rivalry between the apps. SoftBank is setting a new paradigm of investing in a domain, not just a company, with its mammoth US$100 billion Vision Fund and an even bigger one coming soon.

Original Link

Hinglish alone won’t do. Any business targeting India must crack these languages.

Photo credit: Klozest.

If you’re in India, you are likely to get an overdose of the word “only.” It pops up everywhere, as in “I’m here only.” There are other Indianisms, “like this only.” Visitors to India can find it quaint or exasperating, depending on the situation. If you’ve had enough of this already, you can try a reverse Indianism too – “Don’t eat my head.”

The problem of deciphering Indian English isn’t confined to visitors. In the digital world, machines have to deal with it as well. Amazon’s Alexa speaker, for example, has started shipping to India only now, two years after its release. One reason for holding it back is to give time to linguists and developers to get the Alexa virtual assistant up to speed with Hinglish – a blend of Hindi and English, spoken with a distinct Indian accent.

9 out of every 10 new internet users in India over the next five years are likely to be Indian language users.

Now the Alexa speaker can handle requests like, “Please add jeera, atta, and haldi to my shopping list.” The English words for those are cumin, wheat flour, and turmeric, but few Indians use them in conversation. “Alexa is not a visiting American, she has a very Indian personality,” says Parag Gupta, head of product management for Amazon Devices India.

Amazon is not the only one learning Hinglish. Google has a Hinglish-speaking virtual assistant, although it has yet to launch Google Home speakers in India. Apple wants Siri to get the cultural nuances of dialog in India, and has a Hinglish keyboard for the iPhone 8 and iPhone X.

It’s not easy. Hinglish can vary depending on whether you’re in Delhi or Hyderabad. Folks in Hyderabad pride themselves on their “Hyderabadi Hindi” which has influences of Urdu because of its heritage of Muslim rulers, as well as the local language Telugu.

India has 22 constitutionally-recognized “official languages,” but several others widely used, like Bhili or Bhilodi spoken by a million Bhil tribals in the desert and forest areas of Rajasthan and Gujarat. The country has over 1,600 dialects and 30 languages – each spoken by more than a million native speakers.

Thus, even though such a large domestic market with a population of 1.3 billion is enticing for internet businesses, it’s far more diverse than neighboring China.

Mandarin Chinese is spoken by the vast majority in mainland China dominated by the Han ethnic group. So even though urban India’s widespread use of English is often cited as an advantage over China for global businesses, it’s a different picture when it comes to targeting the hundreds of millions in the interior or even among the lower middle class in the big cities.

Less than 100 million out of India’s 700 million literates can read or write English. And most of the new internet users belong to the latter group, drawn in by the availability of affordable smartphones and falling data costs.

Five regional languages represent 75 percent of the digitally engaged audience who prefer to communicate in their native languages.

So how can a business overcome multiple language barriers to target these hundreds of millions of non-English-speaking or even Hinglish-speaking consumers? One strategy is to zero in on the most used Indian languages.

As many as 90 percent of the 700 million literates in India can read and write at least one of India’s 12 major local languages. And among those, Hindi, Marathi, Gujarati, Telugu, and Bengali are the top five Indian languages that any business or app developer localizing digital products for the Indian market should not ignore, according to the first Digital Indian Language report (PDF) published by Reverie Language Technologies.

These five regional languages “represent more than 75 percent of the total digitally engaged audience who prefer to communicate in their native languages,” Reverie notes. On the other end are Dogri, Kashmiri, Konkani, Maithili, Manipuri, Nepali, Sanskrit, and Santhali – which Reverie calls “digitally endangered languages that would need support from handset manufactures and state governments to preserve for future generations.”

The language divide

Reverie has been trying to bridge the “Indian language divide” in the digital world since its inception in 2009. It built a cloud platform that businesses, OEMs, and chipset-makers can use so that the end-users of their products can consume digital content in their preferred regional language, real-time.

Through a set of APIs, Reverie’s tech stack on the cloud offers services like local-language translation, transliteration, device input, and search.

The company also has an Indian language keyboard, Swalekh Indic. It helps users type text messages, Facebook updates, tweets, emails, blogs, and so on in any of the 22 Indian languages.

See: This startup helps online businesses smash one of their biggest barriers in Asia

For its report, Reverie studied around 27,000 unique Android smartphone users who have been using Swalekh for six months – January to June 2017.

Here’re some excerpts from the Reverie report:

Top 10 Indian languages by sessions and word count

Tops apps by sessions and word count

Not surprisingly, WhatsApp is the most popular app with Indian language users using the Swalekh keyboard. As much as 35.95 percent of sessions on all Indian languages was spent on WhatsApp.

Top app categories by sessions and word count

Indian language internet users study by Google-KPMG

A report (PDF) published earlier this year by Google and KPMG estimated that Indian language internet users will drive the next phase of internet adoption in India. They’re expected to constitute more than 2.5 times the English internet user base by 2021.

Source: Google-KPMG report.

Here’re some highlights from the Google-KPMG report:

  • Indian language internet users grew to 234 million by the end of 2016, surpassing the number of English internet users.
  • 9 out of every 10 new internet users in India over the next five years are likely to be Indian language users.
  • The number of Indian language internet users will continue to grow at an annual rate of 18 percent to reach 536 million by 2021, while English internet user base will grow at 3 percent annually to reach 199 million.
  • By 2021, Indian language users would account for about 75 percent of India’s total internet user base.
  • While only 42 million Indian language internet users currently access ecommerce, this will grow 32 percent annually to hit 165 million users by 2021.
  • Currently, 47 million Indian language internet users access digital payments products – to top-up credit for phone and pay utility bills mostly. This number is expected to grow 30 percent annually to hit 175 million by 2021.
  • Digital news will add over 180 million Indian language users by 2021 to reach a total of 284 million readers. This will be 85 million higher than the number of English users.
  • A rural user spends 15 percent more time consuming digital news compared to an urban user.
  • Indian language digital entertainment with a user base of 167 million currently will reach 392 million by 2021.
  • While chat apps and digital entertainment will continue to have high adoption levels amongst these users, ecommerce, online government services, and digital classifieds would clock the highest growth in adoption rates across Indian language users till 2021.


Besides the growing smartphone adoption in the country, affordable high speed internet, and rising digital literacy, a key factor that’s fueling the growth of internet users is the “Indian language enablement of the ecosystem bringing and engaging more Indian language users online.”

Original Link

Lazada CEO: The secret sauce that will help us win Southeast Asia

Lazada boss Max Bittner feels no pressure from parent Alibaba to become profitable. The aim now is to grow the opportunity. “Southeast Asia, for them, is hugely exciting. They see as big an opportunity as China and my mandate is to win the market,” said the CEO during a fireside chat at Tech in Asia Jakarta 2017.

Winning involves having massive ammunition in the ecommerce war that has seen players spend huge sums to lure customers to their sites and gain market share. Thanks to Alibaba’s deep pockets, “we match [our competitors] a lot because we can,” Bittner said.

Shopee – Lazada’s closest rival and part of publicly-listed Sea – “will have a harder time continuously raising money,” he argued. “At some point public market investors expect improvements in profitability. The luxury of being us is we’re not exposed to that scrutiny.”

But more than the spending power, he believes their ability to differentiate themselves from competitors is crucial. Lazada is doing this by building out its infrastructure.

The store started out doing direct sales to consumers from its own warehouses – thus, the moniker “the Amazon of Southeast Asia”. In 2013, it added a marketplace for merchants, using its assets to offer merchants fulfillment, which includes things like warehousing, packaging, and shipping. The marketplace has grown to account for a significant part of spending on Lazada.

Lazada has 15 warehouses across Southeast Asia where it’s trying to put a vast array of products, according to Bittner. Of those, three are located in Indonesia, and two more will be launched in the 250 million-strong market by the end of the year. Bittner says the firm is also expanding its last-mile delivery services as “we really believe in the integrated value chain.”

Photo credit: Lazada.

Bittner is angling for what he calls the three Cs. “Capacity – it’s how much volume you push through the system at any given time. Cost – we want to make it cheaper. And capability – which is really the distinguishing factor.”

“Not everyone wants the same things. Some people are okay to wait, some people want it very fast, some people want a certain delivery window like what we do in Singapore with Redmart […] Whether it’s bulky like a fridge that you need delivered or a small thing that’s cheap, it’s about building that whole portfolio of capability,” he explained.

Clashing models

Shopee does things differently. Sea president Nick Nash believes that creating a marketplace purely for merchants not only requires lower costs, it is ideally suited to the rather basic level of logistics development in Southeast Asia.

“Our sellers are highly distributed and decentralized across the region, rather than having to rely on one or a small number of mega-warehouses in larger cities […] The very practical result is a more efficient path from seller to buyer as opposed to the potentially longer transit times under a hub-and-spoke model.”

In industry jargon, it’s the battle between “asset-light” (Shopee) and “asset-heavy” (Lazada) models.

Moreover, Nash contends the asset-heavy approach makes it harder to achieve remarkable product breadth. “The supply chain management alone on the inbound side [from the factory] is almost impossible to manage,” he said on stage at Tech in Asia Jakarta 2017.

Nash views the mix of direct retailing and marketplace as a conflict of interest. “If you’re asset-heavy, your job is to buy wholesale, put it in your warehouse, and then sell one package at a time in great bulk” – putting you at odds with sellers.

Nick Nash (L), group president of Sea. Photo credit: Tech in Asia.

Following Alibaba

Bittner thinks the industry’s biggest challenge lies not in growing merchandise volumes – “we see everyone growing nicely at some point” – but in addressing the region’s overall logistics issues.

“We see logistics as a massive bottleneck […] It’s important that as the market matures, you have a dependable system,” he stated.

In Indonesia, Lazada’s former country boss Magnus Ekbom previously lamented that third-party logistics providers couldn’t keep up with Lazada’s growth. “Indonesia is pretty much running out of logistics capacity,” he said.

The company has relied on logistics companies for its deliveries into customers’ hands – from Ninjavan in Singapore to Go-Jek in Indonesia. In order to better cope with demand, it began investing heavily in its own delivery network. In Indonesia, Lazada now handles the bulk of those deliveries itself.

This investment in infrastructure is something that Alibaba – known for its asset-light Taobao and Tmall marketplaces – has fully embraced.

In September, Alibaba’s logistics unit, Cainiao, pledged to spend US$15 billion over five years to build out a global logistics network. Alibaba is also venturing into new types of retail. Much like Amazon, it’s begun selling groceries online, setting up cold-storage distribution centers across China. It’s also moving into offline retail, investing in electronics and department stores. It’s opened a supermarket chain called Hema, which allows customers to shop, dine, and order groceries for delivery from their mobile phones.

“I think when you are young, tiny, a light model is good. When you are strong, big – think about it – you need heavy things,” Alibaba founder and billionaire Jack Ma said recently. “There is no heavy is good, or light is good. A mix is good. To be efficient, you need to connect light and heavy models together. But with Alibaba’s size today, you should not leave the heavy model to others, it’s something you have to do […] you have to invest.”

Photo credit: Lazada.

A formidable backer

Aside from Shopee, Lazada is competing with the likes of Bukalapak, JD, Qoo10, and new entrant Amazon across Southeast Asia. Another rival, Tokopedia, has recently sold a stake to Alibaba.

Asked how he thinks the competition will evolve, Bittner said “to be honest, I don’t know.”

What’s certain is that “Alibaba [is] here to stay. We’re here to stay. [We’ll focus] on what distinguishes us and we’ll match whatever we can match.”

Lazada is taking stock of many lessons from Alibaba’s playbook.

The duo is working closely to make use of big data to match consumers with the right products, as well as technologies to prevent fraudulent sales on their sites.

“We’re the only platform in the region which actually limits the amount of orders you can do per item. So on Lazada, you can’t just order one item 20 times in one order, you have to come back and order again. That’s how our systems keep track if this is fraudulent behavior,” explained Bittner. “Alibaba has a huge amount of experience in avoiding this kind of behavior.”

The Lazada CEO is also weighing up the possibility of opening a mall in Indonesia, taking cue from Alibaba’s move into supermarkets.

“We’ve got the firepower we need and we have the backing of one of the most profitable companies ever, we’ll do whatever it takes and really win as much as you can,” Bittner concluded.

This is part of the coverage of Tech in Asia Jakarta 2017, our conference that took place November 1 and 2.

Original Link

How Alibaba, JD are expanding their empires offline by offering data to retailers

Image credit: Pexels.

One trillion dollars. That’s how much Chinese consumers are on track to spend online by the end of this year – about half of the ecommerce market worldwide. But in China, that’s less than a quarter of all retail sales. No wonder the country’s largest ecommerce giants, JD and Alibaba, are gunning for the brick-and-mortar sector.

Over the past year, both companies have ramped up efforts to expand their empires offline – without taking on the burden of owning and setting up physical shops around the country. For JD and Alibaba, the battle offline is about data.

“In China, we are ready for conversion of both [offline and online] – this is ‘new retail,’” said Stéphane Rinderknech, CEO of L’Oreal China, at a pre-Singles Day event organized by Alibaba on Tuesday. “It’s a collaboration around data, the data being the consumer.”

“New retail” has been Alibaba’s slogan all year, a catchphrase meant to emphasize the integration of online and offline retail. In a nutshell, it means tracking customers wherever they’re shopping – on their phone, in a physical outlet, or even via smart speaker. JD calls it “borderless retail.”

By following shoppers no matter where they are, Alibaba and JD aim to know China’s consumers – and what triggers them to buy – better than any company in the world.

Alibaba’s grocery store Hema is supposed to epitomize “new retail” with both online and offline features: in-store dining and cooking, online delivery, mobile payments. Each Hema store is also a fulfillment center. Photo credit: Tech in Asia.

The traditional retail industry has seen its market share decline as consumers increasingly opt for shopping online. Last year, China’s largest shopping holiday Singles Day broke its record yet again, pulling in US$17.7 billion.

However, at the same time, overall growth in the ecommerce industry has steadily slowed since 2013. Chinese consumers are also growing savvier and more sophisticated, making physical experience centers and in-store service more important than ever.

Because JD and Alibaba are dominant, retailers don’t have a choice. If you’re not in it, you’re going to miss out.

To expand their role in the offline shopping experience and drive more sales, both JD and Alibaba are wooing brands with a variety of tech-driven services, including location-based inventory management, precision marketing, and even facial recognition-based payment systems. Winning over retailers will be paramount as data-sharing goes both ways – though to be fair, brands don’t have many alternatives.

“No retailer wants to be on another channel that they can’t control and forced into heavy marketing competition,” says Sicheng Peng, president of APAC for 7thonline, which helps apparel brands in China with inventory management and optimization analytics.

But in China, “because JD and Alibaba are dominant, retailers don’t have a choice,” he says. “If you’re not in it, you’re going to miss out.”

Slowing ecommerce spending growth in China. Image credit: eMarketer.

Retail as a service

As tech companies, Alibaba and JD have a lot to offer brands. They have their own enormous cache of customer data, from spending habits to where customers receive packages – often their workplace or home. Localizing what products stores should stock and advertise is a tangible contribution ecommerce firms can offer.

They’re also rolling out their own respective “smart store” solutions for retailers. JD is testing an unmanned store concept at its Beijing headquarters, which uses RFID tags and facial recognition to enable cashier-less convenience stores. Cameras on the ceiling would also give retailers heat maps of their store to track what products customers select and prefer.

Both Alibaba and JD want to help stores optimize their current stores too. For mom-and-pop shops with over US$1,500 in monthly merchandise volume, Alibaba offers help with speedy one- and two-day deliveries, product demand prediction, and even microloan financing. JD has also developed “smart shelves,” which use a combination of weight sensors and cameras to track what products shoppers pick up off the rack.

“To put it simply, we’re finding all data that has to do with people – their behavior, what they like, what they buy – and binding this online data to real people,” Chris Tung, chief marketing officer at Alibaba, told media at Tuesday’s launch event. The goal is to find the right consumers for each brand – and trace them throughout Alibaba’s system.

A heatmap generated of JD’s unmanned convenience store. Image credit: JD.

To be sure, it’s too early to tell what impact these smart store solutions will have on brick-and-mortar sales. In particular, some features seem gimmicky, like sensor-triggered displays that play product demos every time someone picks up a certain item (JD calls this feature “Take”; Alibaba calls them “cloud shelves”).

“Honestly, I think that’s part of the game – to get a lot of media coverage for these new technologies, even though they are not well-implemented, even though the difference is light,” Matthieu David-Experton, CEO of Daxue Consulting, tells Tech in Asia. “Are people going to go to the shop just because they can pay with facial recognition? It seems doubtful.”

Are people going to go to the shop just because they can pay with facial recognition? It seems doubtful.

However, in the long-term, this technology could potentially improve stores’ bottom lines by helping them optimize their inventories and increase the convenience of shopping, he says.

Heat maps of customer movement could also help boost in-store experience, adds Peng. “It’s a very good way to capture lost opportunity within the store.” In huge multi-level stores like Uniqlo, customers might get frustrated with searching for products. Heat maps can pinpoint locations where employees should be stationed to guide shoppers, he explains.

Advertising or ecommerce?

On the data side, both companies are hoping to combine forces with offline retailers. That not only lets all parties track customers more continuously online and offline, but it also means coupons, discounts, and memberships will be consistent across platforms.

Sharing data will also help brands refine their advertising spend, which is one of the main ways Taobao makes money. In fact, Alibaba captured the largest share of China’s digital advertising market in 2016, beating out search engine giant Baidu. As an advertiser, the company is incentivized to gather more data about shoppers and funnel it back to brands.

“Category, brand, merchant, store, product performance are easily accessible and overlaid with valuable consumer data [on Tmall and Taobao]. We have ready access to competitive intelligence that would be the envy of any Amazon reseller or Google Adwords user,” says
Josh Gardner, CEO of Kung Fu Data, a data analytics firm in China that helps foreign brands optimize marketing and operations on Tmall, Taobao, and JD.

One of JD’s experience centers in Shanghai. Photo credit: Tech in Asia.

JD’s approach has been to partner aggressively with various tech company allies, like Tencent and gaming giant NetEase – who recently entered the ecommerce space a few years ago.

In collaboration with Tencent, for example, JD is working to improve ad targeting on WeChat Moments, the app’s newsfeed. Instead of classifying WeChat users by their behavior on the app, brands can also segment them by their purchasing habits on JD.

JD has been partnering aggressively with various tech company allies, like Tencent and NetEase.

In October, the two firms took their partnership a step further by looping in offline data from select brand partners (none of whom have been disclosed yet). Specifically, customers that are store members can be tracked both online and offline, with their phone number serving as a unique identifier throughout the different platforms.

“In more than three years since we began leveraging our Tencent partnership, about a quarter of first time users have come from WeChat and Mobile QQ, demonstrating the power of the cooperation,” stated Lei Xu, chief marketing officer at JD, in the press release.

Of course, China’s mammoth retail market is big enough for two companies, even multi-billion corporates like JD and Alibaba. Partnering with brands on data or smart stores won’t be exclusive either. For retailers, it makes sense to obtain as much intelligence as they can about their customers – indeed, that part of commerce has never changed.

“The overall theme is every channel is important,” says Peng. Though Alibaba calls it ‘new retail,’ the industry has been saying the same thing for the past 10 years. “But coming from these big huge winners in the ecommerce space, people are starting to understand it more.”

Currency converted from Chinese yuan: Rate: US$1 = RMB 6.63.

Original Link

Ecommerce may hog headlines, but half the 1000 new startups in India are B2B. Why?

Image credit: Pixabay.

An upsurge in business-to-business (B2B) startups and the emergence of deep tech were among the highlights from Indian software industry body Nasscom’s annual report on the startup scene, released today.

Over 1,000 new startups cropped up in India this year, and almost half of them were in the B2B segment, says the report. Taking into account only tech companies incorporated from 2012 to 2017, India now has over 5,000 startups, making it the world’s third-largest startup ecosystem.

Source: Nasscom.

B2B’s share of overall tech startup funding has risen to almost one-third, with increased corporate involvement with startups, especially in fintech, partly fueling this growth. This involvement takes different forms, ranging from collaboration programs to accelerators and investments. Over 50 M&A deals in the first half of the year also show an uptick in global corporate interest in Indian startups.

The rise of B2B is significant because it leverages India’s tech talent base, built up over decades of providing software development and services to the world. The SaaS (software-as-a-service) model of startups targeting large enterprises as well as small businesses has attracted most of the B2B funding.

The rise of B2B is significant because it leverages India’s tech talent base, built up over decades of providing software development and services to the world.

A big driver for the rise of B2B startups and corporate involvement is fintech. India’s demonetization gave it a push towards the end of last year. The government has also pushed the adoption of biometric digital ID Aadhaar and a unified payments interface (UPI) with a lightweight Bhim app.

The bigger companies like Alibaba-backed Paytm were the first to see their traction take off after demonetization. But now we’re seeing new innovators riding the fintech wave. Digital payments and lending have matured as well, and there are emerging opportunities in wealth management and insurancetech.

State governments are also getting into the act, such as Andhra Pradesh, which started building Vizag on the east coast into a fintech hub last year. The Monetary Authority of Singapore is collaborating with the AP government, while fintech hub from Singapore Lattice80 announced that its first center abroad would be in Vizag.

Source: Nasscom.

The multiplier effect of fintech on economic growth and jobs is evident from developments in China, and India wants a piece of the action. Both the startup base and funding in fintech have grown significantly this year.

One-third of the fintech funding has gone into startups using advanced tech for analytics, including artificial intelligence, especially for use cases like credit risk assessment.

Deep tech as a whole has been figuring more prominently among new startups, with advanced analytics and AI being the most recurrent themes in multiple verticals. AI, however, takes many forms among these startups, from deep learning to various hybrids of big data analytics with machine learning and human-assisted AI.

Source: Nasscom.

IoT (internet of things) startups have reached a significant number, while blockchain technology is beginning to emerge.

See: What’s hot, what’s not, and why: VC funding in India this year

Bangalore, Delhi, and Mumbai continue to be the main startup hubs. But the report points out that one-fifth of the new startups this year are from second-tier towns, suggesting a broadening of the ecosystem. The median age of founders has risen to 32, with nearly half of them being in their 30s or early 40s. The report also noted that only about one out of 10 founders is female.

Source: Nasscom.

Original Link

Here’s why Indonesia could be the perfect place to set up your AI startup

Sansan’s Rio Inaba (L), McKinsey & Co’s Sachin Chitturu (M), and Kata.ai’s Irzan Raditya (R) speaking on stage at Tech in Asia Jakarta 2017. Photo credit: Tech in Asia.

“Artificial intelligence” (AI). No, we’re not talking about the post-apocalyptic, superiority complex-inflicted, misanthropic machines you’ve seen in the Terminator and Matrix movies (not yet, at least).

AI is the latest favorite buzzword in Southeast Asia’s startup ecosystem. PR folks use it as a catch-all term for technologies as wide-ranging as machine learning, natural language processing, and image recognition, among others.

Nevertheless, these are at the center of a revolution taking place in the region and the wider world, and they are helping businesses to be more efficient, to generate revenue from new sources, and to improve access to things like transportation, healthcare, and educational resources. And it just so happens that Indonesia has all the right ingredients to be a perfect testing ground for startups looking to break into this revolutionary field.

Data first

The fundamental element to this whole class of technologies is data. Without the collection of masses of data that can be analyzed and understood, the “learning” part of machine learning can’t happen.

In the opinion of Sachin Chitturu, digital core leader for Southeast Asia at McKinsey & Company, this is where Southeast Asian startups face their biggest challenge.

“Data is a big gap for startups,” said Chitturu, speaking on stage at Tech in Asia Jakarta 2017. “They either need to collaborate with big companies, or generate data themselves, which takes time.”

Value increases as scale does.

Only a relatively small handful of Southeast Asian corporates possess the large customer bases that are preferable to test AI algorithms on. According to Chitturu, these typically fall into two groups: telcos, and fast-moving consumer goods (FMCG) businesses.

Partnering with these types of companies is therefore a great starting point for AI startups, he added.

It’s a virtuous circle. If startups have technology that can make the corporates’ lives easier by boosting efficiency or creating new revenue streams, then they become an attractive partner. As a partner, they can get access to the corporate’s large customer base and the masses of precious data it generates. This in turn allows the startup to hone and improve its AI, making it an even more attractive partner for customer-facing corporates.

Virtuous circle

One such collaboration is that between Indonesian chatbot developer Kata.ai and Telkomsel, the mobile network subsidiary of the country’s biggest telco Telkom.

“We can see amount of data they’re collecting… and their business is growing in double digits each year,” said Kata.ai co-founder and CEO Irzan Raditya.

With this huge number of customers comes a huge amount of interaction with them, a whole load of admin work – and, inevitably, more than a few complaints. Kata.ai’s AI-driven chatbot can handle much of this work for Telkomsel, allowing the network operator’s employees to focus on those issues which require a human touch.

“We saw customer service agents mostly doing mundane things, repetitive tasks,” said Raditya. “We see AI helping them to be more productive, to do things more efficiently. And it can pass all those things that require ‘high-touch’ handling – like complaints – to humans.”

Meanwhile, customer inquiries like: “Where’s your nearest store to me? What pricing plans do you offer?” can be answered by the smart chatbot.

Kata.ai co-founder and CEO Irzan Raditya speaking on stage at Tech in Asia Jakarta 2017. Photo credit: Tech in Asia.

Beyond organizational efficiency and improved customer engagement, Kata.ai’s chatbot also has the potential to open new revenue streams for Telkomsel. “They could never monetize their channels on Instagram, Facebook, and so on,” Raditya explained. The chatbot makes it more feasible to sell packages through social media and website interactions.

Indonesia rocks

Another way of leveraging a larger dataset is to roll out your AI tech in big markets. And Indonesia is as big as it gets in Southeast Asia, accounting for about half the region’s total population and with a widely variable demographic make-up.

“Value increases as scale does,” said Chitturu. “So playing in Singapore, with five million people, as opposed to Indonesia, with 260 million – the economies of scale, the cost improvement are so much better.”  

Nevertheless, there are a few significant obstacles to overcome before Indonesia can fully begin to unlock this potential.

One key challenge is access to talent, Chitturu said – though he added that this seems to be a global problem. “Even companies in the US are struggling,” he said. “Because there is a very limited number of data scientists – and they’re very expensive.

Sansan – a Japanese startup that uses AI to digitize business cards and create a social network from the data – employs 10 to 15 data scientists depending on how you define the term, said COO Rio “PopEye” Inaba. He suggested that startups might have more success in hooking AI experts if they do more to understand what they’re looking for in a job.

Relationship advice

For Sansan, it’s more about thinking of how to “have a relationship” with a candidate, rather than simply what the candidate is capable of doing in their day-to-day work. Offering an opportunity to work on something they consider to be new and revolutionary may be even more important to them than the paycheck they can take home.

It is one thing to capture data, but another to make it available to everyone.

“Some talented engineers are not looking for money – of course, money’s important – but they’re looking more for an experience,” he said, citing Sansan’s own set-up as an example. “Since we have all this business card information, they may want to join us to experience how they can work with that kind of clustering coefficient, that particular kind of network.”

Broader infrastructure and support for startups would also be welcome, said Chitturu. “It is one thing to capture data, but another to make it available to everyone. Singapore has a huge government initiative to capture data and open it up. In Indonesia, that is not there – it would give startups a huge amount of data to train their algorithms. Every use case – transport, education, healthcare – can be improved with AI.”

Despite highlighting the public sector’s role in nurturing an ecosystem for AI startups, Chitturu believes the impetus for adoption will come from business. “That’s why I think the private sector will drive AI, not government,” he said. “If they find they can make additional revenue or get cost efficiencies, private companies will push it  – and startups that can collaborate with them to achieve that will go there.”

This is part of the coverage of Tech in Asia Jakarta 2017, our conference taking place November 1 and 2.

Original Link

China’s growing appetite for Indonesia shouldn’t discourage local founders, say VCs

(L-R) Moderator Sudhir Syal, BookMyShow; Adrian Li, Convergence Ventures; Ian Goh, 01VC; Joseph Chan, App Works; and Tony Qu, ATM Capital. Photo credit: Tech in Asia.

Some of China’s biggest internet firms left no doubt about their intention to be part of Southeast Asia’s slowly awakening digital economy. In the past months, companies like Didi Chuxing, Alibaba, Tencent, and JD have poured billions of dollars into funding and acquiring businesses in the region, especially in Indonesia.

Apart from these strategic investors, Chinese VC firms’ appetite for the Indonesian tech sector is also growing.

“Indonesia is lucky to have such a large market,” said Adrian Li, managing partner of Convergence Ventures, an Indonesia-based venture capital firm. One of the fund’s partners is China’s search engine Baidu.

Indonesia’s expanding population of 260 million people is seen as a safe bet by some Chinese investors because of the increased purchasing power that comes with it. And many feel like they can apply what they’ve learned at home to bring businesses to success here.

“I feel here like I felt 20 years ago in China – there are so many opportunities,” said Tony Qu, managing partner at ATM Capital while onstage at Tech in Asia Jakarta 2017. “If we have enough patience, the future will be great. The only way to lose is if you have no patience.”

A veteran Chinese investor, he said he’s relocating to Indonesia by the end of the year to focus his fund’s investments in the archipelago.

VC firms aren’t just backing local startups financially, but they also want to fix one of Indonesia’s key problems: the lack of engineering talent.

Part of Convergence Venture’s deal with Baidu involves bringing technical resources and know-how from China to its portfolio companies, which in turn will boost their chances of success.

ATM Capital’s Tony Qu also pointed out that bringing talent from China will help the industry grow.

No such thing as too much capital

Li countered concerns that too much capital from overseas might squeeze out local startups with less access to funding.

In the early stage of a startup ecosystem, the problem is access to capital. In China, Silicon Valley branded VCs provided plentiful early to mid stage funding. Hence, China has the opportunity and appetite to be to Indonesia what Silicon Valley was to China over a decade ago. Particularly as we see a series B gap in the current market,” he said.

Ian Goh of 01VC, another VC firm that bridges Chinese capital and Indonesian startup opportunities, said that now is the phase in which Indonesia needs to build its “pipes” – the fundamental infrastructure like cashless payments, credit scoring systems, and logistics. “In 2008, a lot of that was still missing in China. When the pipes are done, many more startups will be riding on this,” he said.

It’s unfair, however, to say that massive companies are coming into the country and “eating everyone’s lunch,” Goh added.

“In Indonesia, there’s room for the local players to become dominant. Look at Traveloka. In the end, there will be local giants and local heroes.”

For local companies to be competitive, Qu suggested that they use their home field advantage by understanding the user better.

“Don’t just copy what’s hot in China. You have to know what the users really need. In some cases, the infrastructure is not ready. Do those things for which the infrastructure is ready. Maybe what’s ‘old’ in China is going to work here.”

Li added that local players can succeed by building loyalty with their customers and offering highly localized solutions and local logistics.

This is part of the coverage of Tech in Asia Jakarta 2017, our conference taking place November 1 and 2.

Original Link

After Go-Jek, Tokopedia & Traveloka, Indonesia won’t see new unicorns soon: investors

Go-Jek

Indonesia’s Go-Jek started out with motorbikes, then added cars later. Photo credit: Go-Jek.

Anyone following Indonesia’s tech scene is probably familiar with “GTT” – Go-Jek, Tokopedia, and Traveloka, the country’s three billion-dollar startups. This year alone, Tokopedia and Traveloka got a significant boost following investments from backers like China’s Alibaba and US firm Expedia, respectively. Will we see a new Indonesian startup join the unicorn club next year?

Willson Cuaca, managing partner at East Ventures – a prolific early-stage investor in Indonesia and the rest of Southeast Asia – doesn’t think so. “There’s a huge gap between those big companies and the mid-tier ones,” he said during Tech in Asia Jakarta 2017. (Disclosure: East Ventures is an investor in Tech in Asia. See our ethics statement for more info).

Sharing the stage with Cuaca, Pieter Kemps of Sequoia Capital – an investor in both Go-Jek and Tokopedia – agreed that other startups would need time to catch up.

While it may not happen soon, it doesn’t mean Indonesia’s tech scene is “drying up,” Kemps assured the audience.

“You have this first wave of startups in horizontal marketplaces, logistics, travel that have emerged and they’re very dominant right now.” More interesting things are coming up – there’s going to be a “second cycle,” he said.

It’s a trend seen in China, where Toutiao, Meituan, and Didi Chuxing – also known as “TMD” – are following in the footsteps of “BAT” (Baidu, Alibaba, and Tencent). Kemps said TMD might be less known in the region, but each boasts a valuation ranging from US$20 billion to US$50 billion.

In Indonesia, opportunities abound for startups to get a grip on the highly “inefficient” market. “There’s so many things broken in this country, lots of problems to solve,” Cuaca said.

That’s true even for ecommerce – despite the dominance of Tokopedia and another Alibaba-backed firm, Lazada – because the sector accounts for only 2 percent of total trade happening in the country.

L-R: Pieter Kemps, Willson Cuaca, and Grace Xia speaking on stage at the Tech in Asia Jakarta 2017. Photo credit: Tech in Asia.

Skills shortage

But before Indonesian startups can jump to the next level, they must surpass what could be their biggest hurdle – a talent shortage that has been a drag on the country’s tech sector.

Indonesia is one of Asia’s most populous nations, with millions of internet users coming online every month, but tech talent is limited. Specifically, there’s a lack of engineers, the investors said.

“If you look at the quality of engineering in China, I’d say it’s on par with the US, which wasn’t the case in the past. The sheer volume of companies, the scale companies in China are operating at, the complexities of the problems that need to be solved means you have to innovate a lot. Here it’s still a challenge,” explained Kemps.

“We’re very bullish about Indonesia but we’d love to see more engineering capabilities and a faster learning curve at that,” he added.

“We talked to some startups – small and big ones. Many of them said ‘we’ve seen every single good engineer in Indonesia and now we’re done. We can’t find them anymore,’” stated Cuaca.

To fill the gap, the companies have resorted to offshoring tech work or scouting for talent overseas to bring to Indonesia. Go-Jek, for example, set up an engineering hub in Bangalore and a data center in Singapore.

Investors have also taken an active role in helping their portfolio companies in Indonesia find talent.

“With Go-Jek, we helped them a lot on working with certain developers and capabilities, and ultimately they ended up acquiring several companies and forming an engineering hub in Bangalore. With Tokopedia, it’s similar. We were very much involved in the early days, helping them hire their VP of engineering,” commented Kemps.

Another workaround is a fly-in, fly-out approach where Indonesian founders go on trips to China, for example, to get advice and learn from local startups.

Grace Xia of Jungle Ventures cited China’s favorite messaging app WeChat as a “business model proven in China which works here as well.”

She said Go-Jek has certainly taken stock of how WeChat evolved from a simple chat app to an ecommerce, gaming and video sharing platform. Today, WeChat is also used by the Chinese for almost everything, from booking a cab to paying their bills.

Similarly, Go-Jek started out with motorcycle-hailing then cars, and later expanded into other on-demand services like parcel couriers, food and medicine deliveries, cleaners, and massages.

Xia expects the entry of Chinese investors like Alibaba in Indonesia to bring not just capital but also technology and knowledge sharing.

This is part of the coverage of Tech in Asia Jakarta 2017, our conference taking place November 1 and 2.

Original Link

The hottest sectors for venture capital in India this year – surprises, dampeners

hottest-startup-verticals-in-india-for-venture-capital-funding

Startups and investors the world over have finally shaken off the dreaded funding winter, if the venture capital deals announced in the third quarter of 2017 are anything to go by.

Globally, 2,362 venture capital deals were revealed in Q3 2017 with an aggregate deal value of US$49 billion, according to alternative assets intelligence firm Prequin. A lion’s share of that money went into Asian tech companies.

  • Southeast Asia’s ride-hailing giant Grab nabbed a whopping US$2 billion deal with China’s Didi Chuxing and other investors.
  • China’s Toutiao grabbed another US$2 billion from General Atlantic.
  • SoftBank invested US$1.5 billion in India’s Flipkart, just a few months after Tencent, Microsoft, and eBay poured around US$1.4 billion into the ecommerce company.
  • Ola too raised around US$1.1 billion from SoftBank and other investors.
  • So did Paytm, around US$1.4 billion from SoftBank.

The total funding raised by Indian tech companies in the first nine months of 2017 crossed US$9.6 billion across 574 deals, thanks to the three huge checks from SoftBank.

But what about early-stage funding, the better indicator of what verticals are clocking maximum action for tech startups? Tech in Asia asked LetsVenture, an Indian online platform connecting startups to investors. LetsVenture tracked around 1,000 young Indian startups trying to raise funding in the last six months and spotted a 25 percent drop in the number of early-stage financing deals in Q3 2017 compared to Q2. But the average early-stage deal size in Q3 was US$680,000, a 20 percent jump from US$560,000 last quarter.

Image credit: LetsVenture. Green graph tracks early stage funding for Q3 2017 and gray graph depicts Q2 data.

LetsVenture tracked all early-stage deals ranging from US$150,000 to US$1.5 million in Q2 and Q3 2017 in the report shared exclusively with Tech in Asia.

Not surprisingly, the hottest verticals – in other words, sectors that saw maximum number of deals – were healthcare and fintech. Together, healthcare and fintech companies bagged 19 percent of the early-stage funding deals in India. Enterprise software came third with 8.8 percent but with average ticket size of US$800,000, higher than US$743,000 for healthcare startups and US$551,000 for fintech.



What’s new

Tech startups with enterprise software products saw much more interest from investors in Q3 compared to Q2. While the sector was in sixth place in number of deals in Q2, it was number 1 in Q3.

The startups that scored the biggest checks in this vertical are:

  • Innovapptive with US$1.5 million from Hyderabad Angels
  • Vidooly with US$1.4 million from Gujarat Venture Finance and Times Internet
  • Goodbox with US$1 million from Nexus Venture Partners and angel investor Mekin Maheshwari.

Enterprise software includes tech products that improve productivity and efficiency within large organizations. For example, it helps with business intelligence, enterprise resource planning, customer relationship management, accounting, supply chain management, and project and portfolio management. According to Statista, spending on enterprise software is expected to hit US$351 billion by the end of 2017.

Most of the startups in this space operate with the software-as-a-service (SaaS) model. Since 2010, 6,100 SaaS companies have sprouted in India, and 630 of them have raised US$1.98 billion in external capital investment, according to venture capital intelligence firm Tracxn. India’s huge tech talent pool and high capital efficiency are a couple of “unfair advantages” that SaaS startups in the country enjoy.

See: The unfair advantage Indian SaaS startups have over rivals around the world

“With the inbound marketing / inside sales model (most of the selling is done by internet marketing alone), the buying decisions are won by the customer’s perception of the product, his experience, and so on. Nothing is sold by a salesperson convincing a customer to buy,” Suresh Sambandam, founder and CEO of OrangeScape, tells Tech in Asia.

Money power

Fintech saw a fall in the number of early stage funding deals in Q3 compared to Q2, according to LetsVenture data. But there’s enough action in the space to watch it closely.

The Indian government gave a shot in the arm for fintech startups when it announced a sudden demonetization move in November 9, 2016. Higher denomination currency notes of INR 500 (US$7.5) and INR 1,000 (US$15) were abolished, shoving Indians towards a digital economy.

See: Alibaba-backed Paytm is laughing all the way to the bank

“Globally, there has been no disruption in payments and financial systems as big as demonetization has been,” digital payments expert Monica Jasuja wrote, citing several reasons for her opinion.

India’s big push for digital ID Aadhaar was another factor that helped fintech startups.

VC database CB Insights mapped the sector, tracking 72 startups working across lending, payments, insurance, and banking.

The early-stage startups that scored the biggest checks in the fintech vertical are: According to LetsVenture data, 67 percent of the early stage deals in the category went to consumer-facing fintech startups.

‘India offers the highest expected return on investment on fintech projects at 29 percent versus a global average of 20 percent,” according to PWC Fintech trends report 2017. “The payments segment has been the most funded within the Indian fintech landscape, riding on the demonetization wave. However, banking technology solutions, including B2B products, are also experiencing strong growth and enabling financial institutions to create seamless solution delivery for end users,” the report said, pointing out the huge opportunity presented by India’s large unbanked or underbanked population, along with its technology and entrepreneurial ecosystem.

Image credit: PWC Fintech Trends 2017 report.

Health is wealth

Though healthcare didn’t see as much action in Q3 as it did in Q2, the vertical was right on top overall. Primary healthcare alone is estimated to be a US$40 billion market in India. “In addition, some portion of the US$60 billion secondary and tertiary care market is also available for online penetration. By our estimates, no more than US$50 to 60 million of healthcare expenditure (not including pharma sales) is currently online,” writes Ritesh Banglani, co-founder of Stellaris Venture Partners. “The current level of online penetration is miniscule,” he adds.

Banglani is on the board of medtech company mFine, in which Stellaris, along with healthcare entrepreneurs Mayur Abhaya and Rohit MA, invested US$1.5 million a few months ago. Founded by Myntra co-founder Ashutosh Lawania and Prasad Kompalli, a former technology and business head at Myntra, in February 2017, mFine connects patients with doctors for remote consultation. A similar app in Sri Lanka, oDoc too scored US$1 million seed funding in September – the island nation’s largest seed investment round for any startup.

Besides mFine, medical assistant Credihealth, which raised US$1.5 million from Tolaram Group and Mountain Pine Capital, and mental health firm WayForward, which raised US$1 million from angel investors, are two other Indian companies that bagged big early stage checks in this sector.

Food for thought

Not many foodtech startups grabbed investor eyeballs in the last six months. A little over seven percent of the early stage deals went for the vertical. Young startups which raised funding in this space – three quarters of which were consumer-facing businesses – nabbed an average deal size of US$669,000.

Three foodtech startups raised US$1 million in funding are: juice brand Mygreens, premium tea seller The Good Life Company, and online grocer MrNeeds.

The education sector too saw a little funding action with an average deal size of US$427,000. Michael and Susan Dell Foundation and Mahindra Group chairman Anand Mahindra invested US$625,000 in Gurgaon-based startup Nest Education. Jaipur-based school management app Myly raised around US$310,226 from Small Industries Development Bank of India.

Retail, artificial intelligence, travel and tourism, fashion, and IoT (internet of things) are other verticals that LetsVenture tracked in its report.


This article is part of Tech in Asia’s coverage of LetsIgnite, a three-city event by LetsVenture for entrepreneurs and startups coming up in Bangalore, Mumbai, and Delhi. Startups looking to raise funding of US$200,000 to US$1.5 million can apply here.

Original Link

Video: Better machine translation will be a huge job killer

It’s not just self-driving cars that are set to steal jobs over the next few decades…

About C.

A Tech in Asia editor focused primarily on China, with special interest in public service, environmental, and video game tech. Follow me on Twitter as @ChinaGeeks.

Original Link

Video: Jack Ma reveals China’s secret for ultra-fast growth

How did China get so developed so fast? Jack Ma says it’s actually pretty simple:

About C.

A Tech in Asia editor focused primarily on China, with special interest in public service, environmental, and video game tech. Follow me on Twitter as @ChinaGeeks.

Original Link

Amazon vs Alibaba: the R&D spending war

Alibaba this week announced a big push to do more research and development, ploughing US$15 billion into new innovation over the next three years. Here’s how that stacks up to what Amazon is already doing:

Alibaba versus Amazon in R&D
Alibaba versus Amazon in R&D
Alibaba versus Amazon in R&D
Alibaba versus Amazon in R&D

Data: Bloomberg; Bloomberg Gadly

Artwork by Tech in Asia’s Andre Gunawan.

The brewing Amazon-Alibaba battle:

About Steven

Steven’s interested in ecommerce, mobile, smartphone adoption, gadgets, social media, transportation, and cars. If you have any tips or feedback, contact him on Twitter: @sirsteven

Original Link

Understanding Indonesia’s first startup IPO

Kioson yesterday became the first local tech firm to list on the Indonesian Stock Exchange (IDX).

It’s unusual for an early stage company that still posts losses to go this route. Despite concerns, Kioson achieved its modest target.

The startup raised US$3.3 million from selling 150 million shares. That’s just slightly more than the median deal size for a series A venture capital round in Southeast Asia.

At a press conference yesterday, the startup said that the offering was more than ten times oversubscribed, meaning there was more investor demand than could be met. It also pointed out that the share price jumped from US$0.02 to US$0.04 on the first day.

It’s a positive result, but Wellson Lo, founder of Stockbit, an online community for Indonesian investors, calls for caution.

“The fact that the share price is up 50 percent in the first day of trading sometimes grabs headlines in the media, but we have to pay a particular attention on the ‘liquidity’ of the share itself,” says Lo.

He points out that, in the first day, only 23,400 shares were traded, which amounts to less than US$1,000. “This can mean a lot of things, but investors should be careful since price movement is less important in the absence of healthy trading volume,” adds Lo. On its second day of trading, the volume has dropped to 3,400.

Kioson runs a network of small shops that sell digital goods like phone air time, gaming, and ecommerce vouchers through its app. It was founded just over two years ago and now has 19,000 kiosks across Indonesia.

According to its latest financial statement, its total revenue in 2016 was roughly US$1.9 million with a US$840,000 loss.

Support from the top

“The company has potential even though it’s young,” says Kerry Rusli of Sinarmas Securities, the investment bank that underwrote Kioson’s IPO.

Sinarmas Securities is a local investment bank associated with the Sinarmas conglomerate.

It may have been more inclined to take the risk of underwriting the IPO because Kioson isn’t a startup of the Silicon Valley type, where a team of entrepreneurs creates an innovative product from scratch and raises venture capital to grow the business. It’s co-owned by several established companies. Artav Mobile Indonesia, a mobile phone SIM card and airtime distributor, holds the majority.

Kioson’s IPO was also supported by the Indonesian Stock Exchange itself – it has been trying to attract tech companies to list by launching an incubator earlier this year.

Rusli says that’s because it wants fresh wind in the public markets.

“Usually we see companies in property, manufacturing, oil and gas, or coal. But there is a slowing down in the demand for this from retail investors.”

Retail investors are individuals who invest from their own wealth, in contrast to institutional investors, like pension funds or insurances.

There’s also the government directive to nurture the local ecosystem of small and medium enterprises, Rusli points out. This includes encouraging more local investment in budding businesses.

“With Tokopedia, Go-Jek, Traveloka, a lot of Chinese investors came to invest in ecommerce here. Kioson was also approached by private equity investors but it wanted to give retail investors the opportunity to participate,” he adds.

Lo shares this point of view. “Since not everyone has access to investing in private companies, this IPO presents the option to the general population to participate and invest,” he says.

“Although they have to be aware of the risk that they take when they make such investment. Whether this kind of investment should be reserved to the accredited investors who can handle the risk or make it available to the general population is another topic that’s debatable.”

He recommends interested investors to wait and watch the development over the next couple of weeks. “Basic rules of investing dictate that investors should really understand the business, management, the broader market, etcetera, before investing in a specific company.”

Converted from Indonesian rupiah. Rate: US$1 = IDR 13,500.

Original Link

Lazada slams Sea’s claim that Shopee is the top regional ecommerce player

Sea, one of Southeast Asia’s most valuable internet companies, has released its full IPO prospectus peppered with claims – among them that it’s the top ecommerce player in the region.

The company cited data from a Frost & Sullivan report it commissioned, saying that Shopee, its consumer-to-consumer marketplace, was number one in market share in “Greater Southeast Asia” during the first half of 2017 – in terms of GMV (gross merchandise volume) or total value of goods sold, and total orders.

It also said that Shopee had about 2.2 times the number of total orders of its closest competitor during the same period, without dropping a name.

Those statements did not sit well with Alibaba-owned business-to-customer marketplace operator Lazada, which has for quite sometime asserted its claim to the throne.

“This is the first time I hear about the ‘Greater’ Southeast Asia, why did they not call themselves Gsea?” Lazada CEO Max Bittner said in a statement emailed to us, referring to their rival’s recent move to change its name from Garena.

“I am very confident that Lazada Group is number one both when it comes to GMV and unique customers in ‘actual’ Southeast Asia – when comparably defined,” he stressed. He didn’t share concrete figures.

In its IPO prospectus, Sea reported US$1.47 billion in GMV and 80.6 million in total orders for Shopee for January-June this year. The figures included its operations in Taiwan, hence the term “Greater Southeast Asia”. Breaking it down, Taiwan accounted for the second-largest share in total orders next to Indonesia.

Sea said Shopee had the largest market share in H1 2017 – 10.6 percent for GMV and 14.7 percent for total orders – still based on Frost & Sullivan data.

By comparison, Lazada is present in all Southeast Asian markets mentioned. But it has no presence in Taiwan.

Responding to our queries, Frost & Sullivan vice president for Asia-Pacific digital transformation Ajay Sunder explained that Lazada actually surpassed Shopee, with 0.5 percent more market share by GMV in the region – even taking into account Taiwan – in 2016. His comment indirectly confirms Lazada as Sea’s closest competitor.

However, come H1 2017, he said Shopee registered impressive growth and overtook Lazada in “Greater Southeast Asia”, reaching 10.6 percent market share versus the latter’s 7.5 percent, he says.

Asked about the term “Greater Southeast Asia”, Sunder replied “it is what we use when markets at consideration are beyond generally accepted countries for Southeast Asia and is becoming common with ICT vendors as well.”

Lazada last year claimed to have hit US$1.3 billion in annualized GMV (link in PDF). Shopee pegs its annualized GMV this year above US$3 billion.

‘Easily inflatable’

GMV is a metric commonly used to gauge the performance of ecommerce businesses in their early stages – when it is too soon to judge them on the basis of revenue and profitability. The question is – does it really indicate how healthy a business is?

“As we have recently seen in India, GMV is easily inflatable by subsidy schemes and history shows that GMV falls away as unhealthy subsidies are removed,” stated Bittner.

Sea’s IPO prospectus showed that while its GMV and revenue have been growing since 2014, its net loss also widened due to sales and marketing costs, which included subsidies relating to promotions to acquire more customers and shipping for sellers.

While Lazada also incurs costs from subsidies, there’s no way to know how these have affected its top line as company execs keep mum on its financial performance.

The challenge for both firms then is how to make money while reducing costs, and to keep users once the subsidies stop.

Sea began monetizing Shopee only this year by offering sellers a cost-per-click advertising service to promote their products in search results in Taiwan and Indonesia, and by charging sellers in Taiwan commission fees for transactions completed in the marketplace.

Lazada, on the other hand, has been generating revenues from transactions through commission fees as well as payment and logistics (shipping and fulfillment) fees to sellers, its president Stein Jakob Oeie told us in a phone interview. In Indonesia, the company is currently not charging commission fees, only payment and logistic fees.

Sea didn’t discuss any plans to rein in on subsidies in its prospectus. Bittner ended his statement saying Lazada will continue to “aggressively build sustainable market share through a combination of advertising and best-in-class shopping and selling experience supported by our own logistics operations.” Oeie declined to reveal whether Lazada has begun cutting down on subsidies.

Unsustainable GMV

In the meantime, it’s “no industry secret that marketplaces with no transaction costs and no/low revenues are highly subject to fraud which is further driving unsustainable GMV,” noted Bittner, seemingly taking another jab at Sea. Sea made no mention of payment fees for Shopee itself and so far only charges commission for ecommerce transactions in Taiwan.

Fraud happens when, for instance, people colluding with each other trade the same stuff back-and-forth in a marketplace to gain rewards such as vouchers or credit card points. Imposing some sort of transaction or payment fee helps avoid such incidents.

These transactions bloat the GMV but are not considered unique buys.

Oeie reiterated Lazada’s belief that it’s the top marketplace in Southeast Asia in terms of unique customers and GMV, but declined to divulge concrete figures.

In its annual report, however, parent Alibaba said that Lazada had about 23 million annual active buyers in the year ended March 31, 2017. That’s 3.6 percent of the population of Southeast Asia.

In contrast, Sea said Shopee had 4.2 million “average monthly active buyers” in Q2 2017 but didn’t specify the annual figure.

Long-term sustainability

Apart from shipping subsidies, Shopee’s GMV spike has a lot to do with its business model, according to Lawrence Cheok, senior research manager at IDC Singapore.

Shopee is a C2C marketplace where sellers are comprised of individuals and small professional sellers or “power sellers,” whereas Lazada’s merchants are businesses – mostly branded manufacturers and large retailers. Shopee is “asset-light” in that it does not take on inventory and warehousing, and only taps third parties for logistics capabilities.

Lazada, on the other hand, started out as inventory-based direct retailer – thus, the moniker “Amazon of Southeast Asia”. Over the past years, though, it has shifted to a primarily marketplace model, with warehousing and logistics offerings.

“Shopee reports 1.6 million sellers (in Q2 2017) with 74 million listings, while Lazada had 40,000 sellers when it last reported the US$1 billion milestone. From this perspective, it is possible that Shopee could have scaled much more quickly than Lazada did since onboarding C2C sellers is faster and less complex,” Cheok said.

Yet Shopee’s success – while no easy feat and should not be understated – is also a strategic tradeoff at the expense of long-term sustainability, he stated.

“To sustain its logistics costs, Shopee will have to pivot into a B2C model. Based on their numbers, we estimated their average order value (AOV) is around US$15. This makes it a challenge to start charging C2C sellers shipping fees without a drop in transaction volume. The next best move is to pivot into B2C and drive up AOV through branded products, and to monetize through advertising,” he explained.

However, this may introduce another set of issues for Shopee – cannibalization and price competition between C2C sellers and branded retailers. “To attract branded retailers and expand its B2C model as a viable business, Shopee will have to do what Alibaba did with Taobao and Tmall – setup two separate channels for C2C and B2C,” concluded Cheok.

We’ve reached out to Sea for a response to Lazada’s and IDC’s comments, and for more information in relation to payment and commission fees and annual active buyers, however the company is in a quiet period.

A quiet period is the time in which companies going public are banned by regulators from commenting or disclosing any information so as not to affect the value of the stock artificially.

See: With upcoming IPO, Sea reveals net loss of $196m and revenue of $345m

Original Link

Grab and Go-Jek take their battle to Indonesia’s small towns

Indonesia-boys

Boys on a beach. Photo credit: RumahKaia.

Ride-hailing services have visibly impacted Indonesia’s biggest cities since launching just over two years ago. The signature green helmets of Go-Jek’s and Grab’s motorbike drivers are everywhere.

This year, the battle between the two startups shifted gears. It’s also advancing deeper into the countryside, in a bid to be there first when consumers discover the convenience of on-demand services and mobile payments. Both poured significant resources into building digital wallets and payments features.

What do the companies have in their arsenal? Here’s a comparison.

Funding and alliances

Grab and Go-Jek both scored massive funding rounds this year and have forged alliances with powerful companies abroad.

The Malaysian-born Grab raised at least US$2 billion in a round led by Chinese ride-hailing firm Didi Chuxing and Japan’s SoftBank.

Indonesian local Go-Jek reportedly got US$1.2 billion this year, with Tencent and JD participating in the round. The involvement of the Chinese firms was recently confirmed by a Go-Jek spokesperson, but without revealing the funding amount.

Fleet size

Three out of 600,000: Go-Jek drivers Lokot, Sulaiman, and Hidayat (L-R).  Photo credit: Tech in Asia.

Go-Jek earlier this month revealed new fleet size numbers: It now claims to have 654,000 drivers (497,000 two-wheel, 157,000 four-wheel), and 95,000 merchants signed up on its platform in Indonesia.

That’s more than double the 300,000 drivers that Go-Jek spoke of in August. It’s possible that the more recent figure represents registered drivers, while 300,000 pertains to active drivers.

Grab, which operates across Southeast Asia, does not release country-specific data for its fleet size, so we don’t know how many drivers it has in Indonesia. Its latest corporate profile states a total of 1.3 million drivers in the region.

Cities

Street scene in Bukittinggi, one of the 25 new cities in Go-Jek’s network. Photo credit: Ken Marshall.

Go-Jek now operates in 50 cities countrywide, after adding 25 new second- and third-tier towns earlier this month.

Among them are places like Bukittinggi in West Sumatra (120,000 people), Jember in East Java (332,611 people), and Madura, an island off the coast of Java.

Grab, too, is now active in over 50 Indonesian cities, a spokesperson told Tech in Asia. It updated the list on its website not long after Go-Jek announced its 25 new locations.

Grab’s list is slightly longer than Go-Jek’s, but that’s because the local firm lumps some neighboring cities into one, while Grab names each individually. For example, Go-Jek says it’s present on the island of Bali, while Grab lists separate cities in Bali.

Services

Go-Jek won’t reveal much about how it runs operations in a small town – for example how many drivers or merchants are typically needed to kick things off.

It has teams in all 50 cities, a spokesperson told Tech in Asia – and it offers transportation, food delivery, and courier services in each. Merchants can sign up via an online form.

Grab offers personal transportation in cities outside of the greater Jakarta area, a company spokesperson said. Food delivery is only available in the capital and its surroundings for now.

That could give Go-Jek a legup – food delivery is an important revenue stream for the firm, and a way to get people to use its mobile wallet. You can pay for the food you ordered through the app with Go-Pay credit. Go-Jek also sells digital goods through its app, like phone airtime and tickets. It’s not clear whether those are available in all 50 cities, but it would be comparatively easy to roll out.

Grab also has one more ace up its sleeve: it acquired Kudo, an online-to-offline shopping app that claims to have 400,000 sellers – also called agents – across Indonesia.

Kudo Office

Kudo team members in front of the office. The startup is now part of Grab. Photo credit: Tech in Asia.

Kudo lets people order physical goods, tickets, or pay bills online through its agents. It’s intended for less tech-savvy folks who prefer to let someone they trust handle online transactions for them. Kudo is Grab’s way of gaining relevance in Indonesia’s second- and third-tier towns where shared transportation may be less frequently needed than in big cities.

However, Grab and Kudo still have to work out how to integrate their systems for mutual benefit.

So far, the only visible link between the two apps is a feature that lets Kudo agents sign up Grab drivers in return for a referral fee. Integrating GrabPay with Kudo’s own credit system is a likely next step, but hasn’t been realized yet.

Uber, which also operates in Indonesia, hasn’t joined its rivals in the race to build a country-wide mobile wallet ecosystem. It’s available in fewer cities in the archipelago, having gradually expanded its reach to about 20 cities.

Original Link

Salesforce integrated Slack. Now Freshworks has an answer: Freshchat.

Photo credit: Pixabay.

Cloud-based business software provider Freshworks, whose best known products are Freshdesk and Freshsales, today launched a new product: Freshchat. It aims to help businesses engage better with customers, capture more leads, and drive sales.

“Businesses today want to provide their consumers with contextual and personalized chat experiences,” says Freshworks CEO and founder Girish Mathrubootham.

He believes messaging apps like WhatsApp and Facebook Messenger have created new expectations on user experience and the live chat products in business software are lagging. “Sales and support agents need to be empowered with a single platform that provides the flexibility to engage with prospects and customers who are always multi-tasking.”

Sales and support agents need to be empowered with a single platform that provides the flexibility to engage with prospects and customers who are always multi-tasking.

A Gartner survey shows digital marketing spend has been rising, but conversion of visitors into customers remains poor at 2 to 3 percent, points out Freshworks in a statement on the launch of Freshchat. To improve conversion, Freshchat uses an intelligent bot to screen leads and provide context to sales reps.

There are standalone products applying artificial intelligence to sales leads, such as Lucep. In the case of Freshchat, it works in sync with Freshdesk and Freshsales to be a part of the workflow.

See: Meet the artificially intelligent sales gorilla that closes deals faster

Freshworks has been building up its messaging tech with acquisitions over a period of time. Its very first acquisition two years ago was Bangalore-based 1Click, whose software enabled live video chat and co-browsing in Freshdesk. The acquisition of Frilp followed soon afterwards: this provided natural language processing for crowdsourcing of customer support.

Its third acquisition the same year was chat app Konotor. Then, last year it acquired Framebench, whose cloud-based software allowed teams to share comments and feedback on videos, images, and presentations. Freshworks is leveraging the tech and talent from all these acquisitions to build its full-blown messaging product.

See: Q&A: SaaS superstar Girish Mathrubootham on ambitions, fears, and secret strategies

Freshchat has features to route and manage conversations, to avoid timed-out sessions and missed chats. It can also be integrated into websites, apps, and other messaging products.

Last year, Salesforce – the big gorilla that Freshsales has challenged – integrated the enterprise chat app Slack into its product. With Freshchat, the Indian SaaS rival refuses to be left behind.

Original Link