Posts Tagged ANKI

Taking the MVP approach to product development

For the last six months I’ve been making apps on mobile phone platforms and I’m seeing some early successes that push me to keep on going with it.

Following the MVP (Minimum Viable Product) approach, test minimum ideas and pivoting on feedback when necessary. The approach is mentioned in the Lean Startup book, by Eric Ries. Definitely worth a read, even if you aren’t working on your own stuff. Its got some really interesting ways of looking at feedback which is invaluable.

The aim is to develop a successful product that are useable to other people and make sure that your efforts are as efficient and profitable as possible. I don’t just mean earning as much money as possible, but also to be useful to many people. Usually making money and usefulness to others goes hand in hand. If a product is useful to a lot of people, theres more chance a lot of people would pay for it.

The MVP and feedback approach went against my entire career of software development so far. Usually what happens in software creation is a more linear approach. Various design meetings come up with a blueprint for the new game or app. If I was lucky (or unlucky) enough I would be present at these meetings to hear what people wanted, and mock-ups some designers had made already. After the features and design was finalized, we went to work to create the app and it was released to the client or the public. If we did it right, the company was paid, or we saw the download counter increase. There the cycle ended and I was put on to a new project to begin the path again until enough projects failed that the company went bust, or I got bored enough to move on to a new company.

This is almost the exact opposite of MVP and Iterative development cycles. Instead of finalizing a design and creating the product, only the bare minimum is created to convey the core feature and is released to the public. Feedback is obtained to prove or disprove assumptions and a new version of the app is pushed out based on this feedback. This loop is an ever continuing cycle of feedback and improvements. At the start I found this a difficult process, but now I find this method a much more natural way of application development and I can see success and failure very quickly so I can capitalize or fix the problems as soon as possible.

Study’N’Walk, The road to my own language learning apps.

During my year in Taiwan, I used the flashcard app ANKI to learn Chinese which led to creating my own decks to tie in with my own Chinese books.

I realised early on that my listening skills were terrible, and reading text wasn’t helping. So I integrated voices into the anki cards, producing a spreadsheet and scripting process to help me do this more efficiently. I ended up documenting the process for others to see and try themselves.

From these posts, I got 3 major pieces of information,

1. Traffic to my website jumped quickly, it looked like lots of people were searching how to make their own ANKI cards.

2. I got a couple of comments asking how they could use this process to study a language other than Chinese.

3. I got a more than a few comments online about how the people who wanted to make their own ANKI decks were not technical enough to follow the process. Spreadsheets seemed to be OK, but scripting was a bit too much to ask for.

Next step was to simplify the process of creating decks by making an PC app to replace the difficult steps of scripting, and also add some flexibility to the languages.

I ended up with a C#/GTK+/MONO app that was much more flexible and convenient and after a few iterations I then had a system that could take in any language and output any language, with voices in a range of languages.

The feedback was not particularly good, because of the particular development environment I used, MONO, users had to download an additional component to make it work, similar to Flash for web browsers. MONO had allowed me to develop cross platform on Mac and Windows which I thought would be useful, however users of ANKI were not really prepared to get technical to install this software. A particular point of confusion was created in what I thought was a useful flexibility, the ability to create your own structure for each card type. Testers I showed this to were confused as they weren’t used to this level of control.

In one particular Test I made voices in both English and Chinese and then tried the deck in ANKI. This gave me the idea that I could study using my phone without looking at the screen and instead use only voice prompts. After a few trials using ANKI with this particular combination of text and voice in both English and Chinese, I found I could use my time while walking outside to study Chinese effectively.

The next problem was the  interface for ANKI was not quite appropriate.While functional, the button positions were a little awkward to press if not looking at the screen (at the very bottom of the screen) and the button positions occasionally changed. This was no good if you wanted to press the buttons without looking at them.

I decided to address this problem by making my own flashcard client on Android, called Study’N’Walk. The concept was to show the flashcards on screen, similar to ANKI, but have a much more consistent and easy to use interface that could literally be used with your eyes closed. This then opened the possibility of integrating monetization features such as IAP and adverts. Most importantly, it opened the reach of my app across the Android app store and gave feedback about numbers of downloads, current installs, daily use of the app, what language people opted to study. It also provided a very flexible platform in which I could release different apps and perform A/B tests and have different languages.

