It took me a year to snap out of it.

One year to realize that I had to change my course of action; that I was clearly not doing the right thing.

When I left my job, I had two years of saving. That sounds like more than enough time to succeed. Today, I am convinced that it’s exactly because I had so much time ahead of me that it was not able to do the right calls.

Friends, family, and hurricanes: here is the next piece of the story that leads me to where I am today.

Takeaway

What happens when:

  • You keep improving things, just because you can
  • You don’t validate your core features
  • You don’t wait for your first users before adding features

With a bonus section on social life when not in the office.

Read the previous post

Fear of not being good enough

The Fear of not being good enough is the main reason why the development of Notecompanion dragged out forever. It is the reason behind my never-ending last week and the fuel for my pointless race against competition.

My definition of “not good enough” while working on NC is:

  • Un-professional looking interface
  • Bugs (even one is too much)
  • A number of features that seems too low compared to the time spent on the project

And in my head, not being good enough would mean:

  • Not getting any users for my app
  • Getting Judged/Feeling ridiculous

One would believe that not getting users would be the worst, but the more time passes, the more worried about the second point I become.

I left everything to start this adventure. My friends, family and professional circle were witness to when I claimed: “I am taking up the challenge!”.

How ridiculously arrogant would it sound now if I were to release something lame after spending so much time on the task?

It’s like I can hear people’s thought already: “Wait, that’s all you can do? And you thought you could make it?”

The more time I spend on NC, the higher the quality bar I set for myself. Only, the bar raises faster than I can catch up with it.

Being perfectionist is not a quality

What you want to be is “efficient” with high-quality standards.

Here is the difference between perfectionist and efficient:

  • Being efficient means having clear quality goals as well as criteria defining what is good enough to reach said goals.
  • Being perfectionist means that you are unable to set such criteria and just keep improving until someone stops you. You don’t know what is good enough and how to make calls that can save your whole work.

When August 2017 comes by, 6 months past my expected release date, I am completely in the second category. I improve aspects of NC just because I can. Not because it’s needed or because my users will want it.

Just because I can.

Business model

My idea for NC is to go with freemium. A free service, with some advanced features for premium paid accounts. I am thinking about making it $1 a month, as I don’t have big pretentions. Taking into consideration that, on average, 1% of users switch to premium, I would need 100.000 users to be able to live off the app.

Once again, NC was supposed to be a 2 months projects so I never really considered this number. I just wanted to get an idea of how hard it would be to get users and market a product, before moving on to the next idea.

Just before summer 2017, a friend of mine proposes what seems like an interesting alternative: going B2B – Business to Business.

Instead of trying to sell to the mass, I could just convince a dozen companies that my service is what they need.

I could use my connections to talk to game companies directly. I can even start with CDProjekt RED, as I know 90% of people there.

I remember the feeling of relief that took me over at the time. I am seduced by the idea and I finally feel like I know where I am going!

Little did I know that this also doubled my scope…

Trying to make something that CDProjekt would use puts way more pressure on me than trying to seduce 100k random users…

To make it work, I need a security tight enough to avoid any of the famous leaks that happen in the business. I also need to make sure a team of hundreds can work flawlessly on the project.

Many things that isolated users can forgive are just intolerable in a professional environment.

Getting 100k users is surely impossible and my friends manage to convince me that I don’t need to add so much to what I have to provide an interesting product.

So I get to work.

One Summer, Four hurricanes and no time to spare

Summer comes around before I realize it. It also comes with a little surprise…

For the first time in 6 years, my parents arrange to have me flown over to Guadeloupe.

A one-month (and a half) holiday trip and the opportunity to see some of the family and friends that I haven’t seen since I left school.

Unfortunately, as I am already 6 months behind on my schedule, I am not really happy about the idea of a one-month break. All I can see is another month of delay…

So I settle on a deal with myself: I would take at least 2 weeks to rest, then I would spend no more than half my days working on my project.

As if…

I get to work on the very night of my arrival. Not on NC, but on a much more innocent looking side-project.

Shinoken, my side project

I will talk more about Shinoken in later posts, but I just need to give some explanation here. I don’t want you to think I was completely crazy to start a new project while NC was already giving me so much trouble.

Shinoken is an online fighting card game that I designed on a weekend, while I was trying to find a way to make pen and paper RPG combats more interesting. As in, not based on dice rolls or luck. I designed and prototyped the whole thing in 3 days… so it’s not like it was meant to be anything more.

I am still very happy with the game mechanics. If you want to give it a shot, you can play it here: https://www.playshinoken.com (It’s better with a friend, so find one).

