Martin Grüner's blog » Businesshttp://martingryner.com
Games, business and programmingWed, 12 Mar 2014 10:55:50 +0000en-UShourly1http://wordpress.org/?v=4.0.1Software Localization is tricky.http://martingryner.com/software-localization-is-tricky/
http://martingryner.com/software-localization-is-tricky/#commentsMon, 06 Jan 2014 10:47:35 +0000http://martingryner.com/?p=184Localization is probably one of the most undervalued and overlooked aspects of software development. How hard could it be to load in a different language files after all? Sadly it’s not that easy, if done right.

Languages are different

About a year ago we were working on 2 games for Let’s do it world 2013 international cleanup campaign, which had to be translated to 9 languages. Obviously we built the game around our native Estonian and English language and had it translated to the rest. Everything started going to hell when we discovered that basic phrases like “New game” or “Submit to highscore” might be up to 6 word sentences in some languages!

User Experience vs User Interface

Only viable solution was to rework the entire user interface to match the longest possible phrase. It definitely didn’t improve the general look of the UI.

In ideal conditions we should have built separate user interfaces for different languages for best visual. However time constraints rarely allow for ideal conditions and we had to settle with the best option available – buttons scaled to match the longest possible string.

Quality of translation

The strings from last example could probably have been rephrased, which is far beyond our area of expertise. Even if you have a basic grasp of the language, you should always use native speakers for the translation.

I can speak Russian on A2 Elementary level. It pretty much means I can ask for directions to the hotel and buy bread. My co-founder at Aplefly Games can speak almost fluent Russian. Naturally I turned to him when I needed the translation of word “loading” for an app. Even though he knew the word out of his head I decided to check it over with a native speaker. It turned out to be a good idea as his proposed word sure did mean “loading”…“loading a gun”.

Language presentation

A whole separate subject is how to present different languages. Most visually appealing would be to use flags, which would work if you are aiming a specific geographic region. In Europe it’s fine to represent Spanish with the flag of Spain and English with British flag. It won’t work if your product is directed to international market. Same thing happened with the games I mentioned earlier. At least minute we had to remake the language selection screen – first thing the user will see when opening the game. The concern was valid, but the new representation didn’t look half a good. Driven by deadline, there was little we could do about it.

Automatic language detection

Automatic language detection is something often got wrong. Simply selecting the language based on user geographic location or nationality can lead to many false positives. Simply being in Tokyo does not mean I can speak nor read Japanese. I could be using a VPN.

Nor does being Estonian mean I want to use my software in Estonian. In matter of fact, most localization to small languages is often horrible, especially when you are used to English. Windows is a nice example – It’s filled with bogus phrases made up simply to have a match. This in turn means that many functions become completely incomprehensible.

For some reason Google decided to turn my gmail Estonian after they finished the translation. I never asked for it. I much prefer English as the language of the software as I’ve used it for years.

Only time when automatic languages detection is justified is if user already uses the operating system/environment in said language. It’s fine to use Estonian as a default language if users Android is in Estonian. However it can be hard or even impossible to detect in any other situation.

Arabic

Arabic localization is tricky enough to deserve its own paragraph. When working with arabic text, OSX recognizes it and adjust the typing experience accordingly (from right to left), which is great. Unless you are working with a set of strings you received from the translation company which need to be converted to your language file format and enriched with HTML. From my own experience I can say working with HTML in Arabic text can be real nightmare.

And it’s not just the text – Arabic version of the app/website should also be inverted from user interface point of view to feel natural.

Software localization should always be handled with care and not disregarded as something secondary. After all, it will be the bridge between your solution and a foreign customer.

]]>http://martingryner.com/software-localization-is-tricky/feed/0Advertising on AdMobhttp://martingryner.com/advertising-on-admob/
http://martingryner.com/advertising-on-admob/#commentsThu, 14 Feb 2013 10:16:10 +0000http://martingryner.com/?p=160We recently published Kids Jigsaw Puzzle Megapack for iPad and were looking for ways to get traffic to it without having a huge budget nor investing too much. Yet we were willing to experiment so we tried out AdMob for iPad applications. Following is just our experience and my conclusions, I wouldn’t mind hearing yours.

Usually PTC programs like Google AdSense and Facebook Ads are simply too expensive to advertise mobile applications. You might easily pay more for each click on AdSense than what your app sells for. Things are a bit better on Facebook, but you will probably still end up paying at least 0.1$ per click. Achieving positive ROI for 99 cent app with such click prices would expect unrealistic conversion rate.

However the lowest possible price per click for AdMob was just one cent. As our game has 3 unlockable categories each at 1.99$, the maximum we could make from one player is 4.179$ (with 30% Apple tax subtracted that is). These odds are way better than any viable alternative, one maximum paying customer can support over 400 clicks on the ad.

