Thursday, December 29, 2005

10% time for productive fun

Someone was telling me a few days back about a certain software company that lets employees work on whatever they wish for 20% of their working week. Jim Shores has written an article on a very similar concept. In his article Jim explains the benefits of letting employees spend half a day every week researching any technology or area of their choice. Even if the research is not of immediate importance to the project they are working on, they will still benefit tremendously from the enhanced perspective. Jim mainly talks about spending the research time on technology and working up a small prototype to demonstrate a concept and to increase ones own understanding. The article is available on Jim's website

Along with experimenting with code, other activities that may also yeild good results are reading articles or blogs written by senior software practioners, listening to podcasts, writing, and teaching.
Many articles written by senior developers are very insightfull, because they write about things that they have learned in the trenches. Some are also thought provoking and challenge conventional wisdom. Those who prefer listening will find that some podcasts are extremely informative. Writing and teaching is also a wonderfull way to learn. Both these activities make us think deeper about a topic and very often I have been surprised to learn that there is so much more to a topic that I thought I already knew well.

Jim mentions in his articles that most people who followed his advice were very pleasantly surprised with the results.

Benifits of blogging

A few days back I was discussing with a friend, how small companies can use blogging to their advantage. To survive in business each company has to maintain a certain brand image for itself. The brand image helps in attracted good customers as well as in attracting good talent to work for the company. Large organizations do the brand building in many ways, some of them being through advertisements, brochures, conferences, and their salesforce. Small companies however do not have the deep pockets that their larger counterparts enjoy, but many small companies do excellent work, and it's a pity that they are not as well known as they should be. The Internet and the concept of grassroots publishing gives smaller organizations, the tools to network and make themselves better known. Blogs and Podcasts are two of the more frequently used tools that can be used. In this weblog I talk about Blogs. I will to talk about Podcasts in another posting.

Blogs as opposed to books capture small ideas. A book is a treatise, it deals with a concept, fact, or fiction in significant detail. An article is a smaller unit of writing, and a blog is the smallest. In a blog one writes about something distinct in a terse and useful manner. Offcourse not all blogs are terse and many are not useful, but that is because there are so many bloggers, all of whom want to share their personal rants with the world.

A blog may proceed towards a book, but it need not. It can be a collection of thoughts, stories, etc that we want to share with our readers. Let me explain why it is important. A couple of days back I was reading Times Ascent. There were recruiting advertisements from well known companies (most of those adds were large and in color), and there were adds from smaller companies. I am sure some of the smaller companies must be really good, but anyone reading Ascent has no way of knowing it. Applicants looking for a job will first apply to the larger organizations, and only those candidates who are not sure of getting selected with the big guys will look at the unknown companies. I think there are two factors that come into play here. The size and the glitz of the advertisement, and the fact that a company is known. An advertisement that does not have any of these factors will most likely be ignored by the good candidates. Size and glitz come at a huge price, and probably are not affordable for a small organization. But being known in the software community is not very difficult. As an example, Joel Spolsky runs a small software company which is reasonably well known and he is also able to attract good talent. He gets summer trainees from Stanford. He has achieved this because he has created a certain persona for his company through his writings (essentially blogs) on the Internet. I am sure it takes time, but the returns that he gets are definitely worth it.

For a practical implementation outlook, all that needs to be done is spend 15 minutes a day writing about experiences with methodologies and technology. It can be a collaborative process where everyone contributes and something good emerges at the end of every week. At times it can also be a personal effort and not a collaborative one. Time spent on this activity will not be wasted, because the process of writing also helps the writer articulate her thoughts, and not to mention write better comments in code :-) If an organization can come up with short peices of useful writing, publish them on their website, and also get them published in magazines then they will create a certain rapport with the software community. The name of the organization will stick in peoples mind. Now when the organization advertises for job openings, they will get a better response because more potential candidates will have heard of the company, and will know that they do good work. In time the advertising can also happen through the blogs. Very often talented developers might apply on their own, because they want to work for a company that does great work. Off course it will be a while before this will happen, but as they say: A long journey begins with the first step.

Tuesday, December 06, 2005

Writing tip: usage of commas

An interesting writing tip from http://www.GrammerCheck.com
---------------------------------------------------------------------------------------
QUESTION: "Now that spring has arrived, the flowers are in bloom, and the trees are budding." This is a sentence my English teacher gave us in class, and I told her that it was wrong and she needed to drop the second comma. She disagreed and said it was right as is.

GRAMMARCHECK: Your teacher is correct. The sentence in question has one dependent clause and two independent clauses:

Dependent Clause: Now that spring has arrived

Independent Clause #1: The flowers are in bloom.

Independent Clause #2: The trees are budding.

The first comma is necessary because a comma should be placed after an introductory [dependent] clause. The comma separating the two independent clauses is optional because both clauses are short and closely related; however, it's never incorrect to place a comma between two independent clauses that are joined with a conjunction.

Friday, December 02, 2005

Free Books

1. Would you like to listen to free audio books? Check out LIBRIVOX.
It contains audio recordings of many old copyright-free books, like Sherlock Holmes, P. G. Wodehouse, etc.

2. Here is a free e-book on the Java programming language. It uses Applets to illustrate certain concepts more clearly.