Crazy code

by

Programming, as I understand it, is something that needs one to solve problems by analytical thinking. But one thing that I have noticed recently reviewing code is that a lot of people code in a pretty haphazard, “just finish it” kind of way. What happens due to this is that, you end up with a lot of crazy code. Crazy code?! Oh, this is not code that won’t work. It will work all right… cause that was the objective from the start right? to get it working. What makes it crazy is that, it present to you the work created by a shut-out mind. Sometimes it feels like the person was almost brain dead or highly doped. Yup! I find no traces of the logical work by a thinking mind.

There will always be those who are no good at programming. Who are just doing a job with no love for the programming and logic that goes behind it. I can’t seem to find a way to help them, but what was more shocking was that, a lot of good programmers too wrote crazy code.  Why?! One thing that totally kills the thinking mind are deadlines set by a non thinking mind. When you work in a services company, and have clients who always want the code ready before they thought of developing it you get mindless deadlines. Yes, you can argue; you can get extentions… But whenever there is a deadline, that leave no scope for a programmer to sit there, think about the situation and decide the best solution, you are bound to find crazy code.

Who pays for it?! Before we talk about who pays, lets see what all costs we are talking about here. I have found that you spend more time writing crazy code that writing well thought out code. Yes it may appear that you are just scribbling on paper when you should be programming… but that saves time. So the first cost comes in extra time spent by programmers. The code is inefficient, so system performance is degraded. User experience will be bad and you are bound to loose value. This code is difficult to understand, debug, modify, fix, maintain… they all add to a lot of extra cost. In the end you will hire more programmers, tighten the deadline, mess up the code even more, and come up with a crappy product. Losses losses losses….

If you are a programmer who wants to avoid writing crazy code, I suggest writing a small plan on paper, needn’t be a complex flow chart or something, but just a few lines of step by step documentation of how you plan to solve the problem at hand. Before this is ready, don’t even start coding. You are bound to miss out a lot of things. This plan is not foolproof, but avoid a lot of logical errors.

If you are someone who sets deadlines…. GIVE YOUR PROGRAMMERS TIME TO THINK!

What you cannot do yourself isn’t easy!

by

If you can’t do something yourself… then it is not easy. And you have to no right to call it an easy or simple task. Does this happen only to me, or do you too find people who call certain task easy? Tasks they know nothing about, and have no means of completing or at times even attempting. I can’t get the logic! If you have never attempted something, how can you know it is easy?

If you are tempted to call a certain task easy, attempt it once by yourself. If you can finish it of quickly and without much effort; then go ahead and call it easy. Before you say, a plumber has it easy, try fixing your own taps. Before you say, a housewife has a great time just sitting at home, try doing all the chores yourself once. If you fail, appreciate the skill of someone who makes a difficult task seem easy.

I have been amazed by all the different skills that humans can achieve. Skilled people make the most difficult tasks seem like an effortlessly natural act. That doesn’t reduce the complexity of the job one bit, but it does give a testimonial to their having mastered the job. To walk up to a person whose job you don’t understand, and to tell him that he has it easy in life; is an insult to that persons’ skill. But worse than that; it shows how stupid the person passing the remark is.

The next time you are tempted to call as task easy, think if you can manage it all by yourself.

I am lazy

by

I am really lazy… you too should be!
I am really lazy… and who knows, one day civilization may progress due to me!

Did that sound stupid to you? Think again! Those who are not lazy, usually go about doing the same routine tasks daily. And most of them even feel proud about that. It is us lazy ones who bring about change, invent new ways to make our lives easier, and that is how civilization has progressed.

We need to be very clear about one thing here: we all usually have some work that has to be done. There are those “non-lazy” types, who will start right away and slog like a beast of burden till they have it done. But most work is repetitive; the most apparent way may not be the easiest. If you have to move a group of boulders, starting to push them right-away is not the best solution. The lazy types like me spend some time to find a couple of logs that you can roll under them.

Mechanical or routine jobs are meant for machines and should be entrusted to them. If you do the same thing everyday, there sure must be a way to make a machine do it. Of course in the real world this may not always be feasible… but when it comes to computers, you can automate all routine work. That is when it helps to know programming. No I am not evangelizing that you learn programming (it is always good to know it though), I am just saying that, any job needs some thought before you start of. That brings me to the, “I didn’t know” types. Oh, putting logs under that boulder would make it so easy to move it, I just didn’t know. You didn’t think. You didn’t even bother to find out the various possibilities. There are so many innovations taking place every day, you need to be looking out if you want to save yourself of some trouble. There are sufficient lazy people around the world trying to make life easier. Someone may have found a better way to do your tasks.

Ignorance is a crime. Laziness is not. Not to have the want to learn something, not to try out new methods to doing things is to get stuck back in time. But most of the “non-lazy” fellow beings seem to resist any change introduced to them. They love the routine. I simply hate it. I need things to keep changing. That is what makes life lively, worth living. A very common belief is that lazy people don’t change a thing, but it they who make most of the changes that matter.

Now what do you think!! Would you still look down upon laziness? I hope not!!

So, go ahead; be a less ignorant and more lazy and make your life worth living.

Avoiding technical jargons

by

I work in the IT industry. So for most of the workday I am surrounded by people who work with computers and often do a lot of programming. And you can’t help but to notice the use of words, metaphors and even jokes; that a non-programmer would not be able to understand. There are cases, like when you are discussing a technical issue, where the use of technical words becomes unavoidable. I believe every profession has a jargon that only fellow professionals will understand. Then why am I so vehement to avoid technical jargons?!

But this becomes a habit and people use jargons even with non-programmers who would not know them. Using jargons hampers communication. The best method of communication is to stick to a simple language. It needs conscious effort to keep your language understandable to all. Isn’t it good that everyone should be able to understand you?! The more people understand you, the more you exchange ideas. You will find several problems that you can solve that way. Language generates a gap between those who face problems and those who can solve them.

When I formally learnt communication at college we were taught that you have to always keep your audience in mind. Audience is every person who listens to what you say. Not just when you are giving an important presentation. When unsure of the background of your audience simple short words are what you need. Yes that communication barrier that you heard about can exist even with people you know, and programmers more than others seem to be falling prey to it.

 

Avoid Jargons! Communicate better! Live smarter!!