We started a campaign with 1 cent ads in selected countries in EU. The first few days were amazing, we got over 50 000 impressions a day with close to 700 click. The best part – the conversion (download) rate was almost 10%! However soon things started going downhill. Our campaign started on a weekend and we concluded later that click through and impression rates were about 5 times better on weekends than on weekdays.

The number of clicks and impressions started falling daily only raising on weekends. They never hit the level of first 2 days though. I wouldn’t be surprised if the system was deliberately built to do this and things would have improved once we raised the price of click. That actually makes sense as we use AdMob to monetize Number Game for Android. Minimum we make per click is also 1 cent. This means that AdMob is actually losing money on the cheapest campaigns. They have to pay all the income to publisher and will lose money on taxes and infrastructure upkeep.

We were quite content with the performance of our first campaign so we decided to expand it to our best selling game on iOS – Number game for iPad. The ad was rejected multiple times on grounds of “being misleading”. We changed the wording on the ad and in the end removed everything but the application logo. It was still rejected.

I contacted the AdMob customer support and apparently the reason wasn’t the ad itself. It was the landing page (iTunes app profile). They didn’t like that we used “superlative” claim “The most addictive logic game since SuDoku”. This shows that a) They haven’t played the game b) they can disapprove your ad based on any reason up to and including not liking your application logo/description or simply having a bad day.

The 10 day campaign ended and we had gone through about half of our budget. At this point the ROI of the campaign was almost profitable. As the app is monetized with in-app purchases we hoped that some users who downloaded it might make a purchase later on. Some of them actually did.

To combat the dropping impression/click-through rates we decided the change the settings of the campaign; we made it global. That was a mistake. We burned through the second half of our budget in few days with less than 1% conversion rate.

What did we learn

1) Do not select all countries. You just can’t expect Chinese traffic to convert as well as UK. You will end up paying the same amount for it though.

2) If you target Germany/France/Spain or any other major language make sure you translate your ad, landing page and app. We had very low conversion from larger non English speaking countries in EU as we only had our ad and landing page in English. That’s a pure speculation though, we didn’t try translations.

3) Don’t disregard Eastern Europe. Most of Eastern and Northern Europe speaks English and unlike larger countries don’t expect to have all content served in their native tongue. In fact, the second most profitable market after USA for Kids Jigsaw Puzzle Megapack is Czech Republic. We have sold more in Czech Republic than all of Central Europe combines.

4) Don’t use any adjectives in your app description or ad. If you do, AdMob will just disapprove it. Sarcasm aside, being disapproved for using a simple slogan is just plain stupid.

5) Weekend ad performance is up to 5 times better than during working days. Optimize your campaign accordingly.

]]>http://martingryner.com/advertising-on-admob/feed/0No, I won’t be your technical co-founderhttp://martingryner.com/no-i-wont-be-your-technical-co-founder/
http://martingryner.com/no-i-wont-be-your-technical-co-founder/#commentsThu, 10 May 2012 10:31:38 +0000http://martingryner.com/?p=99Hackers are becoming more and more like VCs, they often have to say “no”. Last summer, just before the 500 demo day I attended an event which required me to fill in “company” on name tag. As I was there just to help out Zerply for less than 2 months I didn’t feel adequate enough use their name. I didn’t bother to write my consulting companies either as obviously it wouldn’t have said anything. I decided to go for “Hacker”. I don’t think I would have been forced to listen to as many pitches had I chosen “writing checks”.

Every week I get approached by someone with a “game changing” idea. All they need is someone to execute it. “Hey, I’ve heard you are good at IT stuff, let’s start up!”. Well, no.

I don’t know you

Startups and babies have one thing in common; you don’t do them with someone you just met. We will have to work together for years, sometimes 24 hours a day. Chances are we just met and you just handed me your card or at least I don’t know you well. How could I trust you with part of my business?

There are thousands of issues that can ruin the relationship between startup founders, many of which can be foreseen. It might not even directly be your fault. Perhaps you have an over-controlling spouse that wants you home by 6 every day? If that’s the case, forgot about startups in general.

I’m not passionate about the subject

Passion is the fuel that powers startups, it helps get through tough times and get things done. My passion is games. It isn’t a hard and fast rule, but unless your idea has something to do with games I probably won’t be interested. People often approach me with a random idea they had, but without the spark in their eyes. That’s a sure sign of approaching failure and I’m not going to buy first class ticket on the Titanic.

You expect me to invest at least 60 000€

It’s reasonable to for MVP to take 6 months. We could release an earlier version, just to be ashamed of it, but 6 months is probable. If we consider just 8 hour work days 5 days a week it totals about 60 000€ by my normal consulting rate.

Time is money; why should I invest mine in your idea? And if I do, why should I accept only 50% or even less of the equity? After all, I have made an investment of actual work while you played around with excel spreadsheets and sent out a few press releases? Sarcasm aside, during first few months of startup development, hackers are doing all the work and taking all the risk. If we fail fast you have lost almost nothing whereas I have lost months of intense work.

You’re are easily replaceable

Let’s face it – good hackers are scarce resource. That’s why you are talking to me. However conferences, meetups and other places where startup industry players gathers to escape the daylight are filled with available marketers and business monkeys.

Only thing you have is your network. As a “business guy” in a startup I expect you to have Barack Obama as a 2nd level LinkedIn connection and Zuckys number on speed dial. Well, anyway much wider network than I have. If you don’t – I probably don’t need you.

jason_tko criticized the previous remark on Hacker News with: “This comment belies a stunning lack of understanding and respect for what actually goes into the business side of typical tech startups – the sales, marketing, user acquisition, hiring/team building, negotiations and every other thing that business co-founders actually do.”. This is completely valid and I probably crossed the line. Business is as important part of startup as is technical execution. Otherwise it might just be cool pet project. The question here is about delivery – I can deliver the technical execution, and can prove it with (technically) similar past projects. If the business side has a track recors of doing the same he falls into the category described in next paragraph.

There are exceptions of course, people who have already proved themselves, but that’s an entirely different ballgame. Experience in other fields does not matter – even if they come from tech industry, startups are nothing like your average business plan.

“I don’t know the IT stuff”

I don’t know anything about construction, medicine or farming. Common denominator here is, I’m not planning to do business in any of these fields. If you say outright that you know nothing about IT, it means you won’t respect nor understand my work, will set unreasonable goals and probably won’t be pleasant to work with. At least get some basic knowledge of the technical side if you want any hacker to take you seriously. And lose the darn tie.

How to make me consider it

I can think of two cases where I have seriously considered taking the role and might actually do it at some point.

One of them was a guy approaching me with an idea for a piece of software he desperately needed himself. Not desperately, but enough to invest money into it. He was straightforward from the beginning – he knew the industry, knew the problem and could provide the first clients and testers. Later on he hoped to sell it to some bigger player – not change the world/cure AIDS or eliminate hunger. It was barely a startup as he wasn’t hunting millions, just a quick cash and to scratch his own itch.

Second case was a team of 2 developers asking me to be the third. They had a better business model and market research than most MBAs that have asked me to join. They also acknowledged that the task was so big they would benefit from having another set of hands. I can respect that.

What did these two cases have that others haven’t? First of all, I knew the people for some time, one of them for about 10 years. Secondly they had well defined goals and business models. You are not Steve Jobs, you do not have a reality disorientation field. Vision is not enough. I want to see numbers and research before I decide to make the investment of my time and effort.

I am considering making separate business cards for people who want me to be their technical co-founder. They will only have a QR code on them – to this article.

]]>http://martingryner.com/no-i-wont-be-your-technical-co-founder/feed/4How I screwed up my first business (model)http://martingryner.com/how-i-screwed-up-my-first-business-model/
http://martingryner.com/how-i-screwed-up-my-first-business-model/#commentsTue, 01 May 2012 10:43:22 +0000http://martingryner.com/?p=84The story of my first business begins in 9. grade, year before high school. I found out that one of Estonian leading universities had a program for high schoolers to take real university courses online. Even though I didn’t exactly qualify by age I still decided to go for “Programming Basics” and “Programming in Java”.

If you are aware how WebCT platform works, feel free to skip the following paragraph. If not, the courses were organized by weeks (I think “week” in this case lasted for 2 or 3 real-world weeks). Every week we would get new materials, exercises and an assignment we had to submit by the end of it, plus the equivalent of final thesis.

The beginner course was complete disappointment, I clearly had a better grasp of C++ (and Estonian) than the lecturer, which was one of the reasons I decided not to go to university years later. Java course was rather interesting however. I hadn’t done any serious Java development before and it got me started. As I obviously had researched extra material by the first week, the entire course seemed way too easy since second, but I didn’t mind. The lecturer and other participants were awesome. That spark an idea..

..an idea that took about half a year from the end of the course to hatch. The level of the provided university courses was low, the entire process was way too long and the environment barely usable. I knew I could do better. Hence, at the age of 16 me, a law-student friend of mine and another guy from the Java Course incorporated what could be translated as “Online training group ltd”. The law student was an adult and had to take the only seat in board of directors as I couldn’t being underage. I still had the majority of the company though.

The third partner was also underage and couldn’t get his parents to sign the consent to become partner. So I held his share for the time being. Neither did we have the money for it, but we managed to get a loan – how we got there is worth an article of its own.

