So what if you fail

When you start doing something, especially if that something is brand new to you, there is always a dark cloud of failing hovering over you. The probability that you will fail with almost everything you start doing, at least in the beginning, is pretty high. That fear of failing builds in us, it’s pretty irrational and keeps us back from achieving our full potential.
We don’t start projects because they will surely fail, we don’t give conference talks because we will mess it up and make a fool of ourselves, we don’t write blog posts because no one will read them, and the list keeps going on.
Imagine if all people who win the Olympics thought the same. I won’t run the marathon because someone will be faster than me. That is true in the beginning, but if you keep on puffing through, and learn from your failures, you will surely come out on top. I believe the feeling is linked to the Impostor Syndrome, and that the sense of failing if you try something new and don’t succeed will automatically expose you as a fraud, which you think you are.
Most people have stage fright, no one won their first marathon, and there is a microscopic chance that you will die because of that failure. You won’t die because you messed up (or didn’t) a conference talk, you won’t die if no one buys the product you made, and you surely won’t die if some troll comments on your blog post.
Don’t be afraid of failure, do your best to beat yourself, and try different things, maybe you are really good at giving conference talks, or maybe running, and you won’t even try because you will fail, and what? Is everybody going to laugh at you? So what, laugh with them, people will forget it pretty soon, and if you manage to own it and spin it off, there is nothing you can’t do.

Specialist or Generalist

While reading a lot of stuff about freelancing, consulting and business in general, I stumble upon a lot of suggestions and advices to niche down, become a specialist in some weird and obscure skill, which will give you the recognition of being the go-to person for X. This thing surely works, and you shouldn’t throw the advice out the window, but there is also a different approach, what if someone is not satisfied with doing only one thing over and over again?
I had a pretty great and stable job before I joined the startup I’m working for now. I could have done that job (working primarily as an Oracle DB consultant, writing PL/SQL) for a long time. Maybe make that thing my career niche. But I chose something different, something more tangible, developing web applications. Although I did introduce Ruby on Rails at my previous company, and some of it stuck there, there was something else a startup gives you, something that everyone should experience in their career.
That thing is generalisation, because a startup doesn’t have 150 people working on a lot of things, but maybe 3-5 people, all working on the same system. That is the great opportunity to learn new things, and reuse some things you have learned before. Sure, you won’t be able to niche down and specialise in one particular subject, but you will learn a lot of new things just going along, and working with great people that have the same goal as you. You might start off as a senior developer, but over time you pick up DevOps, front-end skills, design skills, and even business and marketing skills. That is of course, if you choose to do that. You can always stick to doing your job if you see it as a job and never think about this again. But by the mere fact that YOU are reading this, you don’t qualify for the Dark Matter Developers group, and want to know and do more.
What I’m aiming at here is pretty simple, becoming a well rounded individual won’t make you a ninja X technology developer, it probably won’t give you much recognition in the community as being the go-to person for X, but it will make you a better person in the process. You will also realise that your development work isn’t the most crucial part of the product, but that there would be no product without all of the people, and their skills that go into creating it. Understanding how things are built, and what goes into them is a much better feeling than jamming down only on your main skill and monetising it, without a greater purpose in life.

Caution! Reading will change your life (for the better)

I tend to read a lot, averaging at least one book per week. Remembering back, I think the reading started when I was a kid, during the war, being in a shelter (or the basement) was a regular thing. And for a 9-10 year old kid, books were the best thing to forget everything. My mother worked next to the library, and she brought me an average of 3 books each week. They were mostly child books, ranging from Erich Kästner to Karl May and his Winnetou. There were a lot of books by Croatian authors too, but I can’t remember them all now. After that school kicked in, then Real Life™ and somehow I stopped reading so much. At least stopped reading books. I was always following technical newsletters and blogs, but forgot that I should be reading real books along the way.Reading a book will change your life, even if you only read one book, end to end. Each one you add to the mental pile, your mind expands in that direction, and you are a wiser person. I’m not only talking about technical books here, on the contrary, I’ve found non-technical books to be more mind expanding than technical ones.I recently realized that, even I’ve been on this spree for the last 3 years, the greatest benefit of reading fiction, is using your imagination. No movie will ever give you an experience of reading a book. I don’t prefer audiobooks either because it’s too hard to pause and visualize the moment, the scene. The book that got me back in was Game of Thrones, and I’m a little bit sad that I watched the series before because my imagination was somewhat flawed by scenes from the series. From then on, I’ve read biographies, technical books, fiction, nonfiction, psychology, design, basically anything that was recommended by a credible enough source. Each one pushed me a little bit further forward.I’ve achieved more on a personal and business level in the last 3 years than I have in all of the previous years combined, and I believe that reading that much had to do a lot with it. Although we own a TV set, I rarely watch it (you have to watch Top Gear when you see it’s on). The best thing you can invest in is knowledge, keep reading, even if the book you read tends to be really bad, you can leave it half way, but don’t give up on reading. There are great books out there, and things you have never dreamed of can come true because you have to be able to imagine your end goal before you get to reach it.

