Are short-cuts always an ignorable option ?

Disclaimer:Maybe the headline is misleading. I’m talking in terms of technology, And I’ll try to present my POV on this highly debatable topic. I plan to collect input from others and expect their honest feedback with promises of answering whatever queries I am capable of answering.

We’re taught since times we get our senses – “Avoid the easy way out”, “Take the longer route, It’ll make u tough”, “There are no short-cuts in life” etc. etc .. ….

While most of it is true in context of the day-to-day life … I somehow beg to differ with notion that “There are no short-cuts in life” (in context to Technology). I believe that usually their are numerous solutions to each of the situations in day-to-day IT problems. And the ease of taking each one of these routes differs considerably when compared to each other.

I am a java developer who’s been involved in development projects for over four years now, and in my four year old journey as a coder, I’ve come across couple of characters who have been religiously following another (I won’t use the word – ‘old’) school of thought – that says “Don’t use one alien technology to learn another” which is good to hear and makes good sense too , but not always. I myself have stuck to this practice at many a times. However strict adherence to this logic is
(a) not always practical in professional work environments and
(b) not always beneficial also.

It’s one thing to be using an IDE (containing auto-completion & syntax-checking) only after you’ve learned the syntax & the compilation& interpretation of the code. Quite another – to be discarding every new & outstanding technical solution, just because you are not aware of the building blocks of the new solution.

If quickstarting one particular technology can lead to normalizing the learning curve for ten different technologies, then what’s the issue? One eligibility criteria here is that for you learning of the quickstarted technology shall not be more vital than the leanings of the other 10 technologies. The technological solutions that may fall in this category for a java developer could be – Appfuse, Maven, Dojo, DWR, Acegi etc. .

In the past, Ive got flak/taunts from my colleagues/seniors for relying too much on different third party technical tweaks/solutions for solving the problem in hand. I understand their concern.Maintainence issues are automatically increased with each inclusion of something new. but my point is – the amount of time I save by learning and using some third-party solution – I’m willing to input the same on the learning that I’ll achieve in solving any possible maintenance/integration issues instead of spending the same time on ‘Re-inventing the wheel’. Yes, it is re-invention of the wheel when something usable exists and you refuse to use it and it’s As I’ve learnt -A Programmer’s Sin.

Yes, one should not be a short-cut man. He’ll be hollow then. Real knowledge is depth of understanding. However, my suggestion is to not get into the habit of learning everything in the same manner. Prioritize your learning and take them case by case depending on how much you need them. For someone developing a business solution based on a bunch of patterns ‘Appfuse‘ may just provide a building block and it can be learnt as it comes in a leisure time focusing more on the dominant technologies that actually solve the problem. The same technology solution – Appfuse – for one of it’s source contributors will be much more important aspect – and it’ll be a start from the scratch learning for him.

I’ll try to follow this up with a personal experience (w.r.t my experience while learning/working with Appfuse).

revert for a healthy discussion.

7 thoughts on “Are short-cuts always an ignorable option ?

  1. Very nice post dude!! A topic where you can have as many perceptions as you want.Undoubtedly, Short-cuts are handy, but its also true that everything comes with a price of its own. We have been blessed with IDE’s and can use it from the day we start our “professional streak”. But the bitter part is, when it comes to some sort of discussion or rather saying openly: “Preparing for interviews”, we all pull up our socks and turn our drives to the API docs and other basic functionalities.Frameworks are meant to be used, and we all are witnesses of that. However, the real catch here is doing the “Introspection” and coming to the decision that you are now ready to use the Ready-Made.To use the short-cuts or the pre-existing building blocks, can save a lot of time, but it also takes away your “ideology”. It says either be with me the way I am or get lost.So, it has its own pros and cons.Short-cuts can make you forget the very famous quote: “The Problem with troubleshooting is that, the trouble shoots back.”, but they can also make you remember “Never let a computer know you’re in a hurry”

  2. @Karan: Very well said. A valid point.The 'short-cuts' – the sort that we are discussing.. bring an ocean to you that you may sometimes need to swim into also … so you've to be better prepared for some swimming or … drowning.Just a point here .. >>> it also takes away your "ideology". It says either be with me the way I am or get lost.Most of things that we use these days provide for customization(whatever comes open-source).. however, I agree that leads to additional work.that's the reason I have advocated – "Prioritize your learning and take them case by case depending on how much you need them"

  3. Well said saurabh!. Its always good not to reinvent the wheel and use what others have alreday proven to be working. But as there is an old saying “To copy also one needs to use his brain”,its very important to verify whether the piece of information or code that we are using fits in the our context or not ….

  4. As Developers, more often than not; we are Squeezed between the sheets of timeliness and results. The uncanny art of limiting yourself to the needs and handling the situation case by case, may (Please Note: it’s may) eventually lead you to compromise on either of the 2 major giants:i) Meeting the deadlineii) Implementation perfectionConfigurability, these days I think is the epitome of making the user feel: “You can achieve it” – provided – “Only if we want it.” This sounds like a *Conditions Apply; technique that most marketing managers use to attract us (Developers Community referred).Nevertheless, I am not against using the established pillars to construct a robust structure, but its the competency of the person that should channelize the decision of using them or not.

  5. I have seen architects saying – if you need something that is not available to you…. BUILD IT. Does it mean – if something is available to you…DO NOT BUILD?In order to achieve RAD (Rapid Application Development) you are not only recommended but suggested also to use ready made things. They are authentic and quality proven.But are we loosing our future in order to protect our present?So it's important to know and one should be able to differentiate what is short and what is not.Creating programs in Java –> Creating JVM –> Creating byte codes–> Creating processors and OS –> Creating Computers etc.One should be able to understand where "short-cuts" starts and where it ends.IMHO there is no harm is using short cuts as long as you do your homework first.

  6. @Sanjeev: very true – what you said ..and .. I completely agree that.>> One should be able to understand where "short-cuts" starts and where it ends.I'ts entirely upto the caliber and competence of the individual to decide what is short or not. I would further like to add that the reason behind taking a short route is of utter importance. If it(reason) is for avoiding something that the individual sincerely believes would not be of much use to him again in his life, he plays a masterstroke by going for a ready-made bridge.If it’s just a result of the last-minute deadline rushes, then Maybe as Karan said He’s compromising on Implementation perfection which will come to haunt him again later.

Leave a comment