We started off with a simple goal – to teach programming to others like us. At time, it was nearly impossible to learn any development in our native language without attending university. To get into the “inner circle” you had to go through several layers of trolls in internet forums and IRC, we decided to provide the safe entry point. As we were targeting people our age we decided to keep the price low. Way too low.

We quickly built our training platform and started off with few courses. Things we’re going pretty well, we recruited other people (who we mostly knew from internet and were also our age) to teach platforms they knew. Our design wasn’t the best but a friend of mine had recently started a web development company. With the earnings from our first few courses we bought a whole new design from him and decided to build version 2 of the platform.

Trainings is a field where you need to be licenced. That was a bit problematic as we were just few teenagers. Luckily the law-student-co-founder discovered we don’t need a licence until we provide 120 hours of training a year. As all our courses were online, we could decide how long one lasts in real time” As you might guess we never crossed the 120 hour limit.

That’s when things started going wrong. First of all, we had a choice of either going on with the same model, or switching to information-product based approach. Instead of having training groups we would simply have packages of videos/text/tests and assignments. We decided to stay with the original idea. In long run, that sealed the doom of the company. From there one, most of the development was done by the other “technical cofounder” (we obviously didn’t use such terms nor considered us a startup. I’m sure I didn’t even know the term startup). More precisely whenever he got an idea he just added it to the system without consulting anyone else. In time the platform grew to be a horrible mess from backend point of view.

When a young ambitious designer joined us he completely remade the site. However the code-base was unreadable. We later on called it “hieroglyphic code” as random letters were used as variable names and the author failed to answer any questions I had. I’m pretty sure he couldn’t read the code himself.

At one point I just gave up and decided to write the entire system from scratch dumping all his code. I strictly forbid him to ever touch the source code again. From that point on we didn’t get along anymore and didn’t speak for long time. That wasn’t the only reason of cause. He wanted to keep on just giving almost-free courses in “hipster-like” environment, I wanted to build a business. He didn’t even ask for his share in the company when he got 18. In sake of honesty, he later asked for a share from the courses which used his materials.

By that time we had noticed that our initial target group was wrong. There were some young people taking our courses, but majority where companies and even universities training their IT departments. Almost all participants were way older than us. We didn’t draw any conclusions from that and moved on with our initial plan.

The problem was the initial approach had proven to be flawed. It required too much commitment and engagement for trainers point of view, for relatively low return (we paid our trainers 40% commission from net profits of the course). But we were sure the technology was to be blamed. The administration interface was rather uncomfortable, it took some time to grade all the works and set up the materials for new course). New system fixed all that.

So on the third year of operation we upgraded our platform again, instead of upgrading the flawed business model. As you can guess, the problems didn’t go anywhere. Trainers constantly forgot to update materials/answer questions/grade assignments. Even I grew tired of printing countless diplomas for graduates and sending them out almost every week. Some of the courses cost less than 20 euros, so we had loads of clients yet we hadn’t made any substantial profit.

Things got so bad that I couldn’t motivate myself nor the trainers to go on with the courses anymore (despite the contracts). Once I had to refund 2 courses because the trainers didn’t bother to add new material I knew enough is enough. We just stopped and in the end, took the platform offline. What we were doing was just not motivating for our trainers nor for me.

Our trainers got so little at the end of the courses it didn’t keep them coming back daily. If one had actually been teaching 40+ courses at time (which would have taken less than 8 hours a day) he could have made above industry average salary. The problem was, no one taught more than 3 courses at time.

Most importantly, what did I learn from my first 3 year business venture?

1) Just do it. Even though we failed I don’t regret the try. I got the taste of entrepreneurship at 16, at 19 I was already experienced in fields of contracts, accounting etc. We didn’t go bankrupt, we just stopped the operations while actually having some money in the bank account. After another quick failed venture I started my consulting/software development company Elkest Solutions which pays the bills ever since.

2) Hire an accountant even if you think you can’t afford one. I’m never ever planning to do any accounting myself. I’d rather be mauled by a bear than do another fiscal year report ever again.

3) Don’t be afraid to piviot. I could be polishing my Porsche right now instead of writing that post if we had dared to make the move.

4) If your product/service is worth it, don’t be afraid to charge for it accordingly. Had we raised our prices over time, we might have developed into something much bigger.

5) Be very careful with who you go into business with. That’s something you’ll hear repeated time after time, but won’t understand until you’ve experienced it.

6) Technology won’t solve all your problems.

7) You are never too young/old for anything. Our clients included several universities and public companies who were satisfied with the courses…mostly taught by 16-19 year olds.

8) I personally learned to deal with customers and complaints. I can now keep calm talking to any client (which was a challenge at 17), even if I have to explain him how to type URL into an address bar.