Zero to One, or how to create a monopoly business

I have recently read the book Zero to One by Peter Thiel  and it really changed my overview on the business world, and the projects/products I want to work on from now.

The book focuses on building Paypal  and the period it was built in, the dot com boom. We all know Paypal is now a successful company, and we maybe not know that they are one of the few who survived the boom in 2000. I was shocked to read that their first product was a Palm Pilot money transfer software. I’ve had a Palm, and although it was a cool device back then, the market wasn’t cohesive enough to support the product. But the underlying mission of Paypal was to change the way we transfer money between each other. Having Palm device as a prerequisite, although the niche was big enough, was not a good idea. So they switched to the email address money transfer, and we all know how that turned out.

For Paypal, or any company to succeed in the long run, the main prerequisite was to create a product or service that is either something innovative, like iTunes store, or something at least 10 times better than the competition. They also teach us that we have to start with a small niche, and build up from there. Unless you are old enough, you probably didn’t know that Amazon started as an online book reseller, and Paypal started as a merchant payment option for a small number of eBay top sellers. eBay (or Auction Web) started as a direct person-to-person auction site for collectibles. They all built great services, which were at least 10x better than the competition, or completely new, and started in small enough markets, where they had zero competition, so they could iterate and improve the products, before competition caught up what was happening.

There is also one great thing about small markets, and that is the fact that big fish can’t swim in small ponds. You as a small bootstrap company can live of a small enough market, and the big companies won’t even touch that market, because the market value is in the range of a statistical mistake on their yearly earning reports. And it’s a great place to innovate, improve and grow, till you can expand to another pond, after you have a monopoly in the first one.

We were all taught that competition is a good thing, even in economics class. And that highly competitive markets are the best option, for consumers, and for companies. That is a big fat lie, for both the consumers, and the companies. The companies in this kind of open market are in ruthless cutthroat battle for customers, and they have to lower their profits to the bare minimum, because if the competition is cheaper, the customer will go and buy their product, in a commodity market, price is one of the main attributes that guide the customer’s decision on buying.

Monopoly on the other hand, is a great thing. There are two types of monopoly, the economic one, which imposes its size and power over the market, buying or destroying all competitors, but that is not the one I’m talking about. The intellectual monopoly, the one created by innovation, or by having a 10x product, is the best position in the market. You have no competition, or they are scarce. The market is in pain, and your product can solve that pain. Tesla  as an example, is a company who builds on of the best electric vehicles in the world. But they started with a roadster, a really cool looking roadster, which was a novelty item, but beat all of the brick-shaped electric vehicles when the hip green business people considered on buying an environmentally friendly car. I would buy the cool roadster over the brick shaped electric vehicle any day. Now Tesla also has 2 family cars, the best electric cars in the world. There is competition right now, but competition is at that state that Tesla had to open their patents, just for the sake of everyone else catching up to them. It is a monopoly if the competition isn’t competent enough to merely catch up with you, if not exceeding you, and overtaking the market.

Dealing with procrastination

Have you ever been in a situation where you want to do anything but the thing you are supposed to do? Maybe there is a task of life importance, and you just seem to be stuck browsing Reddit, or Hacker News, or whatever time wasting site you are using to pass time. Procrastination is a hearth-warming practice, which keeps even the strongest of us from continuing to work on most crucial tasks, and spend time on menial tasks, or aimlessly browsing the Internets.

