Thursday, September 30, 2010

Ideas and their execution…

It’s fair to say that 80% of the ideas that pop up in my head everyday never get executed or reach any valuable form of realization. Reasons for that to happen can be anything from time and money budget constraints to utter disregard for the problem. Until the problem really poses a PROBLEM, I never try to solve it. Necessity is the mother of invention they say.

Today, I came across a great mini-project idea to implement a distributed build system for C/C++ which by utilizing the resources of an idle/available PC would reduce the build times by a considerable amount. Our build at work takes about an hour to complete. It sucks, (Viola! a performance necessity!) and hence the invention. Well, someone else has already invented it. There are a lot of tools/products based on this. distcc, however looks really cool. Like so many of my other ideas, it may stay as just an idea and never be implemented. But, I seriously hope I give this one a try. The guys at work use a proprietary department-wide build system and there’s fairly less chance that such an idea be accepted easily. But, just for the heck of it I’m just gonna go try this concept and in the process (however short) learn some cool stuff.

The line between making up ideas and realizing them into concrete objects which satisfy/solve a problem is definitely not fine. It takes incredible effort and fortunately, for the one who can withstand the temptations of the world, brings great rewards.

Sunday, September 26, 2010

Taking the blame.

I’ve been meaning to write something for a while now and the blog feels kind of dead. Being a World Champion procrastinator, its no surprise I’ve successfully put it off for a long time now. So let me break this down and lets talk some unwise wisdom.

Its no new thing that a lot of people piss me off. Those are mostly people who don’t agree with me. I *really* don’t like those people. But, I guess that’s what makes me what I am. And fortunately for my employer, it has been a good thing so far. What am I talking about here? Frankly, I don’t know too. I’m trying to figure that out as I write this shit blog.

My workplace is a warzone. People point their guns right at you when you include their name during talks, in mails and other formal/informal conversations. Why the insecurity? It’s hard to answer that question in one straightforward line. Think about this – You’re a great software dev, highly appreciated for your work in the previous projects you’ve been in. You now enter a sub-par project where almost 70% of stuff is done the wrong way. A software project can easily become sub-par over a period of time. You just need a bunch of shitty jack-asses who don’t really care about the software being developed and just give them complete responsibility over most of the features in the software. What you get then is “shitty software”. I feel bad for all the shitty software that has been developed over the years. It gets no love, both from the guys who maintain it and the guys who use it.

You don’t want the blame. You start pointing fingers at each other trying to be as secure as possible. Shit! Your friggin’ appraisal depends on that! And that’s the part I hate the most. People who screwed up the software in the first place are no longer here. So why are we blaming each other? Making things right is what needs to be done. But that never happens! All the hostility creeps me out. And yes, I’ve fallen victim to these insecurities lately and I too carry a huge gun around waiting for my next firearms combat.

office_fight

But this is plain wrong. I don’t want to be hostile. I hate being that guy. I cannot blame people who screwed up my work because they’re not here anymore. Blaming them wouldn’t mean anything. Blaming anyone doesn’t mean anything. You’ve just got to agree that we screwed up and make the best of what you have. I love my software and I hate it when somebody tries to screw it up. I get mad at people and say stuff that I regret later. I want my work to be fun. Don’t screw it up please.

When you’re new to the software development game, everything has to be perfect. “Perfect” gets a new definition after you spend some time developing software. And, as time passes you realize that every single decision you make today – big or small – will come to haunt you if you don’t put your heart into it in the first place. Don’t be the person who fires the blame rockets everywhere. Nobody likes such people. It even makes you look really childish.

images

I try to see these problems as opportunities that need to be worked on. Improving the software makes my work more and more fulfilling. I’ve got a great team of developers/testers who are pretty much dedicated to building a good product. Encouraging them to do the same makes my work twice/thrice/.. as easier. That makes me happy. There will be a few glitches along the way. But, I’m glad to know that we’ll survive.