Why you should always add Licensing Terms to any software you distribute

I recently got involved in a debate on the topic of Software Licensing, and I found it sad that there is so little understanding, amongst Developers, of such an important topic. Together with writing complete and accurate documentation, knowing how to license your Software is one of the skills that any Developer worth his salt must have. At the same time, Users must learn how to read licences, and get the habit of doing it, unless they like risking to violate them without even knowing. Read more

How NOT to interact with non-technical Users

The content of this post has been removed following a complaint received by a reader.

The objective of this blog is to share experience with fellow developers in a constructive way. We acknowledge that the original post didn’t meet such objective, due to some non-constructive remarks that should have been avoided.

We would like to extend an official apology to anyone who was offended by the post, and reassure all our readers that we won’t be publishing such type of content again.

Are Elance or ODesk good sites to find work?

The subject is a question I receive quite often by junior Developers who are looking for a way to get some extra income. Since the frequency of such question is increasing, I thought it was time to write a public answer. Such answer is no.

The reason behind it is simply that, on such websites, you only find three categories of people:

  • Clients who are looking to spend as little as possible. Forget about quality, thorough testing, reliability, speed and so on, Elance/ODesk Clients are not interested to anything like that. That is, the cheapest contractor will win, almost without fail.
  • Cheap contractors from emerging Countries. While there are some skilled ones amongst them, many are beginners, who attempt to get into Software Development as a way to get some cash, and they will work for as low as one dollar an hour, to win a bid. The result will be, often, a mess, but many Clients won’t care until they will have to pay.
  • You (and many others), checking if there’s a chance to earn some extra cash. Unfortunately for you, the only way you could possibly make it is by offering to do more work to the Client at a cheaper price than the competition. That is, you might have to work for a fraction of your Country’s minimum wage, and treat the Client like a king, until you get yourself known in the community, so that you may (and I wrote may), one day, get a better contract.
    Think yourself as an outsourced Cinderella, with the difference that  you don’t know if your Fairy Godmother is even alive.

If above scenario seems surreal to you, just join any of the websites and have a look around. After a while, let me know how it has taken you to realise that:

  • Spending more than five minutes writing a proposal for your potential Clients is a waste of time (they won’t read it, they just want a cheap bid).
  • Specifications don’t make sense (“I need a system that has a hundred features, but I will describe it only to the winner”, i.e. you must bid without knowing what you will have to do).
  • Many Clients behave like arrogant pr.cks. They offer a miserable budget, and they also dare to make fun of bidders with pearls like this one:

    Most of you seem skilled, so we will decide based on the best price. Competing with each other will be tough for you, but it will make our life easier.

    I’m sure that, if they could, they would write “now kill each other, you dogs, and I will hire the last one standing” (which is the basic idea behind the Elance/ODesk system). I would love to see what will happen if they will get burned by an cheap bidder. Chances are that they will publish an even more aggressive job posting, lowering the budget further “because they wasted enough time and money”.

Still willing to try?

Repetita iuvant: you’re a Developer, not a Priest

Repetita iuvant (latin): repeating things helps.

In this case, I’d like to repeat a message I sent in the past, but that seems to fall on deaf ears way too often: if you are a Developer, you must not behave like a Priest. I felt the need of repeating it because, in a short time frame, I stumbled upon a couple of websites with messages such as “we don’t support Internet Explorer”. It’s annoying enough to see messages like this on sites made by nerdy teenagers, but when they are written by people who call themselves professionals, it’s unacceptable.

Also, do yourself a favour: don’t be like a guy I met once, who boasted that “his code works 100% on every browser“, when it failed miserably on any version of Internet Explorer. When I pointed it out, he replied that “IE is not a browser, and you are stupid if you use it“. Sure, IE might not be the best browser out there, but calling your potential Clients “stupid” for using it won’t bring you much business.

Being a Professional Software Developer doesn’t just involve coding what you like, when you like and only for what you find cool, but being able to support various technologies and making the most out of them. Keep your Technological Religion wars for yourself, grow up and get over it.

Or keep being stubborn, and just give me the contacts of the Clients you rejected, I’m quite sure I can help them. Your choice.

 

Being a Developer must not become a burden

This post has been inspired by a discussion spawned from a thread on Vanilla Community, about the topic of business models for the products created by Developers. Very briefly, one of the key points was the comparison between a purely commercial model, where (almost) everything that one creates is sold for cold, hard cash, versus a more collaborative one, where Developers give their contribution in form of code and knowledge, and obtain the same in return, without exchange of currency.

Vanilla Community is very much oriented towards the latter approach, by providing an invaluable amount of software, knowledge and expertise, completely free of charge. In that sense, I am kind of a “black sheep”, as I recently decided to start selling some of the plugins I created, rather than giving them away for free. Of course, anyone is free to do what he, or she, likes with the fruit of his, or her, own labour, and I’m not advocating that every single line of code should be sold for big bucks. In fact, I actively contribute to Vanilla Community (and several others) without billing my time, for the sake of helping people the same way they helped me when I started.