Anyway, I shared the game on some forums and got a lot of positive feedback. But as I didn’t have time to spare, I had decided to not work further on it. It was just a nice way to get my mind off NC.

However, a few weeks before my trip to Guadeloupe, I received an unexpected proposition. The son of my landlord, who study programming, asked if he could help me with any of my projects. He would do it for free, as he was just looking for a way to hone his skills outside of school.

How could I refuse?

NC was quite a big project, but Shinoken was just getting started. I saw this as the perfect opportunity. He would be the main programmer on Shinoken, while I would simply oversee his work. That way, I would be able to have two projects running in parallel, without taking too much of my time. All the better if Shinoken becomes a success. It’s a win-win situation, as I won’t lose anything if it doesn’t.

I only had some minor things to set up so that the code would be ready for my new partner. I wanted to get him started as soon as possible so that even while I am on holiday, things could progress.

That’s how I end up opening my laptop to get to work, only a few hours after arriving at my parent’s place in the Caribbean.

Eventful Holiday

This holiday turns out to be pretty intense. Opening my laptop to do a “quick-work” on Shinoken had the same effect as “firs-one-is-free” drugs. After less than a week of break, I get back to it.

Trouble also comes from being with my family. Last time I got to spend so much time with them, I was only 22 and barely an adult. I’m 28 when I stay with them and several conflicts emerge with my father, mostly from the fact that I can’t really get ordered around anymore.

But if only that was it…

If you have been checking weather-related news during summer 2017, you probably heard of what happened in the Caribbean this year. Not one, but four hurricanes hit us during my stay.

And the last one is nothing less than the strongest hurricane to pass through Guadeloupe in the last 30 years.

My parents’ place after hurricane Maria
More fallen trees

Apart from the mental impact, it also means weeks without electricity or spent repairing the damage… That much less time dedicated to making progress on NC.

Summers eventually comes to an end and I get back to good ol’Warsaw… not as relaxed as I thought I would be.

At this point, I am probably at the lowest in my faith in the project.

I am so late that it becomes ridiculous. I am clearly doing something wrong but what? Most of the mistakes I am talking about in this blog are obvious now, but when I am in the midst of it all I just can’t see it.

Fortunately, I am only a few months away from opening my eyes.

Fitting to a market

I was saying earlier that being perfectionist mostly means that you don’t know where to stop. That was exactly my case.

And the reason why I didn’t know where to stop is that I never took the time define my core feature(s).

My core feature is the thing that my app is supposed to be all about. The one functionality that all my users will be interested in, and that I will use to describe the product.

If you ask me now, I would say that it’s the real-time filtering. But by September 2017, I just can’t tell. I have built NC to:

  • Write notes and access them through real-time filtering
  • Filter through other users public notes
  • Work in groups
  • Create an information trail by allowing everyone to link notes from different users
  • Create reminders from text

Because I don’t focus on my core feature, it gets swallowed amongst the rest and becomes inefficient. As of today, the filtering that is the whole point of the app is way to slow in my opinion. It lost most of its charm; which hardly makes it a selling point anymore.

Notecompanion was not my passion project. It was a project I loved but it was never supposed to take so much of my life.

Because I didn’t do a product/market fit, I wasn’t even sure if there was a need for it.

The whole drive of the production was that I was constantly thinking that “if I don’t have this or that, nobody will want to use the app”.

Having a well-defined core feature would have helped me decide on when it’s good enough. It would have made me efficient and allowed me to release earlier. An early release would mean actual users feedback, something tangible to decide in which direction to move next.

Something that I regret a lot now (actually since a few weeks) is not working on a subject that is in my line of work. I don’t necessarily mean working on games – as I also enjoy making tools  – but at least something related to game development.

When I choose something to work on, I go with whatever gets me excited. However, developing an app is not only about you. It is mostly about who you are selling to.

If I would be developing something that is both exciting for me AND in my line of work, I would be able to connect with potential users more easily and spread the word further.

If you haven’t yet, you can have a look at my post on the subject

My app can be useful to 2 million people in the world,  if I have no way to let them know that it exists, it won’t go anywhere.

I was wrong to think that just doing what I like was enough.

The impact of others

A lot of people have advice on how to do things better.

When I talk with friends about what I am working on, about 80% of the time, they have the greatest idea on what I should be doing instead or what feature I should add.

The problem with advice on how to do it right is that they imply that “you are doing it wrong”.

After almost a year of working all by myself in a dark, I just want to hear, just once, that I am doing the right thing.

