Karachi   ->   Sweden   ->   Karachi, again   ->   Dubai   ->   Bahrain   ->   Karachi, once more   ->   London and Leeds

Sunday, May 30, 2004

Software Development Practices: Part III - The Team Leads

So you are a team lead? Are you a good team lead? The simplest possible explanation of the use of the term good can be "a team lead whose team members want to be like him."

Certainly if you have spent a few years in this field, you have learned the basics and should be considered as somebody who not only can work independently but can also guide others. What skills would be most important? Being a software team lead is no different than being lead of, say, a football team. Your personal contribution to the work itself, your communication/ co-ordination skills and your confidence matter most.

In our local industry, a developer is promoted to this position as early as 1-3 years of work experience. And almost always, for a given project /set of tools, he knows the most. If he gets stuck up somewhere he has to rely on self-help. Not many places are able to retain people with more than 3 years of experience. So where do you learn from?

You probably don't have any one who can guide you in your company; nor you will find someone who can be a source of inspiration that easily. But have you looked outside your company? Are you part of some group that meets and discusses problems and their remedies over a cup of tea, lunch, etc.?

Be a bit social and you will find many people of your age and experience that can help you tremendously in your grooming, knowledge and outlook towards things - people like you who are trying to make a difference in their respective organizations (companies, communities, etc.). Look, for example, at FAST 2000 and the Linux Pakistan team.

Secondly, if you are really interested in software development, have you tried the open source alternative? Open Source software development is a blessing for people in countries like ours. While sitting in the comfort of your home, you can interact and work with the best of the best! There are hundreds of extremely interesting projects going on over the web; such as, Tomcat (Java Web Server), Mono (.NET on Linux), Open Office (Multiplatform MS Office Alternate) and Mozilla (the ultimate web browsing suite), amongst many others. Just to give you an inspirational feeling, read the biography of Linus Torvalds here and the famous quotes of him here.

In my opinion, one of the best places to learn software development is the Mozilla Project. And the best place to start from is to download and see the quality of these applications. Try Win HTTrack and Fire Fox: The Browser, Reloaded amongst others. Then, based on your interest and programming skills search a project of your liking on Source Forge and be part of the development team.

And the third option to help you in improving your knowledge and skills (and also earn a bit of money) is to make a team and get projects from the web. The topic of free lancing is a bit broad (ranging from how to find a project to details on bidding and what not to do). I'll write more on free lancing sometimes later.

Once you are sure that you have extra knowledge that you can disseminate, give reading assignments and informal presentational work to your team. There are many interesting topics like

I am only that part of me whom I have met.