The best way I have found in dealing with was by pure luck. I started dissecting tasks into smaller, 30 minute long ones. The tasks are probably similar to any web application development process. A new recruitment comes in, we discuss it, and it end up in our project planning tool. I have my own to-do system, although I’m trying to switch to GTD, I’m still not there yet. I use Org-mode to handle my to do’s. And I’m trying to make it suit my work flow. Being disorganized in the past, meant that many tasks were left incomplete, or stale, just because of lack of will to finish that last hurdle.

And it is probably that last hurdle, just before you complete the task, that is making you go and slack off, instead of finishing the task at hand. Next time you are in a similar situation, try using my technique. If you have already split the assignment (or project in GTD terminology), into tasks that can be finished in 30 minutes or less, you are on a good way. If not, try doing that first, then come back and try my approach.

The basis of the approach is, when you are stuck working on the main task in your project, that is the most probable time you will want to slack off. Well, don’t do that. Pick up one of the easier tasks in the project. Or if you can’t do that, there is surely some untested part of the app, that really needs your attention. Whatever you do, don’t reach for your browser, and the sites that will suck the life (and time) from you. Hit that menial task for 15-30 minutes, get up and walk for a couple minutes. Then get back to your main task. If you still can’t make yourself work on it, repeat the procedure, until you have no tasks left, but the one task that is making you procrastinate. By then, you should finish the task with ease. You have already done maybe 90% of the assignment, you can surely do the other 10% with the same ease.

If you can’t do that, pick up a new language, or a new editor (hint: Emacs), and play with it, learn something new. Play a musical instrument, or exercise. Keep either your mind, or your body under pressure, because when you let yourself go, it is really hard to get back on track. I myself have lost countless hours doing “busy work”, while doing nothing in particular, just aimlessly browsing the Internet. Don’t be that person, be a Go-getter, finish your tasks, and go outside, have fun.

Unused tools (and skills) get rusty and fall apart

I was having an interesting twitter conversation a few days ago. The tweet that started it all claims that most male programmers don’t have beautiful, or even readable handwritings. And in my experience this is true. But I think there is a reason that runs deeper than a given social group having bad handwriting. I also haven’t met a physician that has a readable handwriting either.

In the case of physicians, if you have maybe read Thank You For Arguing, you will realise that it is their code grooming in effect, or their insider language, used to effectively differentiate themselves from others.

Although some programmers can be vain, I don’t think code grooming is the case here, because there is a deeper problem emerging that we were probably the first ones to experience. Handwriting has become obsolete, marked for removal in the next major version, we are following semantic versioning, right? But without joking, If I just take a look at myself, I
almost stopped writing by hand more than 10 years ago. Apart from the few months when I went to finish my bachelor’s degree, I haven’t used it since. I do write some things down on paper, and lately I’ve been using paper and pencil more and more, to sketch, and write down meeting notes. But that doesn’t solve the problem, the real problem. I have a (tough learned) skill, that I’m not using, not on a daily basis, but sometimes a whole month or more could go
by, without me picking up the pen and writing something down. And without use, that, in the past really valuable skill, is fading away. You will never completely forget the skill, but your confidence to use it will fade away with the idle time.

One more skill that I can think about is using a language. I have learned two foreign languages during my education (not counting Latin). And because of weird stream of events, my knowledge of German was better for the 4 years I learned it in elementary school. We had a really great teacher, and she made us talk in German, at least those 2 hours in school each week. Our English teacher, let’s just say she wasn’t as good. Everything changed in high school,
and the tables have turned. The situation with teachers wasn’t really bright way back then, so we got an unqualified German teacher, and over those four years, I’ve lost most of the knowledge. Not using it 14 years after I finished high school, I can still understand most of it, but can’t communicate to save my life. Our English teacher on the other hand, was a posh old lady, who knew how to teach. And I’ll be thankful to her for the rest of my life, because not
only did she try (and succeed) teaching us English, but she also tried (and somewhat succeeded) teaching us good manners, which is also a skill hardly gained, and easily lost. My father picked up a Russian hitchhiker this summer, while he was doing some work. And as he has learned Russian in school (we were behind the iron curtain then), he knew at least the basics. Not much, but could understand the guy, and luckily our languages are similar enough, so the Russian guy could understand him back in his pigeon Russian. I asked him how he felt speaking Russian for the first time in almost 40 years, and the answer was, I was afraid I would say something wrong, and offend the man, while I tried to help him.

