Taxes

My father seemed to know everything. He loved to explain things, and inconspicuous questions often triggered elaborate lectures. So one day, when I was maybe eight or nine years old, I asked him about taxes, and he started to talk.

I clearly remember the visceral reaction I had to this lecture. Most times I would get bored after a few minutes talking, but this time was different. I was outraged by the things I learned. When you earn money, my dad explained, you need to pay income tax. I couldn’t believe it. How deeply unjust this seemed. You earn money, and then they take it away from you! But the lecture didn’t end there. He continued to explain the Austrian V.A.T. (sales tax). So any time you buy something, you have to pay another 20%, after you already paid income tax. This was going from bad to worse. I couldn’t believe what a world we lived in.

My father tried to explain the purpose of taxes, but it took some time before I understood.

Today, I’m happy to pay taxes.

We have a very high standard of living in Austria. Our roads are well maintained and safe. Electricity, water and gas are highly reliable. In a medical emergency, an ambulance or a helicopter arrives within 15 minutes to take you to a well equipped hospital. Crime rates are low. There are very few homeless people, and we have shelters for most of them. Public schools are so good that only the most uptight conservatives feel the need to send their offspring to a private school.

All this is very expensive. We can afford it because we all pitch in and contribute. We pay income tax, capital gains tax, we have mandatory health insurance and unemployment insurance, value added tax, and so on. It’s a significant chunk of our income that we have to give away.

So naturally, a lot of people are complaining that we are paying too much taxes. Many people say that taxes should be lowered. Working more should pay off more. We should be able to spend our hard earned money ourselves. It seems that many of us still feel the outrage I felt as a kid, and never learned to appreciate the good things that our taxes make possible.

Of course, some of our tax money is spent in questionable ways. Why Austria needs to spend billions on fighter jets to guard our tiny air space is beyond me. Others worry that we spend too much money on refugees, or that the public sector pays too much for employees that work too little. There is also some level of fraud and corruption everywhere, ranging from individuals lying on their tax forms to politicians pocketing millions from public funds.

However, that is no excuse not to pay taxes, and it’s not a reason that taxes should be lowered. Sure, the system is imperfect, but destroying it would make it worse. We can’t have all the good things without paying taxes.

If you are unhappy with the ways our money is spent, please do something! If you think too much of our money is spent on the wrong things, complain about it! Petition your local government, write to the ministry, start a movement!

But don’t ask for lower taxes. Lowering taxes will not prevent the bad things. We’d lose the good things first.

 

Subscription Pricing is for Stagnating Products

I make desktop apps, and sell them for a one time fee. It’s a really simple business model, and my customers seem to like it. After you bought one of my apps, you can use it as long as you like. I believe this is a good deal for my customers, it’s a good deal for me, and it’s how it should be.

However, a lot of software publishers have been switching to subscription pricing lately. Usually the argument is that modern apps aren’t static; developers continuously work on bugfixes and new features; and if people keep using a piece of software it’s only fair if they keep paying for it. Allegedly it’s not sustainable to deliver free updates to people who only paid once.

But how come I can make a living with buy-once apps?

The secret is growth. As long as my app gains new users every day, new people will buy my app. And it doesn’t cost me any money to give updates to existing users.

So why are other companies so eager to switch to subscription pricing? I believe the answer is that they are stagnating.

Microsoft and Adobe are a perfect example of this case. Both companies completely dominate their market. They have little perspective to grow, since everyone who needs their software is already using it anyway. Paid upgrades won’t help. Many designers would be happy with a version of Illustrator that is a couple of years old, and the typical office worker is probably even opposed to upgrading their good old copy of Word. Thus, the only way to increase their revenue is to charge their existing users more. Hence, subscription pricing.

As a small independent developer, I’m in the opposite position. I’m far away from market dominance, my user base is growing every day, and I don’t need to charge recurrent fees for users of my software. And it works out just well.

The one thing I don’t understand is why smaller companies are also trying to switch to subscriptions? Are they also suffering from a stagnating user base, and hoping to increase their bottom line? If that is the case, they are doomed — subscription pricing will only diminish their user base even faster, and won’t fix the underlying problems that led to a lack of growth in the first place.

My Very Own Office

