Before You Start

One Comment | Nov 08, 2009

 

Many people I know want to someday start their own businesses, including myself. We look at all the famous entrepreneurs of the world and dream of someday to be able to be the same. We are fascinated by their life stories, about how they started in their garage and built a multi-million dollar business. Some of us even might have innovative ideas for new businesses as well. In our work place sometimes we are given the responsibility to lead a project or lead a new product development. But how do we embark on a venture, be it a new business, a new project or a new product? What do we need to start something new? If you do not have a clear vision at the start then you will probably fail.

It is important to know the critical success factors so that you can focus your resources on them and in case of a new project it is important to have a clear understanding of the deliverables and the end results expected. It is good to define metrics to measure the success factors at the beginning so that we know when we have reached our goal. It is important to have role clarity within your team.  i.e. It should be clear from the get go who will do what within your team. Also it is crucial to identify the stakeholders and to identify the preferred medium of communication with them.

Guy Kawasaki, a venture capitalist and the author of the book ‘The Art of the Start’ has some good advice for anyone starting something new. You can watch his speech given at TiECon at http://video.google.com/videoplay?docid=-3755718939216161559#

His first and in my opinion one of the most important advice is starting something that makes meaning rather than something that makes money. This doesn’t mean the product/company/project shouldn’t make money. It means that the main focus should be to make something meaningful. It may be improving the quality of living of people or fixing some wrong in the status quo or preventing the end of something good. He argues that if you build something meaningful it will make money as well.

He also talks about having a specific and simple business model and about starting something that has both high value and uniqueness.

Also in his advice he talks about hiring ‘infected’ people and having ‘soul mates’. By ‘infected’ people he means having a team that is truly passionate about the company/product/project. It is not necessary to have people with lot of irrelevant qualifications. But it is crucial to have people who are passionate. By ‘soul mates’ he means having someone beside you who compliments your weaknesses. As examples, he mentions about Steve Jobs and Steve Wozniak complimenting each other and also about Bill Gates and Steve Ballmer.

Another point he talks about is lowering the barriers to entry. To be successful the learning curve of people using your product should be a small one. You should never ask your client to do something that you wouldn’t do. He elaborates on these points by giving examples of complicated forms that are given to customers by some companies to register for their product. He asks the audience how many people know how to change the time in a VCR.

Most of Guy Kawasaki’s advice is relevant to entrepreneurs starting new businesses. It is equally relevant to an intrapreneur who is a “personwithin a large corporation who takes direct responsibility for turning an idea into a profitable finished product through assertive risk-taking and innovation"

How to write a good response to an RFP

Add Comment | Oct 18, 2009

A request for proposal is an invitation for vendors to submit their proposals for a product or a service. RFP’s allow clients to compare different vendors and gather information about each vendor’s approach and price before making an informed decision on a particular vendor. Therefore learning how to write an effective RFP response is a useful skill to develop. If you are writing a response to a RFP it is important to follow certain guidelines in order to have a better chance of being accepted.

First of all it is probably a good idea to read the RFP cover to cover. You need to have a clear idea on what the client requires. There would probably be sections in the RFP called Deliverables or something to that effect which would give an idea as to what exactly is required. In some instances the exact requirements of the client can be vague. In these circumstances it is important to dig deep and find out the precise requirements or the ‘requirements behind the requirements’.

When starting to write a response it is critical to use the proper format as indicated in the RFP. Failure to do so would probably cause your response to be dismissed even without consideration.

When writing the response try to use an approach such as AIDA (Attention, Interest, Desire, Action).  Start with something that grabs the reader’s attention. This could be something like a quote from someone famous/respected, or a story, or some statistic. Then build on interest by focusing on the client’s requirements. Always try to focus on the client rather than yourself. Then build desire by drawing a picture of the end result of your solution. Show your value proposition and try to give something extra that the client is not anticipating. And end with summarizing the action plan to get the project in motion.

Here are some more tips to writing a successful response;

  • Do not use jargon
  • Be as thorough as possible but have a executive summary to give a succinct view of your solution
  • Offer proof of your qualifications and have references
  • Give examples of similar projects you have done before

 

Good Luck!

Share MasterPage across applications

Add Comment | Dec 09, 2008

 