It’s the same fear that I have when filling out some forms, and have to write anything down by hand. I delegated most of it till now, just because my vanity doesn’t allow me to show that I’m becoming more illiterate with each passing day. That is the reason I added learning Calligraphy to my bucket list. I just can’t allow that skill to fade away so easily. Also, as irony in life dictates, I’m in the great position to relearn German, and to even use it daily, so I’m going to grab that opportunity too. As you can never know too much, except for this guy here, you should commit to lifelong learning. And try to use all of your skills, as much as you can, you never know when you will pick up someone needing a ride, but he only speaks the language you learned in school 40 years ago.

Also, go and read Merlin’s Blog, you might find interesting and useful things there.

Why I quit my full time job to seek fame and fortune in consulting

There are probably many reasons people will say caused them to quit their job, but if you try to differentiate between all of them, you will probably find one of two underlying issues behind each reason. Those are the same issues that people fire they clients for, and if you experience them as a freelancer, you should do that too. People generally quit for two reasons, they have received a substantially better offer, or they are deeply dissatisfied with the situation they are in.

The first one is self explainable, let’s say that someone in the ranks of BasecampGitHub, or even Google offers you a job. And even better, a remote job, which would be the likely case in the former two mentioned companies. How long would you think about it? If you are not a premium rate consultant, I guess not too long. And that is understandable, as we all seek either something like that, or working on some private projects on the side. But if a great offer comes your way, grab it if you want, or you will surely regret it later on. A few people can boast about
having Company X on their resume.

The second reason runs a bit deeper, it’s dissatisfaction with the working environment, lack of understanding, and a hostile climate between coworkers. That thing will drain everyone, and it does not only drain your will to live, but it also kills your creativity. If you think that environment is a good thing, do yourself a favor and read my post from last year: Build your career (You can do better), and think hard if it applies to you. I’m not saying that everyone should leave the awful job they have now, but just try and imagine yourself surrounded with people smarter than you, discussing great ideas, and creating magic. It sure beats backstabbing coworkers.

There is also one more reason, one of the economic nature. Where you really love the environment you work in, but your compensation simply is not enough for you in your given situation. Maybe you have had a baby, your expenses have gone up, and your current employer can’t afford to pay them. This is probably the hardest of them all, the one that will make you not just leave the employer, but even your country, and maybe the continent, because if you must find something better, you just don’t care where it is.

I’ve rambled through the post, without really giving my reasons. I think now, after a year and a half, I have a cool enough head to answer those questions for myself, and for others. I have been asked that same question just today, by a coworker in a startup I’m working for. For the first time I didn’t have to think hard, just think back and realize what I had back then, and what I have now. I left it for all the reasons stated above. The offer I got was substantially better, and I desperately needed a change of working environment, although I really learned a lot of things in my previous life, I think the last year and a half were substantially better and packed with more experience and learning opportunities, which I gladly took, each that I could, sometimes overestimating myself, and the time I have, but succeeding nonetheless. Also, working with people who are much smarter than yourself is something everyone should try to achieve. Because it’s a beautiful experience, and you learn so much. Which is the most important thing I learned in the last year and a half. Never stop learning, and don’t just focus on your small little niche, explore other things, you might like what you find there.

Quantifying the pain your (potential) client is having

Are you a consultant, or maybe you have a SAAS product. You are really good at what you do (programming/design), or your SAAS it the best and simplest in its niche. And somehow you don’t have more customers, or any. There may be hundreds of reasons for that, maybe your consulting services aren’t up to par with the competition, maybe your SAAS is to complex, or it isn’t pleasant to the eye. But what if all this is false, you do everything by the book, and still no
traffic?

