I think I said it before, but there are little things as challenging (for a developer) as showing your code publicly. Of course, there are few things as rewarding (for a developer) as showing your code publicly. It is always nerve-breaking: Will they understand it? Will they think is total crap? Will they be aware of all the trade-offs made?
Would it be different if you are a member of a big corporation? Well, apparently it does. People tend to assume that something that comes from a big fellow it HAS to be good. We had been proven wrong multiple times, but that does not stop us from being repeatedly naïve and hope for the awesome, every time.
It is bad being disappointed when you are given something for free. Someone might even call you ungrateful. But, what happens when what you have been given is far from free? Would you expect otherwise? I would. I do.
Recently, I had the chance to lay my eyes (and paws) in a piece of software provided by that very same company. That piece of software is given away to their customers in order to be customized. They are exposing their work to a pack of hungry developer wolves for them to tear it apart.
That was my task, not tearing apart, of course, but customizing, making some changes to it. Not big changes, just a couple of features. In their discharge I have to tell that it is a non-trivial piece of software. Not rocket-science, not operative system kernel level, but no “FizzBuzz” either.
What I saw inside that piece of software left the most durable impression in me. From astonishment, rage, laughter and despair to the uttermost disappointment.
All those feelings run through me while I was being explained by another developer how I had to touch code in no less then 12 places (code in some of those places serves a similar purpose).
I could have “forgiven” the funky architecture, followed in some places and ignored in others; the systematic violation of good principles such as “DRY” and “Tell, Don’t Ask“; the sense of “we started with a plan, then it all went wrong, we are in a hurry, let’s get it f#'*k1ng done already”. I could have. I have certain levels of empathy.
But that torrent of feelings reverberated inside while I was staring at my screen in disbelief that commercial software could include 3000+ lines in a single class. Tears wanted to run loose when I saw methods that were not used at all and boolean expressions that could not be true. Empathy? Yes, but also a handful of pride on what I do and increasing levels of intolerance to “The Daily WTF” dwellers.
Sorry for ranting. I do it a lot. More than I want to, I promise. But since I am not getting my money back this is my valve of scape. I could knit a pretty sweater but then I could find out that wool sellers are tricking me by having sub-quality material while displaying a “100% pure quality wool” label a charging accordingly.
And then I would have to rant again. And everyone knows I hate ranting.
But what would be the chances for it to happen? Quality controls do exist. Companies might get caught and pay a fine. They might be event removed the warrant to sell those products. Only with wool, my friend, only with wool.