I began to realise that this app was now becoming available to people who wanted to study a language but had never heard of ANKI or a flashcard learning system. This was unexpected as I always thought of this as an addition to ANKI. These users had no problem getting the app into their phones, but they were unfamiliar with the ‘question’,’answer’ format of flashcards as a means to study vocabulary. I added some tutorial pages, but I found that users just seemed to click past them all without reading and then they found themselves stuck. I then added some interactive help bubbles which seemed to help.

I have since produced a variety of versions of the app (the first one being a 9 language demo pack) to Chinese and Japanese versions, and branching out to ‘Dictionary’ versions that have a slightly different UI, but present the data as a Dictionary primarily, with an option to learn the words in a training mode.

These A/B Tests let to an unexpected win when I was asked to about the possibility of a Plants Dictionary. The app lists many plant names with their Botanic equivalents. This has now become my most downloaded and profitable app, and it is used most in South-East Asia, a previously unconsidered market.

I also discovered that people do not care for the ability to make their own content. Users would typically search for a language they want to study rather than search for the ability to create their own content. Considering this was a core feature I was trying to push at the beginning, I was very surprised to hear this. Following this, I decided not to include the feature in the iOS builds, and I have found no negative feedback about the lack of this feature. This saves development time and the risk of anything going wrong.

The next lines of focus are now to look into Windows Mobile, whilst considering different content such as different languages and dictionary content. The design of software has allowed me to switch between content fairly easily whilst still using the same ‘engine’. I can make changes to the core learning experience and it is instantly reflected in builds for all the apps.

Major Points

The major points I have learned from this approach to application development are:

  • The traditional model of product development is not applicable here. You must be flexible to change the direction of the app in order to achieve the success you are aiming for.
  • Spontaneity is vital. For example I was impressed at how the swiping actions were used in one app, so as a quick test I added the swipe functions in the app to act in the same way as the buttons I had on screen. It was an immediate hit, because swiping a screen can be done without looking at the screen far more easily than pressing a button, even if it is big and in a set place. In the end, I removed the buttons altogether in favor of the swiping motions.
  • Get feedback as quickly as possible. Get the systems in place to give feedback and see what
  • Listen to suggestions, even if you think its stupid, see what can be done to accommodate. It might be a very simple change, and it might get a whole load of new users.
  • In my opinion, Dog Fooding (using the product yourself) is a major factor in getting it right. You’d have to use the product yourself in order to know whether you like it or not. Its one of the best feedback models.
  • Push something out to users as quickly as possible. It doesn’t matter if it doesn’t look very nice or breaks a lot. The important thing is to get the feedback loop started as soon as possible so you know how to improve it.

It was a big deal for me to put in monetization elements into the app, even from the beginning (who likes to see ads in your app?) but I see now that the money part is still a huge driver in making me want to make great apps. If I started this without any way of making money, I’d be missing one of the most important parts of making this business work.

Share Button

Tags: , , , , , , , ,


Thoughts of studying Chinese this year and tips to begin or re-boot your studying Part 2

This is the 2nd part of my Thoughts on studying Chinese this year and tips to begin or re-boot your studying (part 1).


If you are looking to study a new language, or looking for a re-boot to revitalise your studying, here are my recommendations.

Plan your study time and Fight through the wall.

No matter what you do to study, there will be times where you hit a wall and you just don’t want to do it any more. Its very easy to stop if you are studying alone. Or even if you are in a class its very easy just not to participate. Have realistic expectations about how much you can study in one day, and how long it will take in total. My recorded times this year have amounted to 300 hours, at a rate of between 2 and 4 hours per day. And I expect to double that to 600 hours before getting to a level where I could reasonably work professionally in Chinese.

Lets say you intended to sit down for 2 hours of study after work or class. You sit down with your study book, laptop, tablet, or mobile phone and a cup of coffee. 15 minutes later your mind starts to wane and you wonder what’s happening on facebook, someone sends you a message, your coffee is finished. There are seemingly a mountain of things that you want to do before you get back to studying. Every time you check your watch, it seems like time is standing still. Your mind is blank. You can’t think of the answer. What’s happening on facebook?

There’s the temptation to just give in and take a small 5 minute break to clear your mind, then of course you will definitely be ready for the remainder of those 2 hours. The only problem is 15 minutes later the same happens again. Before you realise it, the 2 hours of time you gave yourself are over and you have other obligations. You take a look back on what you’ve done, to realise you haven’t even completed one page of your 400 page study book.