In my company we have an architecture where we have several websites working together to form one big application. We use the same MasterPage and Theme for all the websites so that they look like the same application. We do this since this allows us to customize our applications based on clients by plugging in different functionality provided by different websites. We also have different Masterpages for different clients and load the correct one dynamically once the user logs in.

One problem we've been having is that we have copies of the Masterpage files in all the websites. Recently I found a good solution to this problem in Piush Shah's blog. This is by using the VirtualPathProvider of .NET 2.0 to load Masterpage from a different location such as a dll. So this dll can be common to all applications and can contain all the different masterpages we want to load. By doing this we can save effort in maintenance because there is only one copy of the MasterPage file. We can use any other path to load the file from such as database, shared file pah, etc.

This is done by writing an implementaion to the VirtualPathProvider class and registering it in the Application Load event. If we dig deeper we can see that the default behaviour ASP.NET also uses an implementation of the VirtualPahtProvider which is MapPathBasedVirtualPathProvider, which maps the url path to a file system path.

Windows 7 Taskbar

Add Comment | Nov 04, 2008

Microsoft Cloud Operating System - Azure

Add Comment | Oct 28, 2008

 

Microsoft announced its new cloud operating system at PDC on Monday. Its called Windows Azure. Read more about it at cnet site

What's your Home Page ?

Add Comment | Oct 22, 2008

 

As far as I can remember my home page has been google. But recently I started using iGoogle instead since I wanted to have all my bookmarks which I keep in Google bookmarks to be accessible easily, also I wanted to keep an eye on the blogs I read through Google reader. A few days back iGoogle layout was changed and google has introduced what they called a canvass view. I for one like it since I can now have google reader load in a tab or in full screen mode without having to go to the google reader site. So this is what my hoome page looks like now.

 

 

Best Practices for Exception Handling

Add Comment | Oct 21, 2008

 

Recently I was given the task of writing a POC for a Reference Architecture for the ASP.NET applications we develop in our company. We decided early on in the process that we are going to use Microsoft Enterprise Library for exception handling, logging and data access.

Using the exception handling application block in Enterprise Library is quite an easy task. You just define the policies for exceptions in the web.config and handle exceptions in by naming those policies. The exception policies could include a combination of Logging, Wrapping, Replacing, etc defined for each exception type.

When researching on the best practices for Exception Handling this Microsoft Best Practices article was one of the sources I found. One interesting point in it caught my eye, which was;

"For most applications, derive custom exceptions from the Exception class. It was originally thought that custom exceptions should derive from the ApplicationException class; however in practice this has not been found to add significant value. "
 

When looking further on this topic I noticed that there was a divide in the community on this issue, especially since Microsoft itself has suggested earlier to use the ApplicationException instead of the Exception class.

I found a good article which tries to clarify this cofusion which seems to be a good approach for me.

 

Getting back to blogging

Add Comment | Oct 18, 2008

I started this blog a looong time ago and stopped blogging also a long time ago.... Since then a lot has changed. I have got married to a girl I simply adore. I have moved up in my career. And also I have been trying hard to find a way to do a Masters and do it in a foreign country. It was a strugle to find a good university offering a course I like and also which offered some sort of scholarship so I can afford it. Finally I think I have found a good course in Australia with a full scholarship although I still dont know the details.

So I have made a resolution to start blogging again. Mostly I will be blogging about the technical stuff I work on. That would be mostly related to .NET. Also from time to time I will blog about interesting stuff happening around me.

 

 

 

Bought a New Machine

2 Comments | Oct 02, 2006

I bought a new machine last saturday, coz i was having so many difficulties working from home lately with my old machine. I bought a 2.8GHz dual core processor and 1GB RAM. But I only got 256 RAM coz aparently they were out of stocks. Still the new machine is mighty faster than the old one. :)

 

 

Working from home..ADSL woes

4 Comments | Sep 13, 2006

I joined a new company called Goal Line Solutions recently. It is a Canadian company just starting off in Sri Lanka. So I have been working from home till they make arrangements for a place.

