Archive for November, 2011

Does Certification Have Any Value?

11 commentsWritten on November 29th, 2011 by
Categories: Opinions

Someone asked which certificate would be the better choice on Twitter today: Microsoft Certified Professional or Certified Scrum Master. My answer was very simple: neither because they're both utterly worthless. I've been very skeptical about any kind of software development certification for a couple of years now. More precisely, ever since I passed the ASP.NET WebForms exam with a 90% score even though I hadn't actually done anything with ASP.NET WebForms yet. I hadn't even bothered to do any exercises while preparing for the exam because I knew it just wasn't necessary. All you have to do is read the API documentation, memorize the details that you'd normally Google for and weed out the way-too-obvious bad choices in the multiple choice questioning of the test and that's it: you're certified, congratulations! Of course, you'll forget most of the details that you've memorized and you will not have learned anything really substantial that will serve you well for a long time. You'll certainly not learn anything important about how to develop high quality software or writing high quality code. And that should be rather important to you, no?

Of course, that doesn't mean that you have to approach it like that as well. You can indeed learn a lot about a certain technology while preparing for a certification exam, but the whole thing is completely devalued by the incredibly large group of people who do game the system and are only in it to add the certificates to their CV, or to demand a higher salary or rates because they are after all certified professionals. Never mind the fact that many of them never even bother to focus on learning fundamental principles that would benefit their careers as well as increasing the value they bring to clients/employers far more than intimate (temporary) knowledge of a specific technology that's probably going to be replaced by something new in about 4 years anyway. To those of you who've taken exams on WPF: how's that working out for you? Still debugging memory leaks I'm sure ;)

Even though a lot of people know this all too well, they'll still come up with arguments like "but it really helps when clients ask for certificates" or "certificates give me a leg up when clients need to go over tons of CVs". Sorry, but I'm not buying it. Well, I do know that some companies indeed consider certificates a benefit when evaluating candidates but I prefer to look at it from a slightly different angle: those kind of companies often employ people who got their certificates by gaming the system at a much higher rate than companies who don't care about certificates and prefer to focus on real experience and solid knowledge of important fundamentals instead. Simply put: if you choose to work for companies that value certificates, odds are very high that you'll be working with certified idiots.

If you're wondering whether you should invest time in getting certified, I'd advise a different approach. Don't bother with certifications and spend your time and energy on attaining knowledge that will last you far longer, and will even improve your abilities of quickly picking up new technologies. And the way to do that is pretty simple. Work on hobby projects. Experiment with multiple technologies. Study code from established projects and developers. And read books. Lot's of them even! If you don't know which ones, I've got a good list available here and you might notice that the majority of those books are technology-independent. They focus on fundamental principles and common knowledge that you'll be able to reuse no matter what technology you're using now or will end up using later on.

Of course, all of this does take more effort than simply showing up for a 2-day course where everybody gets a meaningless piece of paper or spending a weekend cramming API details that you don't actually need to remember to be productive at your job. But hey, if your goal is to improve your value, and not just your perceived status, it's worth it, right?

Silverlight’s Broken Promise

14 commentsWritten on November 20th, 2011 by
Categories: Opinions, Silverlight

By now, I'm sure you've all read about the rumors that the upcoming Silverlight 5 might be the last release of Silverlight. Of course, people who've been paying attention to the Silverlight news coming out of Microsoft and the blogosphere in the past year shouldn't be surprised at this. But for those of you who are still in the "oh please, it's just a rumor" camp, you might want to keep in mind that every negative rumor about Silverlight of the past year has turned out to be true. As a result, I fully expect the upcoming Silverlight 5 release to indeed be the last stop along a troubled line.

Plenty of Silverlight developers were concerned that their investment in the technology would end up being worthless. I never really understood that since I've always believed that good developers focus on skills that are transferable to multiple technologies instead of betting it all on a single technology. Nevertheless, many Silverlight developers were up in arms, but their worries and fears seem to have been calmed by the news that Windows 8 will make extensive use of XAML. Silverlight developers will be able to transfer their XAML skills to building Metro apps and of course, WP7 apps. And there's no reason to assume that Microsoft intends to change its smartphone platform in a way that would diminish the importance of XAML. So, Silverlight developers who were worried that their skills will be worthless don't really have anything to worry about and I'm sure many of them are quite relieved by that. After all, many Silverlight projects will be able to run as native apps on Windows 8 with relatively minor modifications.

