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.