This has happened to me countless times before, and still embarrassingly often now. The key is to not give up. Just keep pushing and you will pass through the wall. When you catch yourself thinking of something else, just switch back to study and keep going. If you can’t think of the answer and can’t think what to do, just think about the mechanical steps to find out the answer. Turn the page to find the Vocabulary list. Look down the list until you find the word you want the translation of. Look left until you see the English word. That is the translation. Turn back to last page you were on and go back to the last word. Keep reading. You will get back into the swing again. I find often that my first wall comes after 10-15 minutes. If I can get past that one, I can keep on going for another 45 minutes or so of straight studying, without even realising the time pass. During this time of being in the zone, in flow, I’m not considering whether or not I like studying, whether I have any new messages, I’m not even aware of background noises or where I am. I’m just studying. The next time I check my watch its already been 2 hours and 5 minutes.

Study alone

You might go to classes to study, you might find language exchange meet-ups are a fun way to practise your language skills but these don’t provide the complete steps to learning. Imagine the 4 steps of competence, 1. Unconscious incompetence, 2. Conscious incompetence,  3. Conscious competence and 4. Unconscious competence.

Before you even go to class or pick up a beginners’ book, you don’t know what you don’t know. In the class, you are introduced to new content. That takes you from Stage 1 to Stage 2.

Having conversations rely on your ability to know the content. Practising to a level when you are not even thinking about what you are saying is stage 4. so Practising conversation takes you from Stage 3 to to Stage 4.

The missing part is Stage 2 to Stage 3.

A class might provide exercises in class and homework exercises to help this process to reinforce what was taught in class. But in the absence of classes, I was forced to develop my own techniques. The result was using the Flashcard app to memorise vocabulary by listening, reading and translating from English. I ended up creating an open-source app to help with this.

The key is to keep on reviewing vocabulary until you instantly recognise the meanings. I don’t mean after 5 seconds you get finally get it, I mean keep on repeating the words until you see a word or phrase and can instantly imagine it, even quicker than you can speak it. In the case of learning Chinese characters, it means seeing the shape and/or combination of the characters and instantly knowing its meaning and how to say it. When this happens for most words in a list, it makes it far easier to use these words when reading examples, having practise conversations, and when out in the wild having conversations with people in the real world.

Speak out the vocabulary

As mentioned before, the tones in Chinese are vitally important. Speaking out the vocabulary gives you a chance to practise the tones in words and it will built a sort of muscle-memory when you pronounce words.

Create strange stories to remember Vocabulary.

If I find myself continually repeating the same vocabulary and just not making any progress on an individual word, I will try to think of a story to help me remember. The weirder the story, the better it helps. A website called memrise uses this technique to help with remembering, but I feel I remember better if I create the story myself. After I get to stage of instant recognition of the word, I tend to forget the stories, but I already have the word learned by then, so it has served its purpose. Example words might be the Japanese word 婚約, Konyaku, to get Engaged.  The story is at your engagement party you will have a drink to celebrate, and everyone drinks Cognac. Another word, in Chinese.  詛咒, zuzhou, curse. I just imagine the the 2nd character to look like a frowning face, because no one likes to be cursed. Over time it becomes easier to use relevant words in the Language you are learning, using similar sounds and shapes.

Another technique I use to remember the tones in particular words is to imagine the shape of the tones if they were put together. For example, Shēngqiān (promotion) is a long flat stick, Shěng qián (save money) is a unicycle travelling right. They don’t have to really make sense, but they do have to stick. The uncooked letters “TN” riding a unicycle to save spending on bus fare may not be a thought you can relate to, but to me that means saving money.

A similar technique I remember reading about was using peg-lists to remember position numbers of letters in the alphabet. i.e. a Dog has 4 legs, a Flute has 6 holes, the Queen has 16 houses. They don’t have to be true, they just have to be memorable stories that link numbers to letters.

Try different study techniques

Maybe your class or book already provides examples to help you learn. And maybe its enough. In my case, even at a time with classes to study, the content didn’t really help me enough to gain fluency. After searching through various techniques, I finally found a combination that really worked for me. Maybe you do better talking with a another person in an exchange situation. Maybe watching TV shows can help you to learn listening skills. The point is, if you aren’t seeing the desired effects, chances are its because you havent yet found your perfect way of study. If thats the case, keep an open mind and search for a new way of studying.

Move to the country

Quite an extreme option, just to learn a new language. However, it does provide some real incentive to learn. Other options may be to find exchange partners in your own country. Getting exposure to real-life situations where you must use your new language skills is essential in order to solidify what you learn in a study environment. Good luck!

Share Button

Tags: , , , , , ,

No Comments