(but please still be enthusiastic)
I have enjoyed and been very interested in several of Troy Hunt’s blog posts on security, and having had my attention drawn to one the other day, I found his post titled ‘The ghost who codes: how anonymity is killing your programming career‘. I think his assertion is unfair. In fact, my first criticism of his post is that it is somewhat tabloid in nature; compare that title with his ultimate conclusion:
Ultimately, complete lack of public profile doesn’t make someone a bad programmer. On the other hand, a rich track record of engaging with the community, asking questions, demonstrating enthusiasm and actively participating in the industry gives you a bloody good head start on the ghosts.
This seems a far more reasonable statement, and an alternate headline on a broadsheet newspaper might have been: “Engaging with New Media could make new Job Searches Easier”. Or something like that – which has less punch but might reflect the whole post more fairly.
But as much as anything else, I would like to engage in this post with the broad idea of the use of Blogs, Question/Answer sites, Twitter, and so on. Is it necessary for a programmer (or other IT professional) to engage in such activities?
In fact, Troy links to a Scott Hanselman post on a similar topic; ‘Dark Matter Developers: The Unseen 99%‘ which has a far more balanced message:
Where are the dark matter developers? Probably getting work done. Maybe using ASP.NET 1.1 at a local municipality or small office. Maybe working at a bottling plant in Mexico in VB6. Perhaps they are writing PHP calendar applications at a large chip manufacturer.
New Media Options
Let’s consider engaging on Stack Overflow or other Q&A website. I have asked questions on SO and other sites, and I do feel bad that I have not given-back by answering questions. But I would also point out that there are plenty of people answering questions already, rather successfully. There are already plenty of people competing to be ‘most correct’ (which is fine) and several people not competing at all, potentially using fake profiles to leave their less-considered comments.
Additionally, I have experience of one colleague who spent several months on Stack Overflow – mostly in work time – during which time I am sure he learnt and researched a lot and grew as a developer; but he probably did not do hundreds of hours of work he could have done otherwise. So, in this sense, instead of helping his ‘local’ community of colleagues by making necessary changes and improvements, he spent his time helping a global community (while being paid by his employer). I appreciate this is a management issue in many senses… but consider the future employer’s perspective: “Does that SO Profile really indicate the committment to programming you think it does?”
I’m basically in ignorance here; I’ve never really used twitter. But again, some small amount of experience of it is from work where I see developers with twitter feeds on their desktop and I wonder how this additional source of interruptions can help them in an already noisy and disruptive environment. Nor do I understand how it is more useful to post a question or comment on twitter than, for example, turning to a colleague and having a discussion with them, when the local colleagues will quite probably know far more useful information than someone somewhere else.
Well, at least I am not aware of ever seeing a colleague write a blog post while at work (though I seem to remember that Jeff Atwood once commented he was allowed a certain amount of work time to write his Coding Horror blog (I have been unable to spot the reference today). But I have often seen blog posts that appear to be little more than cut-and-paste jobs from Microsoft manual pages – which I question the value of – and then there are the opinion pieces that are really a mild form of vanity publishing (yes, this blog is a mild form of vanity-publishing 🙂 )
The Older Ways
Let’s contrast the new-media ‘paper-trail’ options above with other old-school ways of living-your-work-life:
Talk with Colleagues
A good way to learn things and to help people is to talk with them, and (in your work life), many people around you will know things that are relevant to your day-to-day role and the stuff you are working on. The elements of communication that make a person a good trainer, or a good learner, or a good collaborator regrettably will not leave any trail on the internet (except perhaps in a list of facebook friends). Indeed, as a counter-example, I have a colleague who clearly is outgoing, vivacious, and has many internet friends… and yet he seems to frustate many of his colleagues as he seems to annoy them somehow when talking with them.
Training and Mentoring
I regularly spend hours of time with colleagues who ask questions of me. Their initial question might be something like “Can you help me understand this change request?” – and this might lead me to ask if they know anything about a particular business area, and so we have a little conversation about that, and then you might naturally drift into potential solutions to the business-problem, and so on. Although I quite enjoy it, this is not technically part of my job-role, but I believe it is a Good Thing. Unfortunately, though, the success or otherwise of these conversations can not practically be made public!
Being the Glue
I was hoping to find a reference to people who act as glue-for-teams in Peopleware by DeMarco and Lister… but unfortunately I’ve failed to find it. But my recollection, and my experience, is that there are some people in work-life who take on a role of binding a team or teams together. They help with communication, negotiation, collaboration, and the net result of their presence is that people work together better. They may even serve as catalysts to socialising better, too. But if you look at the lines of code these people write, or the tickets they work on, then perhaps you will we disappointed. These activities are hard enough to note on a CV, yet these people are immensely valuable when they are on your team.
Head Down, Getting Things Done
Not everyone can be an application architect. Not everyone wants to know about the latest and greatest scripting or development tool… and when you have people who do care, you are lucky if they are also pragmatic enough to collaborate and work towards common goals, even if their own personal desires might lie in a different direction. Perhaps you’d like to learn Powershell, and have a problem that could be resolved with a scripting tool; but everyone where you work is a C# deverloper, so maybe it would be best to be solve the problem with C#?
Unless you are very very very lucky to have the very highest calibre of staff who are smart, enthusiastic, and also totally willing and able to collaborate, then you will in all likelihood need some ‘foot soldiers’ who will get work done without complaint – and dare I say it, not bring too many new ideas to the table. I have found some of the most harmful colleagues to be ‘smart but without pragmatism’. These people might do a code review, and end up re-analysing the ticket, re-coding the solution and probably doing a whole lot of unnecessary refactoring while they do it. Basically, by the time they are finished they may aswell sack the original coder, ‘cos none of his work will ever go live with a reviewer like that. I’m not arguing for releaing poor-quality code at all; but smart people sometimes waste a lot of time on fixing ‘problems’ that may never happen (and be absolutely mindless of the additional risk they may cause). I also spent yesterday afternoon in a meeting with a primadonna programmer stalking the room with a deck of cards, and during which we was mostly disruptive and disrespectful of the people who were trying to have an effective meeting.
Being at Work to Work
I too have had personal projects and enthusiasms, but I often found they enthused me so much that really I stopped wanting to do what I was paid to do in the day. My employer benefited from that enthusiasm (so did I, hugely), but there was an element to it of “I don’t want to be here doing this stuff any more” in my work-life. That is both a good and bad sign for an employer! I now find it much more interesting to consider what is achievable and possible in my current environment than I do to ‘dream of a day when I could use xxxx technology’. This is not a crazed long-term committment to my employer, but I have found it an approach I find very worthwhile and fulfilling (even if some personal time then gets spent with work-related things).
Probably because I am aware that I do not engage much with new media, I think I felt a natural concern when I read the early part of Troy’s blog. But while writing this has reminded me of several instances where I considered someone’s usage of new media to be against the interests of their employer, I have also reminded myself of past personal projects that were fun and exciting and directly lead to my employer recognising I had skills worth using in exciting new ventures. But those projects left no paper-trail, and frankly me writing about them now is not much different from me writing about them on a CV – almost entirely unverifiable.
One must be cautious about chicken-and-egg situations (because I appreciate that social involvement can lead to career changes), but many of the most vocal about using social media are themselves people who (give the impression that they) are paid to use that media, and / or people who promote themselves as a means to gain work, speaking engagements, or related earning. In many cases they appear to work physically remotely or essentially alone, and this raises their reliance on the internet for their social interactions. The ‘unseen majority’ are often not seen on the internet, but they are seen in their work-places liaising with colleagues and friends as humans so often do.
Perhaps there are two lessons here; one for people who tend towards being quiet on the internet that this may not be the best policy – because if people like Scott Hanselman and Troy Hunt think it a bad sign, then others will too (and I know my current boss likes to hear people say they read blogs and books and stuff like that in their interviews).
But I have a contrasting message too. Employers Beware! – that Stack Overflow profile may not have been wholly achieved by personal effort, time and enthusiasm – the activity level on twitter might not help you identify that other people do not like to talk to this person. And perhaps that enthusiastic involvement in forking some open source project indicates an enthusiasm for coding but maybe it also indicates that this person is not prepared to work with others. And finally, plenty of people can say exactly the right things in interviews and meetings, and yet strangely their actions never reflect those empty words. I have yet to be convinced that a blog proves anyone to be ‘smart and gets things done’.
I was close to including the link to Joel Spolsky’s ‘Smart and Gets Things Done‘ above, but decided that a book about hiring in the USA is actually not that relevant to the discussion about the use of new media. But I need to acknowledge that I wrote much of the above from the employer’s perspective, so perhaps that really is the way I think.