Today after constantly bugging the help desk of SLT I finally got the ADSL connection. Finally a guy from SLT team figured out what my problem was which was setting a wrong Encapsulation mode. For two whole days I have been hearing many reasons for not getting the connection, few of which are 'Your password must be wrong' (heard this one on two occations, 'We have not still connected it', 'It is working from here', 'We had a server down, it will be up in a couple of hours', 'You will get it today evening', 'You will get it today', 'You will get it tomorrow', etc, etc.

Aparently the default settings the ADSL modem installs when i run the setup needs to be changed. Because for new connections SLT is using PPPoE and LLC Multiplexing and not PPPoA.

 

Passed another MCP exam

2 Comments | Aug 22, 2006
I did Developing XML Web Services and Server Components exam recently and got 968/1000. Think thats enough. Now im going to attempt the SQL Server exam. This time im not gonna let up until i get the MCSD qualification.

Long Time No Post

2 Comments | Aug 22, 2006

I've been busy lately...especially since im about to change jobs. I have been doing .NET projects for the past couple of years. But now im doing Java Struts. It is the after a long time that im doing Java, and Struts for the first time. But it is really interesting to be involved in technologies iv no experiance in. Im learning a lot these days. :)

But i will be working at a new company from 1st of September. More on that in a later post. Have to read some Struts, Tiles, Dojo..etc etc....wow its so much fun.....;)

Superstars or Super Fakes ???

526 Comments | Mar 01, 2006

Sirasa the popular local TV channel is having a reality TV show called Sirasa Super Star, which is a carbon copy of the popular show American Idol. I thought of writing a blog about this because it has come to the final stages of this show and everybody is so much interested in it. I have to admit I have also sent a couple of SMSs for the guy i'm rooting for. Now there are only four people left in the competition. Last week a guy everybody was thinking would win the competition was eliminated (much to the dismay of the fairer sex). I think this guy came this far only because of his looks and not the real talent. There was so much controvercy around him. Most were even claiming that the producers were showing favourisms to him. But all that is history now. The guy i'm rooting for is still in the competition. I hope he wins.

 

 

Microsoft Security RoadShow

Add Comment | Jun 23, 2006

Today I participated for the Microsoft Asia Security RoadShow. The event was held at TransAsia Hotel, Colombo. There were three guest speakers.

The first speaker to start off proceedings was Jacqueline Peterson-Jarvis, who is the senior manager for Security Mobilization for Microsoft in the region. She talked about Microsoft's work on ensuring security in their products. Its processes and strategies.

Then, the audience was divided into two groups IT Professionals and Developers. As I fall under developer's category I participated for the session 'Security Best Practices for Managed Code' done by Matthew Hardman, a Developer Evangelist. This session was really interesting for me as he talked about new security features of .NET 2.0 and the importance of being aware of how security is affected by the code we write. He talked about stuff like encrypting connection strings, signing assemblies, the new secure string type, etc.

Sadly, I missed the IT Professional session and a big part of the session on security policies done by Steve Riley. Evidently they didn't think we were interested in security policy stuff.

Then we had lunch (yeah at TransAsia, wasn't that great though but im not complaining) and headed back to office.

Oops...forgot to mention, got a nice t-shirt and a goodie bag too. But then again you would expect that from a Microsoft conference.

Customizing ASP.NET Validation Controls

Add Comment | Jun 02, 2006

Recently I used a ASP.NET CustomValidator to check for the length of text entered into a TextBox. I used a ValidationSummary Control to show the value of the errortext property in the CustomValidator. The requirement was to truncate the text to the allowed limit and show the error when the submit button is clicked. If the submit button is clicked again the page will submit without error if the other Validation Controls on the page are also valid.

The problem with doing this sort of thing is that if you truncate the text inside the CustomValidator's javascript function the page will submit at once without showing any error.

The solution was something as follows, where I added a second javascript function for the button's onclick event.

function ValidateLength() { var DescriptionText = document.Form1.DescriptionTextBox.value; if(DescriptionText.length > 200){ if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); document.Form1.DescriptionTextBox.value = DescriptionText.substr(0, 200); return false; } else{ if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); } }

the custom validator's function looks like follows;

function ValidateMaxLength(sender, args) { var DescriptionText = args.Value; if(DescriptionText.length > 200){ args.IsValid = false; } else { args.IsValid = true; } }