Showing posts with label professional. Show all posts
Showing posts with label professional. Show all posts

30 Sept 2014

Career Options for the Older Developer


I recently read a Hacker News post asking what happens to older developers, and thought it would be useful to summarize the various options discussed across the 60+ page post.  As I’m in my late 30’s is a topic I’ve been spending a lot of time thinking about personally.
  1. Become a Senior Developer/Architect - This is the route that majority of developers will follow. The main advantages are that you keep on coding (hopefully) and you continue to learn new skills and technologies.  The disadvantages are that as you grow more senior, you are increasing pulled away from development into team management (see below).  There are also the issues of burnout (seeing the same mistakes being made over & over again in new technologies).  You also need to beware of being side-lined into maintaining legacy systems, and having your skills and experience becoming less relevant. Senior developers will typically also see their pay plateau, and will earn significantly less than some of other career options listed below.
  2. Move into Management – Some developers will expect to move through the progression of team leader and project manager into an IT management role.  Indeed, many (too many) organisations encourage/force developers along this path, simply because they don’t have senior technical career path. The advantages are that is such a common career path, and will generally be associated with higher pay.  The disadvantages – the higher the management ladder you climb the less coding you do. Also, being a manager is an  extremely demanding role, requiring a very different mindset to that of a developer.
  3. Consultancy/Contractor – This option is particularly popular due to the current demand for programmers. The main advantages are obviously the higher salary you can command as a consultant/contractor. You get to work on the projects and technologies you’re interested in, generally for short engagements. In theory, you no longer need to worry about department politics. The major disadvantage is the greater risk you’re exposed to when you’re effectively self-employed. 
  4. Move into other Sectors - Some developers will step out of development and move into other IT related roles (System Security, Testing, Business Analysis), while others still will move into different fields where their skills and experience are relevant (i.e. sales, scientific and engineering roles). 
  5. Become an Entrepreneur – This is particularly popular at the minute, with a growing number of developers moving to startup their own company.  You build a product or a SaaS solution or service company.  You may gain financially, or you may not.  At least you are your own boss (or maybe you’re really at the beck & call of all your customers). It will definitely require a significant investment of time and possibly money to become your primary means of making money.
Know of a career path I’ve missed?  Let me know below in the comments, or ping me on Twitter (@AndyParkhill)

P.S. I tried really hard to find a gender neutral icon for a programmer, and the image of the Lego mini-figure above was the best I could come up with.  I’m not particularly happy with it, as it uses the usual lazy stereotype of software developers (male, geeky).  If you know of a better icon or image I can use, please get in touch!

* Photo by wiredforlego used under Creative Commons

24 Apr 2012

Time for Programmers to Grow Up?

Over the weekend, I came across a tweet sharing an image of a profane commit message.  The tweet originated from a developer from a small but well known Belfast software company.

Original Tweet Sharing Image

Commit Messages Containing Profanity

I wasn't impressed with this, so I replied to let the originator of the tweet know I thought it was pretty immature.  This lead to a (civilized) Twitter discussion with a couple of interested parties about the tweet. 

In this particular case, the screenshot was from a commit to a local repository, which will be cleaned up prior to pushing to a public repository.  It was tweeted by a developer in the company who wasn’t the original committer.  The code wasn't for a client deliverable, but for a community project.  It is worth pointing out that the company concerned does a lot of good work with the local developer community.  The overall feeling was from the guys at the company was that the both commit messages and the tweeted image were no big deal.  I disagree, and this blog post will explain why I think there is a problem:

  1. Profanity Doesn’t Work

Swearing is guaranteed to offend someone.  In this case, it offended me.  It may well have offended others.  I'm not saying this as someone who is blameless -  I do curse.  But there are plenty of ways of expressing yourself without swearing.

  1. Professionalism

I don't doubt the above commit messages were just a way of letting off steam.  We've all been there; my language is certainly not perfect.  But I seriously question the wisdom of tweeting an image with a colleague's name, the name of your company and a load of profanity.  Once it is broadcast on a social network, it is out there for ever.  Would you be happy seeing this one of the top 10 search results for you personally, or for the company you work for?  No, neither would I.

Something relatively minor like this can affect on how professional we are perceived.  In this case, it has diminished my personal opinion of a company who were doing sterling work to support the local developer community.  In the same way, if I walk into a business meeting dropping F-bombs in every sentence, it reflects badly both on me personally and the company I work for.

In this particular case, the code was being committed to a local repository before being cleaned up for release to a public repository, and this was seen as a mitigating factor.  I would ask why take the chance of something like this getting released publically or to a client by mistake?  Why not  hold yourself to the same standard for personal/community code as for a client deliverable?

Incidentally, in one company I've worked for, I'm aware of someone wasting time going through the source code for a major contract and removing the various profane comments before releasing the code to the client.  This stuff can have a cost to a business.

The company concerned doesn't feel this is an issue. But as this recent story shows, just because a company doesn't care doesn't mean their customers will take the same view.  Geeklist lost a significant number of users following this online spate.

  1. Sexism

I have no doubt I will told to lighten up for mentioning this.  But the fact is there are very few female developers.  If we want to start attracting more women into careers as coders, we need (as a start) fewer "brogrammers" and a more gender neutral environment.  Posting a commit messages with references to a sexual act doesn't help, it just perpetuates programmer stereotypes.  If you think I'm grasping at straws here, please take the time to read the following articles:

Possibly you think that I'm making a mountain out of a molehill with this.  Or that I'm just showing my age.  But I seriously think tweeting an image like that is out of order.  Just as I think that a company that allows a culture where it is OK to have developers documenting code in this way has issues.  I would encourage you to respond with your thoughts via the post comments.  If you want to get in touch with me directly, please DM at @AndyParkhill.  Thanks.