I had a private office for some time at university. Most students were offered a desk in a shared office, but due to the smouldering turf wars at the institute it was decided that I should work in an unused assistant professor office. I was a placeholder, to make sure no other research group could claim the space. I didn’t care too much about office politics, but I quickly grew fond of my very own work space. I had a large old desk with drawers and a spacious filing cabinet. When I closed the door, there was nothing but a slight hum from my workstation. Peace and quiet, only interrupted by the occasional faint sound of footsteps down the hall.

I did like the company of my colleagues. I bought a small Kenwood espresso machine and some cups, which quickly made my office a popular location for occasional coffee breaks. A bit of office gossip was a welcome distraction after hours of staring at the same formulas, waiting for an elusive epiphany.

Of course all that abruptly changed once the new assistant professor arrived. I had to remove the espresso machine. Workers carried out the old desk and filing cabinet, painted the walls, and brought a new desk for the new owner.

I haven’t had the luxury of my own office ever since. I’ve worked out of shared offices, from home, and from co-working spaces. Working conditions varied wildly; sometimes it was pretty quiet, but sometimes it was impossible to work. Especially at home, after my first kid was born, it slowly became impossible to concentrate.

Around the summer of 2015, my newest app Postico really started to gain traction. My efforts to become an individual software developer were now starting to pay off financially as well. Across all my apps, I had reached around 5000€ of monthly revenue. I decided that was enough to afford a real office for myself, so I started looking for office space.

It turns out that small offices are neither cheap nor readily available. There were plenty of ads for large offices, but almost nothing that was suitable for a solo developer. The offers I got were either windowless or otherwise uninviting; not a place where you’d like to spend your workday. One realtor showed me a small office in a commercial building. There was a shared break room, with the filthiest coffee maker I’ve ever seen. The kitchen sink looked like it belonged in some industrial complex, and in a corner of the room there was a small toilet, separated from the rest of the room with thin dividers. And it wasn’t even cheap!

When my initial search didn’t pan out, I started to look at small apartments — and I quickly found what is now my very own office. It’s 50 square meters, has a nice kitchen and bathroom. It’s right in the center of Linz, in one of its typical old town houses. It has a very high ceiling and large windows. The building has a beautiful facade, and a door made from wrought iron and glass.

DSCF0397

For the past few months I have now been working from this office. It’s wonderful. Most of the time, I work completely alone. Occasionally, I do miss the socialising aspect of a shared office, but once I’m “in the zone,” I forget everything else and enjoy the distraction-free work environment. Whenever I’ve had to work in a shared environment, I felt a bit tense. It made me ever so slightly uneasy, when there was someone potentially watching me. But when I’m alone, I can relax. I can dive into my work undistracted. And when I get off-track and end up surfing the web aimlessly, it’s nice to know there’s nobody here to judge me but myself.

Customer Support

It should be trivial to contact customer support. The best way is to have an email address like support@yourcompany.com prominently visible on every page of your website. Don’t use web forms and don’t make people select arbitrary options before contacting support. Under no circumstances expect customers to create an account on your website before they can contact you.

This should be obvious if you have any sympathy at all for your customers. It would seem spiteful to require a customer, desperate enough to contact customer support, to jump through hoops just to contact you. Plain old decency towards your fellow coinhabitants on this little planet should make you understand that.

This is the point where most people will say something like “but we don’t have the capacities to deal with all those emails from our customers. We must put some obstacles in their way to avoid them from flooding our inbox.” And at first that sounds absolutely reasonable. Now, in my opinion you should just hire more people to deal with support if you can’t handle the volume. However I understand this is not possible if your business model requires you to serve large amounts of customers with limited staff. But reducing the number of support request by making contact harder does not solve the problem, it merely hides the issue. The problems of people that can’t find a way to contact you don’t magically disappear. These people will probably get angry, they might abandon your product, and you’d be none the wiser because they can’t contact you!

The most dangerous part of this is that you have no control over which customers you turn down. Requiring user accounts or filling web forms with half a dozen required forms will make many people change their mind about contacting you. But you have absolutely no way of controlling who will get through. Do you prevent people who waste your time from contacting you? Or do you risk losing your most loyal customers because they can’t get help once they need it after happily paying you for years?