Other people do it for passion: they absolutely love coding, or maybe working with a specific set of tools, or even just working in a specific field, and they can’t help but share this passion. As soon as someone asks about something that they love, passionate people give everything they can to help. Some of them even get on a high by doing it. Passion can really be a drug.

Bitter truth

However, and, I would like to add, unfortunately, the world doesn’t run only on good will. One of the issues of having a passion is that such passion can easily be exploited with our consent. I cringe when I hear young Developers saying that “they can’t believe that they get paid to do something they would happily do for free“. That is the first step to get royally screwed by people who have passion for nothing else, but their own profit (I bet many salespeople’s ears are buzzing, right now). When they see that your skills are valuable, but that you are ready to give them away for peanuts, they run to the nearest shop and get you three sacks of them. Don’t expect that they will spend even one second thinking that they are exploiting you. Such concept is unknown to them, that part of their brain tends to malfunction more often than not. In short, apart from rare cases, Companies have no interest in paying you more than what you sell yourself for.

Should you become a “greedy bastard”, then?

Despite greed being built-in in all animals (including humans) as a mechanism for survival, I’m not advocating a greedy behaviour. I simply say that, if you can afford working for free, or for very little, you are conscious of doing it and you are fine with it, there is no harm. This, though, doesn’t mean that you can expect everyone else to do the same, as other people, like myself, for example, have to pay bills and support a family. Even if they just like to smoke cigars and drink expensive Brandy, the bottom line is the same: they need money. That doesn’t make them any worse, or any better than someone who works for pure passion: they just have different needs and priorities, and act accordingly.

My experience

In my 15 years of career, I admit I have worked on many projects just for the sake of it, without expecting (or obtaining) any compensation, therefore I know what it means to work for passion. I also got exploited because of it, and it took me almost five years before “waking up”. Five years in which I got paid X per month, while my employer charged the same amount per day. Considering that all the work was done by me, and that, without me, my employer would not have obtained the contract, I wonder what the hell was I thinking at the time, and why didn’t I set up my own business, instead of “working for passion”. Believe, it’s a painful memory.

My personal recommendation

To all the young Developers out there, I can tell what I already wrote in the past: find your worth, and don’t settle for anything below it. It’s great to have a passion, it’s great to be part of a great Community of free people, but don’t wait to have arrears to pay. Don’t be afraid of asking for money, when your work is valuable to the other party. They surely have a budget, and they expect you to set a price. Besides, negotiating payment is a fundamental skill that any Developer must learn, together with dealing with Clients (on a regular basis) and many other non-technical skills. And, remember, when Clients cry, it’s because they don’t want you to notice that they are actually laughing.

A “song” of warning

I’m closing this post with the translation of one of my favourite songs. It was written in 1971 by one of the best Italian singers ever lived, and it applies quite well to the topic of this post.

Translation is not literal, but the concepts are unaltered. If you wish to listen to the original song, you can find it on YouTube.

A Doctor – F. De Andrè (1971)

As a kid, I wanted to heal the cherry trees, when, red with fruits, I believed them wounded.
Health, in my eyes, had abandoned them, together with the snow-white flowers that they lost.

It was a dream, but it  lasted long, therefore I swore I would become a doctor.
Not for God, not as a game, but so that the cherry trees would bloom again.

And when I finally was a doctor, I didn’t want to betray my childhood dreams.
A lot of them came, and they were called “people”, sick cherry trees in all seasons.

And my colleagues agreed, my colleagues were happy to see in my heart so much will to love.
They sent me their best customers, with the diagnosis right on their faces, the same for them all: sick with hunger, unable to pay.

Then I understood. I was forced to understand, that being a doctor is just a job, that you can’t give science away for free, if you don’t want to get sick with the same condition.
If you don’t  want that the system corners you in your hunger.

And the sure trick is to take advantage of your hunger. Of your children, of your wife, who now despises you.
So I closed in a bottle those snow-white flowers. The label said “Youth Elixir”.

And a judge, a man, sent me to spend my sunsets in prison.
Useless to the world, forever stamped as “trickster and charlatan”. Doctor, Professor Trickster Charlatan.

New Release – Steam ™ Sign In Plugin for Vanilla 2.0

Steam ™ Sign In Plugin for Vanilla 2.0 is now available for purchase. This simple plugin allows your Users to register and log on your forum using their Steam ™ profile. This plugin relies on the OpenID plugin which is shipped with Vanilla.

Important

The OpenID plugin shipped with Vanilla contains a bug which doesn’t allow Users to enter an Email address to associate with their forum account. A fix is being discussed on Vanilla Community, but it’s unofficial. Use it at your risk.

Birthday Discount!

From 16/11/2012 at 7.10 AM (GMT), you can avail of a 10% discount on the total of your shopping, by using coupon code HAPPYBDAY-1211. Discount is available for just 24 hours, and for the first 10 purchases. After all, birthday comes only once a year! 🙂