Religion in software development?

I recently had a discussion with a colleague about why var makes your code more readable.  I think it does.  He thinks it doesn’t.  It doesn’t really matter for this post who is right or wrong, but it got me thinking…

During the chat he accused me of being religious zealot, pushing my religion on to others.  On reflection this affirmation upset me.  I think maybe I was a little firm with my belief that var is more readable.  I am keen to help people learn, but I don’t want to be a dictator.  So, I’ve learnt something from the experience and reaffirmed something a friend and ex-colleague once told me “don’t be afraid to leave someone in their own ignorance”.  I’m not by any means saying my colleague is ignorant (he is far smarter than I am!) or I’m right about var, but it’s a good lesson to learn – not everyone will see something from your point of view.

So now I’m stuck with this quandary about religion.  The use of var is a very simple and small example of something one could be said to be religious about.  You don’t have to look hard in the blogosphere to find debate on topics such as agile practices, lean, scrum, SOLID, TDD, GIT and NoSQL.  Is this a religious debate?  I’ll stick with var because it’s small enough for me to make sense of…

In the past I actually agreed with my colleague, I thought var made code less readable.  But my opinion changed through both mentoring and my own experience.  In short I went on a journey (I think this journey is out of scope for this post, I may blog about that later).  The important thing here is that sometimes people have to go on the journey, experience the pain for themselves, before their opinions are changed.

Some people just don’t like change.  This is really well explained in the parable of ‘Who moved my cheese’.  The characters hem, haw, sniff and scurry portray different peoples reactions to changes in their environment.  If you’ve not read the parable, I suggest you read it.  It’s much more well explained there than I will manage here.

So is it that sometimes the view that certain approaches are religiously evangelised coming from people who have not yet experienced the problem first hand?  Or, people who are afraid of change?  An interesting aside here is that the word ‘evangelist’ is often chosen by people who are proponents of new technology.  Evangelist has many religious connotations…  Anyway.

I think it’s important to state the obvious – change for change sake is not a good thing.  The problem is that how do you know it’s not change for change sake?  That’s experience.  So to know, you’ve either got to try yourself, or trust in others who share their experiences.

The last point, which is probably the most important.  Software is immature.  It changes all the time.  New languages.  New features of old languages.  New technology stacks.  This change is moving us forward.  It is good.  We all have to agree that higher level languages provide improved productivity.  If we were afraid to change, we’d never have moved forward.

Key in software is open mindedness.  Strong opinions which are weakly held.  People tend not to change their religion yearly.  So is there religion in software and if so who is religious?  You decide, because I won’t try and convince you…


About Tom Peplow

C# .Net developer based in London and the South Coast
This entry was posted in Uncategorized. Bookmark the permalink.

4 Responses to Religion in software development?

  1. Mark Heath says:

    Since you’re talking religion, here’s some software development wisdom from St Augustine: “In essentials, unity; in non-essentials, liberty; in all things, charity”
    I’m in favour of the var keyword in most instances too, but to my mind, it falls into the “non-essentials” category. Not everything is worth fighting for.

    It’s one reason why I don’t like coding standards documents very much. They tend to be dogmatic about all the wrong things. Following Bob Martin’s ideas of SOLID and ‘clean’ code would be of far more benefit to a software team than quibling about the var keyword, placement of curly braces and tabs vs spaces.

    • Tom Peplow says:

      Thanks Mark, very profound!

      I totally agree with you on SOLID and ‘clean’ code. I’m also not a fan of massive coding standard documents. I think in clean code they say that the best coding standard is a sample class. You’re quite right about var being non-essential. I think I will borrow St Augustine’s words in the future.

  2. Mark Heath says:

    BTW, nice blog, I’ve added it to my feed reader. Didn’t realise you’d left iMeta. Hope the new job is going well.

  3. Allan says:

    mmm, I don’t have a clue what you guys are on about from a software point of view (VAR?) 🙂 but I do admire you for speaking up and exploring your faith to new depths.
    My view on the title would be (looking at it from a Christian point of view) if there is spirit in the developer, there is likely to be spirit in his development.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s