Posts

Showing posts from 2006

vision and values

I came across this quote which i copied down from somewhere: "A good programmer, in everyday work, is one who can communicate well with users, managers, and other developers, who can write clean, maintainable code, and who can choose the best tools, architecture, and techniques in putting together a solution.". It may be good to have such brief definitions for roles within an organization - often people get confused or lost in the daily rush about competencies required for the role they are supposed to perform. Similar to how companies are supposed to have vision and value statements, I think it may be good to have personal vision and value statements which one can tune over a period of time.

control

I have been thinking about the level of control one should have on team and project without being a control freak. It is said that with a good manager, people will not feel like they are being managed. One idea that stuck to me from the book Peopleware is, you put a person on a job and if you trust him with it, don’t try to second guess and rob him of the chances to make decisions. There are couple of types of managers – those who came up the ranks and know how to do the job and those who don’t know the nitty-gritty of their team’s day to day job. If you think you know more about how to do something than your team member, how do you control the urge of doing the job yourself instead of teaching them how to do it without actually doing it? If someone else is taking 10 days to do something that would take 1 day for you, can you grit your teeth and let him or her go through with it and learn? On the other hand, one downside of having a manager who don’t know or don’t hav...

JUG

I attended a java user group meeting yesterday. Topic was State of Aspect oriented programming. 20% of audience had used aspect oriented programming in their projects. Compared to the demos given using Ant, JaaS, AspectJ, Sping, Log4j etc, I felt like a barbarian who still use System.out.println(“I am here..”) for debugging and Notepad for coding. I am convinced that these tools or methodologies increase programmer productivity, code maintainability and durable design. But how many actual customers who pay for IT projects understand or even care about using these? Then again I guess it is not a choice to be made by customers, but by the programmers. That leads me to next question:- there are so many frameworks, tools and patterns out there. I got involved in one open source project in Sourceforge to get an insight about open source, but had to drop out because of the pace at which people with various strengths (specialists) collaborated. I think the question is beyo...
dream teams I read an article in Fortune magazine about Dream Teams failing to deliver. One of the examples was US all star basketball team failing to beat Canada in Olympics. Basic problem with Dream Team is accommodating the big egos and trying to gel the team. I was thinking about the kind of team that I would like to work with. The people whom I can work with should be easy going and should be able to laugh. Even though the laughter bit sounds like a trivial thing, I have worked with people who are so uptight that I haven’t shared one joke with them throughout the project duration. It is a stifling thing to work with such guys for a long time. Work and Play need not be separate always. A vague memory of a quote I read recently goes something like this – when you cannot distinguish whether you are working or playing, you might be on to something good. Even though money and recognition are important, in my view that comes after fun. The guy working with the only objective of promotio...

age of software

I have been thinking about longevity of software, how it ages and eventually dies. Many of the software that was around while I was baby footing in this industry is no longer around or has come up with newer versions that resemble to the original only in name. Is it possible to write a truly magnificent piece of software that can live forever without being a recluse? If we realistically don’t expect our software to live forever, what are we doing about it? Is it possible to design for the future in advance? Unless hit by a bus tomorrow, I can venture a fair guess about what will happen to me at most 1 year from now, not more than that. Then how can we design a piece of software to work for even 5 years. Do we even think about how many years a piece of software will be used while designing? There is music, films, paintings and buildings that last for a really long time, but the average life of software maybe 5 years (wild guess). There are too many parameters changing ...

problems and solutions

A quote on a manager’s door in my office – “Don’t come in with problems. I want solutions”. I think a beginner will go to his boss with problems and would not have thought about solutions at all. Next level is thinking about options to solve and the pros and cons in choosing any of the options before even going to the manager. You cannot expect the manager to solve every problem. Anyway the first thing he will say is “okay, I hear your problem. So what can we do about it?”, so better be prepared for that. Better yet, identify the best solution and implement and then inform the manager. You have to inform your boss anyway – if you find the problem, analyze it and fix it and nobody knows about it, still you will be on losing end since nobody will ever know how good you are. Even the next level will be anticipating problems and fixing it before it can surface.

How to take up maintenance of an existing software application?

Software development is not always about developing an exciting new application. There are situations where you need to get into application maintenance or enhance an existing application. I never thought I would write a “How to...” or “Art of...” article, but here it is. It is not in any particular order, just things that I may have done in maintenance projects. 1. Suspend judgment: - It is a universal fact that we fear or suspect the unknown. Unless we can see it, touch it and make sure that it is not dangerous, we may withdraw from things without even putting up a fight for it. There are systems developed over many years and it may seem like an uphill task to take up maintenance of such application. I like the phrase “suspend judgment” – be it meeting a new person, watching a movie, reading a book or getting to know a new application. Suspend judgment at least until you can confidently evaluate whether you like it. 2. Persistence: - Another phrase that is sticki...
dreams Life is too short, dreams are too big, no courage to change and the result is inertia. I find dreaming more comfortable than doing something about it. Today for example, I read a piece about the coalitions in Kerala politics - it truly enraged me and they say you need passion to do something – I had all the passion at that moment. But then I thought about what I can do - maybe setup a blog, invite like minded people to collaborate, start a movement, try to open the eyes of the most literate bunch of people in India to sit up and realize that we all have something called a spine and a brain. But no, like all other mallus, I am also not going to anything about it. I can just hope that all our leaders will perish and leaders of the next generation will at least be from a different family. Another one of my recurring dreams is of starting a company, a small one. I have this dream often while coming out of office in the afternoon for lunch. It is spring, getting greener by the minute...
hibernate Winter is still going strong and I am sort of hibernating all through it. Everything seems to be going in slow motion. I am literally playing the waiting game on many things. It is like those horoscopes predicting that it is not good until some particular time and I seem to have suspended activity until then. By the way, second anniversary of my blog has passed and the pauses are getting longer. I sometimes feel that even my interest in blogging has changed somewhat. How long is it possible to write something interesting in a blog that is not about anything specific? After some time, like a child growing up, the thoughts become repetitive and established – there is nothing new to offer. If there is no disturbance or change – good or bad, life as well as blog may have nothing different to say. Many of the blogs that I used to read when I started this, have closed down and some of the persistent ones do not have the fresh perspective that attracted me to it in the beginning. I ...

Top Coder

I came across TopCoder, a site for conducting coding competitions. It is a nice idea to get rated against other programmers and improve the skills. Programming on the job is mostly routine and repetitive for most application development scenarios and standard algorithms are almost never used. This will make sure that we don't forget the fundamentals and with time the routine programs will also get better - develop an eye for better processing, efficiency and performance. What I would like to believe is any activity that is even tingling the brain will add some value directly or indirectly to work - something like regular exercise to keep us healthy. I was curious about any presence of Indians in this. There are thousands of programmers from India and some very good universities, but I didn’t find the country or any university from India featured in the list . This is just confirming my suspicion that we are better in following than leading. Or it could be just that ...