Of course, that doesn't quite offer a solution to the thorny little issue about all the Silverlight projects that have been developed because of some of the benefits that Silverlight promised: cross platform and browser-independent availability of the plugin. The promise was that you could develop projects that would be available to users no matter what platform or browser that they were using (believers of this promise would even mention Moonlight, which has never really offered a truly compatible version), and with no deployment-related issues. After all, users only needed to have the Silverlight plugin installed to run your software. And that promise has been broken. Yes, you can migrate your Silverlight projects to Windows 8. Yes, people will be able to keep running existing Silverlight projects as long as they have the upcoming Silverlight 5 runtime installed. But we also already know that the Metro version of IE10 will not run the Silverlight plugin and that running the plugin in the 'desktop' version of IE10 will require users to install it themselves. For enterprise software, that's not much of an issue but you do have to ask yourself: how long are you willing to hang on to a plugin that Microsoft itself is no longer interested in improving in the long run?

The reality of the matter is that your Silverlight products only have a future if you convert them to WinRT so they can run on Metro natively. Which means you've lost the ability to reach users on multiple platforms and devices. The very same technology you picked because of its cross-browser and cross-platform benefits has forced you on a path where in the future, you can only target users on the Windows platform meaning either Windows 8 or WP7. Sure, you can hang on to the fact that the plugin will be available for a few more years, but that also is a limiting choice since an ever increasing number of users will be running iOS and Android, and there's no reason whatsoever to expect the plugin to actually run on those platforms. Hell, WP7 doesn't even have the Silverlight plugin for its browser. My previous employer pretty much bet it all on Silverlight, mostly because they didn't want to deal with HTML/JavaScript, but also because they thought it would eventually be available on all devices. Which essentially means they're stuck with a couple of products that only really have a long-term future on Windows 8 or WP7, and its subsequent versions. Unless of course, current promises about said platforms are broken again. Yet another reason to start taking open standards and technologies that have multiple stakeholders seriously, I suppose.

Faster Hardware? Not On Our Budget!

9 commentsWritten on November 8th, 2011 by
Categories: Software Development, work/career

A lot of developers working in enterprise environments are used to not getting the right hardware that would make them more productive. You know how it goes: Operations likes to 'standardize' the hardware that gets rolled out and in too many cases, no exceptions are made for developers. Which is a shame, really.

The simplest, and probably most effective example is that of giving developers SSD's instead of regular disks. I'm willing to bet that using an SSD instead of a regular disk could save an hour of lost time per day, per developer on average. Suppose the hourly cost of a developer is 80€. Now suppose you have 30 developers in total. That would be waste of 2400€ a day. Now suppose you have to buy 30 SSD's at 300€ each, which would set the company back 9000€.

That 9000€ investment will have paid itself back after 112,5 man-days, which is only 5 calendar days if you have 30 devs. After those 5 calendar days, the investment starts reducing development costs with 2400€ a day (on average), which for a full year (using 220 working days) could result in a yearly saving of 528000€ for the company.

Of course, Operations is usually a separate division from those that are responsible for development, which means that they have a separate budget sanctioned for what they need to do. Now suppose that Operations has to spend about 5000€ per year to replace failed SSD's. And lets assume that the yearly support cost for those SSD's is 20000€. I pulled that number out of my ass, which unless I'm mistaken is standard operating procedure whenever an Operations division gives you an estimate of support costs. Anyway, it would mean that on top of the 9000€ investment, a yearly recurrent cost of 25000€ would need to budgetted. And for what? The Operations division can't demonstrate a single benefit for their division to justify the cost.

Nevermind the fact that the company would save about 500000€ a year...

This Is Not How You Port Java Code To .NET

12 commentsWritten on November 2nd, 2011 by
Categories: What's Wrong With This Picture

Thoughts On Steve Jobs, The Book And The Man

3 commentsWritten on November 1st, 2011 by
Categories: Opinions

In the tech world, most people have an opinion on Steve Jobs. And in the past couple of years, quite a few people outside of the tech world have learned about Steve Jobs as well due to the success Apple has enjoyed in the consumer space. A lot of those people have formed opinions on him as well. And I don't think I'm exaggerating when I say that most people either love him or hate him. He's just been that polarizing over the years. Some people hate him because of his Reality Distortion Field, his arrogance, his attitude or because of his belief in a closed system where he has full control. Some people love him for the products he's delivered, his vision, his showmanship and well, his Reality Distortion Field.

