Entries from October 2006 ↓
October 13th, 2006 — Business, L2C2, ગુજરાતી - Gujarati
We do a lot of work in localization - especially for Gujarati language. We met Mahesh Kulkarni of CDAC Pune yesterday. We have met many other people in public sector and government over the last 3 years about Utkarsh and GujaratiLexicon. We have always got many hurdles. People have always spoken a lot about it, appreciated the efforts, acknowledged the need. But then failed to act on their promises.
This was a different experience. A few months ago, CDAC took localized versions of popular applications from us, and actually paid us for them! Yesterday, they showed interest in doing the same for other language resources we have developed - including dictionary and thesaurus.
It’s not just their willingness to pay money for the work we have done that made me happy. It is simply their approach. Mr. Kulkarni was extremely professional, courteous and valued the efforts put in. He has been in this field for more than two decades and as the head of GIST group, he knows the sweat and emotions associated with building something for one’s mother tongue.
One of his philosophies that inspired me was about commercial aspects of language software. There is no harm in charging money for software, rather it should be done. And when foreign companies come to India for acquiring language technologies, they should be charged fairly for the services - rather than discounting the fees for the benefit of associating with a big name. Because at the end of the day, they are going to sell to fellow Indians!
It was good hearing about his experiences and learning from them. And I really salute the contribution he is making!
October 11th, 2006 — Technology
I used a very interesting technique in my college exams. I knew how long an answer should be for 10 marks (or whatever). After I got the question paper, I would decide which questions I will answer. Then take the answer sheet and start writing down the headings for each answer - leaving enough gap to fill the actual content. Once I have completed writing the main points / headings of each answer, I come to the first answer and start filling in the gaps.
This made me ask for supplements within the first half an hour! People turned their heads at this! But it worked wonderfully for me. I could complete the exam on time, and did not have to think about the answers while doing the “gap filling”
And I do that with code now!
All my code starts as comments. I would put the whole logic of the module as comments in the file, and then go and fill in the code after that.
When I start on a programming module, I think through it and have it ready in my head before I actually code. As a matter of fact, I keep telling people to “run the code in your head, before you run it on the computer”. I also tend to scribble complex logic on paper before I do code.
Working on a complicated logic yesterday, I realized pseudo code can be a great tool to share logic with other people. Rather than keeping it to myself, I can sit with the team, think up a logic, and document it as pseudo code. Simple sentences that would describe the steps in a module / function. When I am sitting in a meeting room, I tend to do this in a text file. While with developers, I would go ahead and add it as comments. The devs then can fill in the code later.
But it is extremely important that these comments / pseudo code is readable and understandable. Otherwise it serves no purpose.
Just another thing why communication skills are so important in programming!
PS: And that’s why I think Ruby and RoR have become so popular! The code is like pseudo code!
October 9th, 2006 — Technology, Updates
We have a few dedicated servers with EV1. It’s been good so far, but we faced just too many problems in the last month. So much that we are thinking of dumping them.
We detected bad sectors on one server’s harddisk. Since we had a backup harddisk on the server, we asked the server guys to swap the disks. They did. Took much more time than promised. And after a few hours we started noticing bad blocks on this disk too. We asked for replacement. They provided replacement. But did not set the machine up. So we moved all accounts over again. PHP broke after this. And for some unknown reasons, is not yet fixed. They now just removed one disk without intimation - a disk on which we had part of the backup. Thankfully we had moved the data over to another server but this caused more downtime and a good bundle of troubles.
I am not sure who’s managing their support tickets. I am suspecting it could be somewhere in India or Philippines. It’s not been good - to say the least.
Having your servers down is worst thing for an IT company. And unfortunately, we have seen that a number of times in the past month.
We are tired of them now!
October 8th, 2006 — Business
We brainstorm about new business ideas every now and then. Some things I recently:
- We should think about the size of the idea, not just how good it sounds! How much revenue can it generate?
- The idea should provide a steady value addition and revenue stream.
- Anything that gives less than 20% growth in a year is not worth it. Any matured business would grow at 15% to 17% every year without much effort. As a matter of fact, we are looking for even better growth ideas, since we are still growing.
- We can focus only on 2 or 3 new ideas at a time.
- At this stage, both organic and inorganic growth should be considered. We can now look at acquiring positions in other companies that provide synergy and high growth possibility.
- We can take risks. As long as it does not burn more than 33% of the profits.
October 6th, 2006 — Business
First Tuesday of every month, is a review day for us at Magnet. We meet individual teams, discuss about the previous month and set out goals for the current month. It was quite interesting this time.
- We completed one month in the new office! But it feels it’s been much more! So many things happened in the last month!
- Had problems initially with the new systems setup, still facing some problems in Internet connectivity, no audio on the thin clients etc.
- People have now adjusted to the changed office location, timings and the culture.
- We are more than 80 people now and it takes me a whole day to catch up with each developer and see what they are doing!
- We did some wonderful work in September. It was unofficially the AJAX month! Almost all projects had some or the other AJAX in them!
- We lost one RIA project, faced difficulties on a few others - but at the end of it, we made customers happy! And learnt a lot in the process!
- There is some neat work going on in different teams - new age, web 2.0 style, futuristic!
- People have started following simplicity and usability principles! The training we did in the earlier two months is paying off now!
- All projects were QA’ed this month! Considering the hectic schedules, that’s quite an achievement!
- The new team is excited. Everyone mentioned they learnt a lot, appreciated their mentors.
- The seniors said they did not learn much in the month. But then we could come up with a good long list of things
- We talked about fixing broken windows! A principle from the Pragmatic Programmer book that advises to fix any holes in the application as soon as possible. Because if we don’t it leads to new holes coming up everywhere.
- People also said that pair programming is helping them.
- And planning too - people who spent half an hour at the start of the day to plan the tasks, could do things better.
- We came up with the idea of making individual targets for October public. So now we have a full list of targets (with dates and times) for everybody on a board in our main dev area. Anyone from the team can check up with another and support them in achieving their goals. But they need to be achieved!
- Spending an additional hour everyday on training, improved efficiencies for the RIA team greatly.
Looks like October is going to be even better!