Home > Development > Programmers – Time to Make Up Your Own Mind

Programmers – Time to Make Up Your Own Mind

Puppet

In this day and age of being told what we should think, whether if we should like a film or not; a restaurant or not;  a make of car or not;  or what type of food we should minimise; so to is the almost equivalent to religious evangelism publicised by certain authors, speakers or even bloggers (yes I am a blogger too) on their idea on how we should program,  or SDLC patterns such as source code control or how to implement say continuous integration and/or deployment.   Many of the suggestions are brilliant, helpful and well deserved, particularly for those with little experience in the field.   However it is all too easy to become a disciple of the new religion without questioning what is being said.

As with most things,  a teacher with incorrect information or a teacher with an agenda is a bad teacher with a motive.  The same is said for programming authors or speakers.  Perhaps they want to sell you more books?  Have YOU thought about it?

I mentioned that many will accept an idea without questioning the mechanics behind it – take database object relational mapping (ORM) made arguably famous by a certain well known author and speaker.  People like it cause it makes the DB look like an object-orientated tree graph.  Nothing wrong with that, I particularly like canonical protocols or singular agnostic APIs.   If I were to take the critical approach to ORM I could encounter:

“awww everyone else is doing it;  It’s much easier!”  – they say

Is a common defence.   Fair enough, but it demonstrates the obvious and unfortunate scenario that certain developers will do a thing if there is sufficient evidence for doing so in the first place (particularly if it requires zero-coding on their part) or if it makes their job easier.  The alternative is not to use ORM but to use more complex and time consuming patterns such as say stored procedures.  I’m not saying stored procs are better as that would be hypocritical to this topic.  I’ll let you decide.  I find some developers are not aware or do not want to think about and or investigate for themselves the overhead of data transformation let alone network activity.

Which is faster –

  • the system where the majority of data processing happens inside the database in stored procs with minimal data transformation or
  • the system which the majority of data processing occurs external to the database,  subject to data transformation via an ORM data typically on another computer via a network?

I’ll let you decide that.

It doesn’t have to be an ORM either.  Perhaps they have not fully thought about log4net, StructureMap, ASP models.  Are they good tools?  What are the pros?  Are there any cons?  A project for the reader.

“Ease does not necessarily imply high performance in arguably the same way as complexity does not imply unreliability.” – Me

Many say simplicity is best.  Perhaps.    The question is have YOU thought about it?  What does it mean to you?  A project for the reader.

Which is better – a turn of the century zepplin or a contempory Boeing 747 Jumbo Jet?  Which is more reliable?  Which has more fail-safes?  A project for the reader.

Don’t let your instincts prejudice your eventual decision making process.  Think before you say something I always say.  Question and debate those in authority, but try not to disagree if the only evidence on your behalf is that others are doing it your way.  You have not contributed anything personal to the debate.  Again think for yourself and come up with your own evidence.  This is what I encourage of my juniors.

“Extraordinary claims requires extraordinary evidence”

Some programmers sadly are so keen to use well known off the shelf systems with little thought as to their actions.

e.g.

A need for inversion of control (IoC) such that a database or logging object can be wired to client objects is quite understandable.  Such things are quite nice and do seem to make our jobs easier.  IoC systems typically require configuration as I have blogged before.  You must ask yourself –

  • is the configuration difficult?
  • Is the configuration error prone?
  • Is the configuration open to security vulnerabilities?
  • Does it make it all worthwhile?
  • Have you considered a plain 1990s Class Factory Pattern?

A project for the reader.  Again ease may not necessarily mean correctness.  What do you think?

Don’t think something just because someone told you to – learn to think for yourself again.

Again, this is not specific purely in the IT field but can apply to our daily lives too.

Advertisements
  1. 2011/10/15 at 6:25 am

    Good stuff Micky!

    I regard the pain of ORM as paying an insurance policy. It’ll pay for itself when you have to change DB provider. Wasn’t there an Oracle rumour a while back?

    In any case, I think I know which ORM product you were talking about. That’s why you should *really* look into Mindscape Lightspeed. I still think it’s the best out there for .Net.

    Like

    • MickyD
      2011/10/15 at 7:36 am

      not quite what i was getting at but am glad you have done your own research all the same – the point of the topic. thanks herdy.

      Like

  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: