Wednesday, 25 January 2012

StackExchange, a success, and a failure.

I made a mention in an earlier post that I've been enjoying the StackExchange website for a while.  One of the things that I've been finding interesting is  how the site's Q/A format has been living up to most of the expectations that its creators had hoped for, and yet at the same time it has in a way been a failure.

Actually I find a lot more interesting about Stack Exchange than simply a view of its successes and failures, but I'm known for making the occasional bold and controversial statement so I'd better try and stick to defending my point of view without getting too far off topic.

Friday, 13 January 2012

Beautiful APIs

I am a big fan of the concept of the API.  I have been ever since I realized in the earlier part of my career that you could actually share code across program "boundaries". One of my pet gripes over the years however, is that often when people think about interfaces, they instantly think about GUIs and the most dumbed-down representations that they can get away with in order to avoid "users" getting themselves into trouble.  Even some of the more hardened API developers out there seem to find it hard to get their heads out of the mindset that a GUI is simply one type of interface, and that there are many more types that require the same attention to detail that a GUI does.

I have seen some really horrible API interfaces over the years, and truth be told I've even created a few horrible APIs of my own.  Still, it hasn't all been a mere fruitless exercise, and years of hiding away in the proverbial 'dark corner' churning out API after API has taught me a thing or two.  In that time, I guess you could say I've developed into a bit of an "API-Connoisseur", or as some of my colleagues might think of me as an "API-Snob".

Wednesday, 4 January 2012

Odd recruitment practices when hiring software developer

A few years ago, I came across an article that suggested a recruitment practice colloquially referred to as posing the FizzBuzz question, intended to weed out totally inappropriate applicants who clearly didn't have a clue about how to write code.  Personally, I had thought that the idea would cause a minor buzz (pun intended) for a while before it seemed to have finally run its course, and yet I came across a question at http://programmers.stackexchange.com/ that seems to suggest that the FizzBuzz question is still regarded by some as a useful recruitment tool.

I'll admit that I'm very surprised that people actually think that this can really tell them anything at all about an individual's abilities.  I get it that this seems to be a possible way to catch out the new developers who either don't have the talent, or that have crossed over from other specialties with even less talent, but the tone of the original article suggests that it's common to sift through and possibly even interview 100 individual candidates and still need to use this "test".  My question to anyone who has actually used a FizzBuzz-ism would be to ask if they actually know anything about recruiting technical staff at all, and programmers in particular?

Yes, I've actually had experience hiring staff for development roles.  It's an arduous process, and yet one I would never leave to the agencies as you can just as easily do a word-search as the agency can, and save yourself a hefty fee in the process.  The thing is, if you are screening candidates based on keywords, tricks and tests, you'll most likely lose the real diamonds underneath the rest of the chaff.  

Tuesday, 27 December 2011

What is software really about?

Technically minded people are a funny lot, in the sense that they are usually very intelligent, have an urge to be helpful to others, love to solve problems, and yet with all these qualities they can often quite easily miss a very large part of the point about what it is they are doing. As I write this, it is the Software Developers in particular that I am thinking about.

Software is created to run on a computer, developed using tools that run on a computer, and the software works in a structured manner governed by the rules of the computer and by the other software that it interacts with. When viewed from this perspective it is easy to think that software is ultimately about solving problems with computers, and yet it seems that most often we forget that software has less to do with computers than it has to do with people.

Sunday, 18 December 2011

Dealing with a poisonous workplace culture

I've become quite a fan of the StackOverflow and the Programmers StackExchange websites over the last couple of years.  Not only as a resource whenever I get stuck on some IT related question that I don't have a ready answer for, but also as a place to return a contribution to the development community at large as payment for the years of help that I have received by people who I have never met that gave over some of their time to post the answer to a question or two.

At first I found myself contributing answers to technical questions, but lately I find myself ignoring most of those, and focusing instead on the questions that relate to the problems that technical people often face, where people skills and psychology are required.  Take this post for example in which I answered a question relating to dealing with people treating the poster as a bit of a tall poppy in his view. As I read the poster's question, it reminded me of past events in which I had found myself in a similar situation.