I don’t know how other solo developers feel about this, but please consider this if you have one of them in your entourage: how helpful is your advice really gonna be?

Sure, your idea is probably great, but how do-able will it be for the person you are talking to?

As I am trying to release NC, any advice that sums up to doubling the amount of work I need to finish it is basically useless.

It’s simply not happening.

It does raise my stress level, though, as I start thinking about how much I would need such feature.

In the same way, advice that sounds like “give up”, no matter how sensible it is, just won’t do.

Of course, people don’t come to me saying things like “Give up man, you’re bad at this”. It’s more like “Maybe you should move onto the next project and let this one go?”.

Any suggestion to give up gets immediately blocked off in my brain. If I start giving up when it gets hard, how can I hope to achieve anything?

To me, good advice are the ones that answer the question “How to make this vision happen as soon as possible?”.

If you see that someone is not going anywhere with a project and you want to help, don’t tell them to give up.

Instead, I would suggest helping them to figure out how to “close” it as fast as possible.

There is much more to earn and learn from releasing something that is not exactly what you wanted than just plainly giving up on it.

If not for the experience, at least for the mental health of whoever worked on it for so long.

This only applies if you are a solo developper. Not a company that needs to spend millions on marketing at release. In this case, yeah, just giving up might be wiser I suppose.

Bonus section: my new social life

In this part, I won’t be talking about production per se, but about life around it. If you are interested in having a glimpse into what social life as a solo entrepreneur can look like, feel free to read it; otherwise you can just skip it.

The first consequence of leaving work was losing contact with my ex-coworkers. Even those who were close to me didn’t necessarily have the time or energy to go out after work.

Not seeing them during the week means only seeing them on weekends.

Skip a weekend or two and before you notice, you spend weeks without seeing someone. This can kill any but the strongest relationship.

At first, I spent a lot of energy trying to maintain my relationships with ex-coworkers. After all, by living in Poland, 99% of my friends were work acquaintances. What takes energy is not constantly checking up on everyone, it is committing to asking people out when they obviously look like they just want to get some good rest.

Eventually, I realized that I was spending more energy for people who I had thin connections with than for longtime/childhood friends.

So after some time, I stopped using Facebook. I started to focus on contacting people directly, instead of just mass-sharing slices of my life to whoever was on my social network.

As a result, I became less surrounded, but I didn’t get any feeling of loneliness. I felt closer to people who cared the most about me, which compensated for the rest and felt more right.

It’s crazy how much love and support you can get from one or two people when you give them more of your attention.

I also have much more free space in my brain when I don’t have to absorb unimportant life-facts about a few hundred peoples.

Before leaving work, I was extremely worried about how my social life would look like. In the end, I believe that this alone time was a great opportunity for introspection. I got a chance to pause and focus on what was really important to me.

And that feels just right.

Coming up

The next post will close the curtain on my story with Notecompanion.

I will approach the subject of outsourcing part of my work, like the development of the mobile version, as well as my introduction to the world of startups… almost a year after I started mine.

Finally, I will get to tell the story of how I came to break out of the development loop I was stuck in, thanks to the one piece of advice that would shift my entire mindset.

 

Stay tuned.

 

If you want to get notified when a new post is published, subscribe below. There won’t be any spam. Only a mail notification when a new post is published.

Spread the love

