Source version control fable

Fred wrote code.

 

Fred is an intelligent software engineer working for a small startup. He has to write a small demo for his company for a product they want to raise money for. He knows time is short. So he starts writing the code. In the evenings and weekends he dumps everything on a disk and takes it home where he continues improving it. Sometimes he runs out of disks and he emails himself the code back home. Or sometimes he just uploads it on a FTP server which he can access from home. He is a passionate employee.

 

The first demo goes relatively well. He gets requests for more features to be added to the demo based on the feedback of the first demo. He keeps working at the office and at home. He keeps emailing code, burning CDs at the end of the week or FTP-ing the demo source code on his own private server. The following demos go well and the company secures funding.

 

When Fred is interviewed later on about his efforts, he mentions the following problems and things he would do differently next time.

 

"Working with the same sort code at work and at home definitely contributed to the overall success of the project. But the source code management was very poor and it was one of the problems frustrated me the most. I started with the naive idea that I'm working on a demo which we'll throw away in 3 months. As such, I went for something quick and dirty. It was frustrating.

 

I would need to get the whole source tree, zip it, put it on a disk or email it. Once at home, I had to either overwrite everything, or if not sure, do a diff against the code I had at home. It's painful and you have to repeat all these steps this every time."

 

Moral of the story: Don't underestimate the importance of a version control tool even for small one-man projects.

Thursday, May 31, 2007 3:06:01 PM (GMT Daylight Time, UTC+01:00)#  
 

Who wants to steal your source code

The source code is the bread and butter of every software company. As such, having your source code stolen must be one of the most frustrating experiences. What's the worst it can happen though?

 

1. Someone else uses it to build a clone of your software and make big money competing with you

 

Usually it takes time to transform source code into something that looks differently. But still, there are companies that do it. There are many companies secretly using GPL code for example.

 

Your options: If they start making big money, you can sue. That's if you can figure out it's your source code they're running.

 

2. Hackers use the source code to expose and/or exploit security holes in your software

 

This is nasty. Sometimes hackers will use these security holes silently and it will take a long time before you discover the problem. You might even get sued by compromised customers if you're not careful.

 

Your options: Keep a close relationship with your customers, ask them to submit problems about your software. Conduct regular security audits. Be serious about security and try to identify security holes internally or working with a specialized security expert.

 

3. Your competitor got their hands on your source code and they use it to improve their product

 

This can pose serious problems, especially if you have innovative technology that you invested a lot of money and effort into. However, usually it takes time to refactor source code and integrate it into another product. So it's not as bad as it seems.

 

Your options: If you can figure out they have stolen your source code, you have the law on your side. In order to protect innovative ideas, you can patent them.

Monday, May 21, 2007 8:18:49 PM (GMT Daylight Time, UTC+01:00)#  
 

Windows OS versions to support

Choosing what versions of Windows to support is a tricky decision. Should you support Windows 95, 98, ME, NT3.5, NT4, 2000 and so forth? Where to draw the line?

But first, why not support all of them?

The first naive idea might be to support all of them, thus, maximizing your market share. Well, most software vendors don't support all of the Windows OS versions. It's not because they don't want to, everyone wants to increase their base of potential users, right?

But supporting older versions is expensive. The differences between OS versions are significant in some cases. 95 and 98 for instance don't support Unicode natively.

Further more, Microsoft itself do not support these older platforms anymore. Below, you can see the OS license availability roadmap:

 

Expired:

1. Windows 95 - expired: November 30, 2001

2. Windows NT Workstation 4.xx - expired: June 30, 2003

3. Windows 98 - expired: November 30, 2003

4. Windows 98 SE - expired: March 31, 2004

5. Windows Me - expired: June 30, 2004

6. Windows 2000 Professional - expired: March 31, 2005

 

Live:

1. Windows XP Professional - will expire: January 31, 2009

2. Windows XP Home Edition - will expire: January 31, 2009

 

This only includes the desktop OSes, not the Server versions.

It is pre-Vista too.

 

However, it seems to suggest that XP and Vista are the only viable choice for consumer products. Is that so?

 

According to a market research by OneStat.com, the list 10 most popular OSes* (including Windows OSes) is:

 

1. Windows XP - 86.80%

2. Windows 2000 - 6.09%

3. Windows 98 - 2.68%

4. Macintosh - 2.32%

5. Windows ME - 1.09%

6. Linux - 0.36%

7. Windows NT - 0.24%

8. Macintosh Power PC - 0.15%

 

(* This is a list of operating systems on the web and it was released in August, 2006)

 

It shows clearly that XP dominates the market, but it also shows that 2000 and 98/Me are still live out there. Now the question you have to ask yourself is: Are you willing to lose 10% of the Windows market represented by 2000/98/Me/NT?

Friday, May 04, 2007 8:51:23 PM (GMT Daylight Time, UTC+01:00)#