Whether you love or hate Steve Jobs, Walter Isaacson's biography on the man is well worth reading. I found it to be a fascinating read, and quite funny at times as well. I was expecting it to have a somewhat balanced view on Job's personality, but the author went way beyond that. He doesn't waste many opportunities to point out a negative reaction by Jobs, which is good. There's no glorification of Jobs, just a balanced and honest view. Another important thing that I highly appreciate is that you often get both sides of the story. You get Jobs' recollections and opinions, as well as those of the people who were involved in the many situations that are covered. And again, differences between those recollections are not ignored.

Most things are covered in chronological order, from Steve being put up for adoption, to his time in college, to dropping out of college and going to India, to starting Apple, to getting ousted at Apple and starting Next and buying Pixar, to returning to Apple and returning it to prominence, to him getting cancer and eventually resigning from Apple because of it. There are also parts about his personal life and his family, though the majority of the book covers his successes and failures in his professional life.

For a long time, I thought Steve Jobs was the perfect salesman for what the various teams at Apple were cooking up. I knew he was involved with the product design, but I had no idea he was as involved as he really turned out to be. He was very hands-on in the way he worked with the various product teams, and in many cases he led them based on his vision for what a product should be. But it would be false to say that he originally thought of every successful product Apple has put out, though he apparently had no problems claiming other people's ideas as his own. Stories about his temper and the awful way he treated his employees have been around for a long time, and there are plenty of examples in the book.

What I did find surprising though, is that a lot of people he worked with claim that Jobs pushed them into achieving things they never considered possible and that they loved making such an impact with their work, despite their complaints of his outbursts and the way he treated people. I also found Jobs' take on it interesting. It was his way of making sure that Apple would have as many A players as possible, and to get rid of as many B players (or bozos, as he called them) as possible. He felt that A players only want to work with A players, and that mixing them with B players would reduce their value. You have to admit it's hard to disagree with the results of his approach.

As for his approach to being a CEO in the latter years of his career, the most interesting part to me was that he refused to split his company into divisions where each division had its own Profit & Loss balance. Instead, you just had many teams and the only Profit & Loss balance that they looked at was the company-wide one. Jobs forced them to work together instead of competing with each other (which is the complete opposite of what the young Jobs did in his first stint with Apple) and when people didn't work together, he'd get rid of them. He made sure everyone was on the same page and that there was no confusion about the priorities of the company. He made sure Apple only focused on a few products so they could do them as well as possible, instead of trying to do as much as possible. It's pretty much the exact opposite of how Microsoft is being managed by Ballmer, and that contrast seems to reflect in both companies' success over the last couple of years.

The way he dealt with people, both in his personal as well as his professional life, wasn't as impressive though. It must have been hard to know him personally, and there are 2 stories of his behavior in the book that are downright shameful. In many of the stories of the book, he comes across as a total dick and a cry baby. You can take that literally even: there are countless moments in the book where it's mentioned that Jobs began crying when he didn't get his way. Saying that he had a complex personality is quite the understatement. But he was very good at knowing what people wanted and what they didn't want, even if they didn't know it yet, as he often said. Of course, it's exactly that arrogance that many of the people who don't like Apple products hate. Different strokes for different folks I guess, though I wouldn't be surprised if Jobs turns out to be right in most cases when it comes to most people, or non-techies in particular.

Despite his financial success, I do believe he was driven by building great products, and not just money. Had money been his primary motivation, I think he would've ended up with a lot more of it. The money issues that sometimes come up in the book seem to be more about respect than pure monetary gain, with the exception of one case, when he screwed one of his longtime friends during Apple's initial IPO. In that particular case, the author should've have dug deeper to find out Jobs' motivation. But again, from reading the book it's hard not to believe in Jobs' drive to create things that were truly great. I enjoy many of Apple's products, so in my opinion he's clearly succeeded at that. Though many of the Jobs-haters would probably disagree. Despite what you may think of the man or the products he's introduced, he's had a profound impact on many of the ways in which you and a lot of people you know interact with technology and media. And for that, I am glad he was the man that he was, regardless of his faults.