Saturday, February 24, 2007

Free Online course offered by MIT

Wow !! this is the coolest thing I have heard for some time. Massachusetts Insitute of Technology (MIT) is offering FREE opencourseware is varied topics from Aeronautics all the way to Women's studies.. anyway I am interested only in "Electrical Engg & Computer Science". It has numerous topics ranging from Graphics to Compilers. They have good online course material, which is of great value. I am really enjoying reading the course on "Computer Graphics".

Choose a topic and get rocking !! My weekends are going to be busy for some time.. Don't we sometimes hope that we could have got access to such amazing sites a bit earlier in our career.
Better late than Never !!

I have an OpenID Account

I have been thinking about creating a OpenId account for myself and start using it for sometime now. Today I finally ended up creating a OpenId through MyOpenId.

BTW "What is OpenID anyway?", It is a new way to authenticate yourself in the web. You can use it in any of the website using OpenId as the login mechanism. The common problem users face is there are 100 different website they access and every website has some kind of username/password, after some time it becomes tedious to maintain this info. So OpenId is a protocol developed by diverse community to address this issue. Using OpenID you could go ahead and login to a OpenId enabled site as if you have already created a username/password. Hope everyone remember Microsoft's similar effort few years ago by trying use Hotmail passport as the centralized place for hosting user info. But users quickly rejected the idea of Microsoft having all the users data in a centralized place which could be a problem down the line. OpenID is trying to achieve the same but it's by a group of people from diversified community coming together to achieve this. At this point I am not sure how far it will be successful but I like the solution it offers to the end user.

There is a good screencast if you want to learn about OpenId.

Tuesday, February 20, 2007

Enforcing coding standard

As a team leader, I have always faced problems enforcing coding standard among my team members. You could always come up with a 20 page document which goes for a toss when the team codes crazy to meet the deadlines. To some extent you could use fxcop to enforce some rules that should be strictly followed before an assembly is deployed in the development server. But you cannot enforce some of the rules like, you want the variables in your project to follow a particular convention (camel casing/pascal casing). In this scenario a Dxcore plugin comes to the rescue, Code Style Enforcer is a tool created by Joel to enforce these constraints in the IDE itself when the developer is coding. It checks for the conditions on a line by line basis and underlines the appropriate lines that are not compliant with your coding standards.

This is the first time I am hearing about DxCore library for creating plugin(s) for Visual studio, but after googling I am finding quite a lot of good plugins that have been created using this.

I am going to install this plugin in all my team members system to enforce the standards rathar than throwing a document at them to enforce standards :)

You can create your own plugin by reading about it in this blogpost from Jason.

Wednesday, February 14, 2007

Down the memory lane - Trip to Maldives

I went down my memory lane for a while thinking about the list of events that happened in my life an year ago.. I had been to Maldives for my honeymoon in Sun Island(feb 14 - feb 17th, 2006). I could claim that I have travelled quite a bit across the globe, but the trip to maldives could certainly be rated as one of the best destinations I had been to.

We took the air-taxi from the airport to the resort and we were able to see the corels and the different colors of the water. We were put up in a water bungalow ( where you can walk down the steps and be in water..) Isn't it amazing ??? I certainly don't have words to explain the beauty of the resort we stayed in. Water in all imaginable Blue shades, crystal clear water for miles !!!

I hope to go back to Maldives again for a short vacation sometime soon.. I would suggest maldives as one of the best vacation spot for anyone in India. Let me know if anyone is looking for further information regarding Maldives.

Tuesday, February 13, 2007

SQL Server 2005 Installation problem in Vista

I have been trying to install SQL Server 2005 in my vista ultimate edition, but it fails with the following error. "This program has known compatibility issues" and it's failing to install core server components.
It's really wierd if I can't install sql server 2005 properly in my system how do they expect it to be fixed by Service Pack2 ?

Monday, February 12, 2007

.Net 3.0 WPF Crash Course

Folks looking to learn .net 3.0 (especially WPF) can use this link to get themselves updated pretty quickly. This blog has a series of good/short posts written about WPF. It's worth the time to get a quick start on WPF.

Sunday, February 04, 2007

Role of Business Analyst, Developer and QA in a project

What is the role of the following resources for implementing a successful IT project? I know that thousand other roles like project manager, technical architect, development manager.. etc. exist in big companies but in a start-up company you will see that all these roles will be performed by the following key people.
  • Business Analyst
    Typically the first person to get to know the change in business requirement, gather them and document it completely and they will be the point of contact of any questions/clarifications in the requirements document.
  • Developer
    This person will take the business requirement and create a high level technical design document and will start coding using his favourite tool (.net) :). They should be responsible for ensuring that all the aspects of the service like scalability/reliability/extensibility of the code has been taken care of.
  • QA
    QA is a person who should create the test cases based on "Requirements Document" and should never interact with the developer for any questions/clarifications. They are in charge of making sure the final code that gets released is error free (typically through black box testing).

Alrite... I hope all of us are in the same page with regards to the functionality of these resources. Now let's take the scenario after this code has been rolled into production. I am sure any code that gets released will have bugs in them who takes the responsibility for the bugs. This is my idea on who should be responsible for the bug.

  • Functionality missing
    Has this been documented in Business Requirements ? If so, where there test cases created by QA to cover this ? In case the functionality has not been documented the blame should go to the business analyst and in case there were no test case the blame should go to the QA.
  • Scalability/Reliability Issue
    The Developer should be solely responsible for such issues. These things are difficult to test by QA and the design should have addressed these issues.
  • Functionality not working as per requirements document
    When a clearly documented functionality is not working, the blame should go entirely on the QA for not testing it appropriately.

But I don't see this process happening in many places, the developer is the first and only person to be caught for any bugs being reported and he is instructed to fix those issues within the next business day. Being a developer and hearing the same from friends working in startup companies, I am tired of working in such environment. I hope this trend will change in future and the appropriate resources will be pointed for their mistakes.