10 Thoughts to “Perfectionist to a fault: not knowing where to stop”

  1. Hey Ryan,

    Great article again. I think the perfectionist trait is present in almost all developers, and it’s quite easy to fall into its trap. As I got to experience it in my job, sometimes, you really just have to release something for the clients, and cannot “wait” to have the product just as you would like to have it. Also, really good remarks about the dangers of not focusing on the core features of your work.
    The Bonus section was very nice to read and I think, keeping a social life is an important aspect of entrepeneurs/solo devs. Eric Barone, the guy behind Stardew Valley, told in an interview about how bad certain periods of the development got, because he did not get out and meet friends/family enough.

    I hope things got or will get better for your family.

    Keep up the good work !

    1. Hey Khai, I am glad you enjoy it 🙂
      Yeah, I think having a social life is very important. The point that I am making at the end is not that I gave up on any social life… it’s that I have given it more focus.
      Things already got better for my family, thanks for checking up 🙂

  2. Hey Ryan,
    You know what saddens me the most about your story? Not the fact that you abandoned your impressive career and left a dream job because they “weren’t treating you right” and weren’t paying you a London salary in Poland, not even the amount of NDA’s you recklessly broke to write all those articles… but the fact that you left your career to realize your dream of making indie games… and now you make mobile apps instead.
    I’m sorry if this sounds a little insensitive but I admit I’m still dumbfounded a little. Don’t get me wrong – I’m still very grateful that you decided to share those very intimate things and I enjoy your posts a lot.

    1. Hi Danko,
      Can’t help but getting a very judgmental vibe from your comment. I have told my whole story, so if you believe that I left on a whim, or that I wanted a London salary (which, I am sure you remember, I refused), there’s literally nothing I can add.
      I am actually quite happy with my career choices. Games are still my passion at the core and I cannot see myself doing anything else in the long term.
      I do enjoy the things that I am working on a lot, though. Even now, I am not feeling any regret about the fact that I didn’t start with a game project. If I could go back in time, if anything, I would probably start working on a tool for game developers.
      My dream now is to be able to do both games and tools for game development.

  3. Hey Ryan

    A great article once again. It’s thrilling to see you switching from one industry to another because the difference between the two will give you perspective, enable you to better understand where you come from while learning from the new paths.

    My take on perfectionnism is that when you create a video game with ambition and the best people in the world, perfectionnism is what makes you crunch, delays games but ultimately (alas not always) make your game stand out, and step into art zone. Hence the blood, sweat and pixels. It’s the same with movies : when financial guys press too hard, the end product becomes shit. History of video games is filled to the brim with games that were released to early (FF XIV) and were almost fatal for studios. The french saying “on n’a qu’une seule occasion de faire une bonne première impression” is so true.

    And now you’re dabbling in good ol’ software, you explore features, try to engage with customers and develop iteratively. And you’re alone, so there’s only so much you can do. So I’d say that yes, your mindset will need to change…and this blog is clearly helping you accelerating the maturation process. So in a way, this is my answer to Danko : it may seem difficult to understand Ryan career choices (although by reading all his blog I think it’s quite clear), but ultimately it’s the learning that matters.

    Go get them Ryan !

    1. Thanks, Stephane 🙂
      I believe that being perfectionist has more negative than positive consequences. If you set yourself for efficiency, nothing stops you from raising the quality bar very high and achieving great results anyway. The most important for me is to have a clear vision of where to stop before you even get started. Perfectionists are usually people who can’t stop themselves without some external factors, which I don’t think is good for an entrepreneur.
      I completely agree with you on how working on software opens my mind to a whole new world. I learned so much already!
      Thank you so much for your wishes, this kind of words are what keeps me going 🙂

  4. Hi Ryan, thanks for another awesome post!

    Just checked out Shinoken; it’s a great concept. Most of the games I’ve been playing lately all have RNG baked into them in one way or another, and I’ve definitely been through a few D&D trash mob battles that’ve gone on for way too long just because of consecutive unlucky rolls.

    Seeing Shinoken reminded me of this tabletop RPG called “Phoenix: Dawn Command,” where instead of die rolls for combat/skill checks each player drafts a deck of cards that represent their skills & attack/defense values and then react to situations based on the cards currently in their hand. I definitely felt more invested and in-control during the combat because of it–and your version, where randomness is eliminated, is a really interesting evolution.

    That being said, it’s interesting to compare how you approached the development of Notecompanion vs. Shinoken. I guess there’s something to be said about the power of a small scope & a deadline! Or at least, the power of not having that much time to work on a new project…

    Really looking forward to seeing your future projects, now that you’ve learned from these experiences!

    1. Glad you enjoyed Shinoken! 🙂
      It’s a small project but I would really like to give it more time eventually. I have plenty of ideas on how to go further with it. Have you tried playing with a friend? It’s way more interesting than against the A.I (which I haven’t finished).
      My approach to design is to remove randomness as much as possible. I believe RNG makes it hard to control the player’s experience and make sure it’s even (or voluntarily not).

  5. “I don’t know how other solo developers feel about this, but please consider this if you have one of them in your entourage: how helpful is your advice really gonna be?”

    Emeric Thoa Creative Director of Furi said something about this :

    “When you are doing something everybody is gonna tell you you’re doing it wrong, it takes a lot of guts to stay right with your initial vision”

    1. It’s the kind of thought I try to have when I catch myself doubting my choices based on what people tell me. I guess experience and prior successes help a lot with being confident with your own ideas, even when you are going against the current.
      I am much more confident when it comes to game design, which would explain why I let other people influence me so much when it comes to app design, an area completely foreign to me.

Leave a Reply

Your email address will not be published. Required fields are marked *