In one of the last posts, How to sell a new technology to coworkers (and bosses, by proxy) I wrote about selling new technologies to your coworkers and bosses. And you should think about the bosses part here. As your clients and customers both handle a certain amount of money, you want from them. Be it a one off fee, or a monthly subscription. And in most cases, money is not the issue here (if your leads complain about your prices, think about getting better leads), but the financial and emotional investment a lead has in the old solution. And your job is  to learn to break them from it.

As we all know, it’s really hard to break from a software when you start using it properly. And this is basically what you are asking your lead to do, stop doing your old ways, and start using this new and revolutionary way that will change your life completely. That might sound true to you, and might even interest your lead, but what if they have 10, or 1000 users using the product you want to replace. How will you justify your new and groundbreaking technology while considering that you have to change the way a 1000 regular computer users do their job? Have you even considered the cost of switching from one software to another? You probably haven’t, and your leads have, probably consider it every time you contact them. You have to break from it right now.

Take your main competitor and study their software, or make an analysis of the system your lead wants to replace. The best thing would be, if you could watch people use the given thing for at least one day, spot the rough spots, the overly complicated procedures. Clicking 27 buttons and going through 10 different screens to accomplish one thing. Write all of it down, and turn it into something tangible, lost time.

Lost time is something we take for granted, time spent battling software that should work, but it doesn’t. I had the same issues with my business bank a while ago, but after I applied the following formula, the solution came into place. After you have written down the average daily lost time per user, multiply it by the number of users, and by 20, to get a ball park estimate of
hours lost in any given month. Multiply that with an average hourly rate for a worker in the field, and now you have your silver bullet. The amount of money they are losing with the old solution, compared to your solution. From that, you can easily form your price, and give your lead a fairly correct Return On Investment (ROI), which is the number a business person understands, and wants to hear from you, because they have to tell it to their boss.

About my bank issue, I calculated that I loose about one hour each month, with Java issues, and trying to log into the net banking interface. Multiplied that with 12, to get the yearly amount, then by my hourly rate, quantified my pain, and changed the bank. That simple, (after 4 months of agony, which started when I was out of town for a longer period, and had to pay some bills). It wasn’t easy, and wasn’t fun, but if I’m paying for a service, I want it delivered in a usable state. Your clients want the same thing. And unless they feel so much pain, they won’t do anything themselves, they might explore around, sign up for a trial, and never sign in again. This is where you apply your sales skills, call your leads (yes, by phone), and talk to them, find out their pain, help them to quantify it, help them to use your system, on board them properly, and someone else will have a hard time taking them away.

I wanted this post to be complementary to the last one, on selling technologies, but it took it’s own course while I wrote it. This happens, don’t be afraid of pouring your thoughts to paper/any other medium, and sharing them. Who knows what might come from it?

Overcoming the pirate mentality, and starting to value things

I’ve been brought up in a country where piracy was (and probably still is) imposed to you right from the start. Software licences being really expensive, and living from pay check to pay check, my parents, and probably many others, couldn’t afford legal software for their home computers. Sadly, it’s still looked at it like that. Companies are required to have licensed software, which is enforced by the authorities, but home computers running licensed software are something to long for. So paying for software (and any other digital content), becomes something you just don’t do. If a kid next door can get you a copy of windows, maybe he can get you other stuff. What if there is something they know, that you don’t? Maybe there is a way to download stuff from the internet, without paying the author?

There are of course many reasons for this mentality. People don’t have enough money to even buy their child a computer, but you also want a couple hundred USD or for Windows and Office. Let’s see if the neighbour kid can install that for 40$ or less. After that, it a smooth downhill ride. Need a fancy photo editing software, or whatever else? Sure. We’ve got it, for 10$ or less. And when your paycheck is ~$600 you really can’t buy an proprietary software licence that runs into $200++

I see this as a two way problem. One is the small, self published authors, artists, and software businesses, which don’t have the power the other ones have, to let’s say force whole governments to use their proprietary software in the schooling system and administration, or to enforce copyright laws. And especially if you are one of those people, making software, music, writing, or teaching for a living, please show the same respect to others as you would want to be respected. Most of them offer a no questions refund, so if you really see no value in the software or service, or even a book you bought, go ask for a refund, be honest, and you will get it. If you are a bad person, you can even keep the content you bought, but that is your karma on the line. Learning to think differently, and act differently, isn’t an easy thing to do, but you can start by changing the little things. Go and support people that make your life easier, you will be happier for it. And there is no better way of showing your support to self published writer, than pulling out your credit card.