I’d like to draw your attention to a very significant group of users that you are sure to scare away: potential new users. Often, when people first try a product, they will run into bugs or issues because they will use your product in unexpected ways. These potential customers usually do not care the slightest about your product. They’re just evaluating it and they will happily conclude that your entire product is crap if they run into the tiniest flaw during initial testing. It is essential that these people get help as quickly and simple as possible, or you lose your possibly only chance to make them your customers.

Note that I’m only talking about making it easy for customers to contact you. I didn’t say that you need to actually provide support for every issue. It’s absolutely reasonable to tell a customer that their request is too complex or too specific to be handled by customer support. You may tell them that they need to get paid support to answer their specific question. I’d even go as far as to say that you don’t even need to answer every request; for example if someone sends you an insulting email, there’s absolutely no reason for you to respond.

The important part is that it is now your decision which customers to help. If you are overwhelmed, you get to pick and choose which support requests are important enough to follow up on. If you scare customers away with pointless bureaucracy before they contact you, you have no say in which support requests you end up with. You’ll probably end up with only obnoxious people contacting you. But if you filter requests after people contact you, you’re in control. You can make active decisions.

The reason why it’s so important to let customers contact you is simple: it’s the most direct way of customer feedback. No amount of usability testing or customer surveys are going to tell you about how customers use your software in the real world. You’ll only get a glimpse of real problems by listening to customer support requests. Support requests are the quickest way to discover rough edges and pain points. In my experience, most support requests deal with the same topics again and again. This means that dealing with them is pretty simple; you can prepare responses to most common queries and don’t need to spend a lot of time per request.

But the real opportunity is of course to fix the common pain points underlying the most common support topics. For example, I often got support requests from customers asking how to activate their license. The answer was simple; just double click the license file. I added instructions to the purchase confirmation email, I added instructions on my website and in the documentation. People still asked me. Nobody seemed to get this intuitive way of activating my app. So finally, I put a button labelled “Activate” in a prominent position. It seemed inelegant, but after that, I was never asked about activation again. By paying attention to customer support, I was able to remove a pain point for many users, that would never have occurred to me on my own. I had thought it was completely obvious how to activate my app.

If you fix enough of those pain points, customer support requests will go down; not because people don’t contact you, but because people don’t have any problems anymore!

Work time and productivity

When you’re self-employed, you can choose how many hours to work. Many people end up working even more than employees — you feel guilty when you’re not spending every waking moment working on your business. I fall into that trap too, sometimes, but I’ve realised working long hours isn’t necessary for making a living.

Currently I work about 20 hours a week. I take my two boys to daycare at eight, and pick them up at noon. This gives me four hours of uninterrupted work time, five days a week. Sometimes I wish I had more time to work, but on the rare occasion that I do work longer hours, I’m not really more productive. Limiting my work time somehow encourages me to make use of the little time I’ve got.

When you’re working on a project that takes a long time to develop, it doesn’t make sense to rush anything. It’s more important to be persistent. I try to work on my product every day, and every little bit I add makes my product a little better. My customers don’t care if it took me a week or a month to implement a feature. They only care if it works.

I work slowly. I don’t subscribe to the ideas of “rapid iteration” and I don’t think you should “fail fast”. Instead, I try to work at a slow but steady pace. I try to make sure I get closer to my goals every day, without burning out on the way to get there.

There’s a nice side effect of working slowly: You have lots of time to think about things you are doing. When you work 4 hours per day, there is a lot of time left for your mind to reconsider your solutions, and to come up with smarter or more elegant ways to solve the problems you encountered. I think this is especially important when working on a large project. When you’re banging out code 10 hours per day, you won’t have time to reconsider any of the dozens of decisions you made that day.

I retired an iPhone app

Almost two years ago, in January 2013, I made an iPhone app. It took me about two weeks from start to finish. I ported my Access database reading library from OS X to iOS. Then I added some drawing code that I made for an app I never released, and assembled a simple app for viewing Access databases on the iPhone. I named the product “Access View” and uploaded it to the App Store.

It was initially rejected. Since I was pretty busy, I didn’t really care about that. I only bothered to respond to the trivial rejection reason about a month later. After some tiring back and forth with app review, it was finally accepted and available for sale at a price of €1,79.

Initially I got nice feedback, and a bunch of feature requests. I made around 5 sales a week, so I decided to wait with implementing new features. I said to myself, if sales ever pick up, I’d start improving the app. But sales never picked up. Then iOS 7 arrived, and my app looked really outdated all of a sudden. I thought to myself, well, if I have some spare time, I’ll update it to iOS 7. I never had any spare time to update it.

So now I had an outdated app in the App store, making very little revenue, and no plans to improve it. At some point I decided that I might as well make the app free. Even if I don’t make any profits from it, maybe some people find it useful. It was also a sort of experiment: How many more people would download my app if it was free?

The first day that the app was free, 1000 people downloaded it. I was thrilled! I was excited to see the number on the next day, and was a bit disappointed when only 350 people downloaded it. The peak was quickly gone, and stabilized at around 10 to 20 downloads per day.

I got an occasional email suggesting new features, and I always replied that I didn’t have time to implement them. I figured, it would be better to have a not very good free Access reader on the store rather than none at all. And it felt good to give something away for free!

Then iOS 8 arrived. A feature in Access View broke, and users started emailing me about crashes in my app on the new iPhone. That was when I decided it was time to retire my app. I have no time to work on it, it’s not generating any revenue, and it’s broken. I logged into iTunes Connect, removed the app from sale, removed it from my homepage, and started writing this blog post.

Access View was downloaded by 2500 people and generated a revenue of 700€. It was my first attempt at selling an iPhone app, and for the time being it will also be my last.

I learned that even if an app takes only two weeks to develop, there’s a lot of additional effort connected with distributing it on the App Store. Dealing with App review, making a website, handling customer support… all these things required more of my time than actually programming the app.

It’s important to focus. I’m good at making Mac apps, and discontinuing my iPhone app leaves more time to work on MDB Viewer,  PG Commander and Postgres.app.

Leaving Academia

I recently left academia. I was a graduate student, and I had just passed my qualification exam. I should have started to work on my grand project that would lead to my thesis. But instead I decided to leave. I decided that I’ve spent enough time being educated.

Being in grad school just started to feel weird. I started thinking about all the things I’ve accomplished in my life. I’ve participated in the “physics olympics”. I’ve graduated from high school. I’ve graduated from university after studying physics for 6 years. I’ve worked on multiple archaeological web databases on the side. And yet, I was still going to school, and I still had to write one exam after another, proving that I was worthy to continue. After my qualifying exam, I just got sick of it. Sick of having to prove to other people whether I’m worthy or not. I know what I can do, and that’s enough.

I started thinking about why I was going to grad school. Was it to get a better job? I was pursuing a PhD in computer graphics. With that degree, I would have two main options: attempt a career in academia, or look for a job in the entertainment industry. A career in academia would just require even more proving my worthiness. As a postdoc I wouldn’t take literal exams, but I would submit lots of papers, hoping that they would be accepted, or apply for grants, or interview for better positions. I’d constantly be evaluated. That’s not what I was looking for. So I’d have to look for a job in the entertainment industry. But it turns out that this is a hard business. It’s extremely competitive, and people work extreme hours. There’s constant pressure to finish a project on a looming deadline, only to start with the next stressful project.

If I’m not going to grad school because of job opportunities, what other reasons are there? Pursuing my interests? As a PhD student you get to choose some interesting problem and work on that, right? That’s what I naively imagined before I started at the institute. Some day at lunch I told my supervisor about this idea I had. We could take his fluid simulation method from computer graphics and apply it to a problem related to molten polymers. There was this experiment by a group of applied physicists that would fit nicely. He asked me how many people would be interested in the problem. Maybe a handful, I said. And then I realized that there was no way I could work on that problem. Success in academia is measured in the number of citations your paper receives. What point is there in writing a paper that is only interesting to such a small audience? To be successful you need to target a large audience, and not just pursue whatever obscure problem takes your fancy.

There seemed to be only one reason to continue: If I’d finish grad school, I could introduce myself as “Dr. Egger”. I’d have a really prestigious degree! But is that really worth four years of my life? I myself tend to not think very highly of people who care only about degrees. Most people I care about don’t care about degrees. It seems that going to grad school just for the sake of having a degree is not a very good reason for me.

Why was I continuing with this? I had applied to the institute because I didn’t want to stay at my previous university, and I saw a poster advertising a really nice graduate program. Applying seemed to be the natural thing to do. Was I just working here because I was accepted when I applied?

So I left academia. I decided it’s time to stop educating myself, and put all that education to some use.