The other side of the problem are big software companies, who set the standards for you, and you can’t really move away from that path. As it’s not an easy thing to do. The solution seems self evident, using free software, like GNU/Linux, LibreOffice, Gimp, and other very good alternatives to proprietary software. But what if I told you that there is a bigger problem? What if someone is forcing you to use proprietary software, what if you can’t do the same thing with LibreOffice and with Excel. What if someone is teaching your child only to use one software, the proprietary one? Can you buy a new computer and just install Ubuntu and LibreOffice on it? Of course you can, but can your child use it for school? NOPE. Luckily there is a solution for that, at least while your child is at school. And I found about it a couple days ago. School children all have an account with which they can download free, licensed software, while their education lasts. It’s a bad solution, but beats cracks and key generators any given day. Although I don’t approve of this drug dealer mentality, because it is exactly that, it is a good thing to have licensed software on your computer.

Business users (as I am one too), have to jump through many hoops to avoid paying that toll. I had to fire my business bank because even if they claim to work on OSX, there have been so many issues with it, that I’ve lost a lot of time trying to fix them. You can’t file your taxes without paying the toll, and some reports you have to do each month, and year, also require using proprietary software. Luckily, my accountant does that for me.

In order not to sound like RMS, and rant against all proprietary software providers, because I’m not doing that here. If you are creating value with some tool, be a nice person, and pay for that tool. I use OSX, and pay the Apple toll, but I have chosen to do so, no one forced me into it, or moulded me during school to do that. Think about it, especially if you are a software company, pirating a tool with which you gain a substantial amount of your profit. Just think about how it makes you feel when someone doesn’t want to pay for your hard work. Don’t be a cheap asshole, pay for software you use, or use free software.

How to sell a new technology to coworkers (and bosses, by proxy)

Have you been doing programming for a long time, in some old and boring, non-intuitive language or technology? Have you found that new technology everyone is talking about? Maybe it is Ember.js, maybe Angular, maybe even Ruby on Rails a couple of years ago. Do you burn from desire to use that new thing every day? Well, let me tell you from the start, it is not going to be easy.

I have had the same experience, with couple technologies in the past. Always looking for the next best thing. Whether it was asp.net MVC, Ruby on Rails, or git, as it was in my previous job. I failed the .net bit, and looking back, I’m not sad at all that it happened that way. Selling Ruby on Rails was different. Although I didn’t know about marketing and sales as much as I do today, I had a totally different approach, maybe not the best one, but the field to plant those seeds wasn’t very fertile.

The thing I changed was, showing the new technology to my coworkers, getting them to love Ruby, the same way I’ve fallen in love with it. Showing them the simplicity of creating a basic CRUD web application in Ruby on Rails. Making them the main advocates of the technology.

That is the basis of any product acceptance. Teach just one person, make them fall in love with the new thing. Talk about it, make a presentation, offer to teach anyone mildly interested in it. Because you have to get a following. And if you don’t get anyone to follow you, remember what happened with my asp.net try?

Selling to your manager, while going around your coworkers won’t work from the start. Your manager has their job, and while your job is creating beautiful and fast widgets, their is making sure you, and your team, produce enough widgets each day, to fulfil the set budget for that month. And they are really strict about allowing new technologies to come into play. Also, they have managers of their own, who they report to. Maybe there is some vendor lock, and you are unable to do it. Maybe the cost of training 150 people to use the new technology, just because one person says it’s cool, isn’t a really smart thing to do, especially if they appreciate their job.

Building a following is hard, and maybe the technology you found doesn’t have a big following in the world, or maybe it’s just too soon for it (Smalltalk anyone?). But if you are prepared to advocate it, and teach anyone who is mildly interested in learning it, create smart scripts with it, to help you with your daily job, putting it in contrast with the old and ugly technology you are using now, then you will succeed. Even if you don’t, you’ll have another tool under your belt, and you can always follow many of us who went freelance, to work with the technologies we like, and forget the ones we dislike.