Wednesday, April 30, 2008

My job is moving offshore!

Judging from the buzz, or lack of it, it appears that the rhetoric against offshoring has faded somewhat and especially the technology sector seems to have come to terms with the practice. However if one pays close attention it is not hard to notice that there still is quite a bit of resentment – so much so that a lot of businesses try to conceal from their customers the fact that they utilize offshore resources!

A shortsighted Lou Dobbs’ type analysis would conclude that offshoring is hurting the American people – high paying jobs are moving overseas at a fast pace and the Americans are getting the short end of the stick! The people who conduct such analysis are strong advocates of protectionism as the remedy – they want the government to intervene and close the gates to offshoring. While to many programmers and people from other professions who have lost their jobs to their offshore equivalents this may sound great, in the long term such policy would have devastating consequences.

Let’s rewind a few decades and draw a parallel (albeit not a perfect one) with the time when the government intervened to protect the once flourishing auto industry by restricting the imports of the foreign cars to the country. In the short term that was great for the American auto industry and consequently for the armada of people that the industry employed – our great auto companies continued to prosper un-challenged. That is exactly what set them up for the huge catastrophic failure that we have been “watching” unfold in the last few years. By shielding them from the competition in essence the government ensured that they would gradually turn into impaired, intellectually challenged, slow reacting, bureaucratic organizations incapable of competing in the open market. How would that have played if the auto industry was left to face the challenge on its own without government help? I am sure there would have been some “bruising” but the American ingenuity and entrepreneurial spirit would have certainly emerged victorious from the “battle” and we would all be now driving reliable, safe, comfortable, elegant, and highly efficient, American made cars.

Is it painful when the lower cost of the overseas resources puts downward pressure on the compensation of American employees or even worst when an American employee’s job moves offshore? Yes, it is very painful but it is a pain we have to endure for the sake of the long term survival. The government intervention would be like delaying an urgent and absolutely necessary surgery for a patient and giving him painkillers instead. At some point the painkillers loose their power and the patient is in great pain but unfortunately at that point it is too late for surgery…

It must be understood that this phase we are going through is not a common, normal phase – the World has moved somewhat abruptly from a World of multiple closed National Economies with some level of strictly controlled exchange between each other into an open market / global economy that is currently undergoing the greatest transition it has ever seen. It is like having some 200 separate bodies of water all at different levels and each of them connected to each of the other ones through a highly complex system of locks – if all of the sudden all the lock gates were open one can only imagine the kind of havoc that event would wreak, but eventually a new equilibrium state will be reached and things will be peaceful and normal once again although completely different. Until the water settles all we citizens of the World (not just we Americans) will have to learn to swim on those water currents.

Feel free to leave your comments here whether you agree or not and if you are a programmer or a database administrator and work with SQL Server please don’t forget to check out our great SQL Server tools here: http://www.xsql.com/ and read about our “pay if you can” licensing here: http://xsqlsoftware.blogspot.com/2008/04/unique-hassle-free-software-licensing.html.

Tuesday, April 22, 2008

Unique, hassle free software licensing - pay if you can

When we decided to implement this unique licensing model last year we were worried that we were giving the store away – after all we had spent tremendous amount of time and energy developing those tools and now we were considering giving them away!

Almost every software company out there gives away some version of their software but usually the give away version is either a watered down version with severely limited functionality or a version loaded with annoying messages trying to get the user to pay for the full version.

Our approach however was fundamentally different. First, we “discovered” that not everyone gains the same amount of benefit from our software – while for some it pays off with a single use for some others it may take multiple times to get a return. Second, while for some a couple of hundred dollars for a useful piece of software is nothing, for some others it is indeed a big deal and it so happens that, most likely, the ones who would really think twice before spending any money on software are the ones who whose benefit would be relatively smaller. So, we decided that anyone, individual or company, for whom a couple of hundred dollars are indeed a big deal should not have to pay at all – only if and when they would reach a certain threshold then they would have to pay.

The challenge then became how to determine who should and should not pay for our software. Well, while that may not generally be a trivial task in our case it wasn’t very hard since our products are tightly related to SQL Server and we know that:
  1. if you are using the free SQL Server Express then there is a high likelihood that you have not yet made it in the big league and you are counting every penny;
  2. if the databases you work with, regardless of what edition of SQL Server you may be using, have a small number of objects in them (tables, views, stored procedures etc) then not only is that generally an indication of a small business but the benefit you gain from utilizing our tools is directly correlated with the size and complexity of the databases you work with.
So then the model became clear and here is what we did and continue to do:
  1. everyone downloads a fully functional version of our software from our website – no hassle, no registration, no reminders, no limitations.
  2. after 2 weeks have passed the software checks the edition of the SQL Server and if it is SQL Server Express then it simply continues to work without hassling the user in any way shape of form; If it finds that you are trying to compare and synchronize a database that is on another edition of SQL Server then it performs another simple check – it looks at the number of objects you have on the database and if those are below a certain limits then again it does not bother the user at all - in fact the user does not notice anything the product simply continues to work.
  3. Only if the 2 weeks have passed AND it is a SQL Server edition other than SQL Server Express AND the number of objects in the database exceeds certain limits THEN we kindly remind the user that this edition of our software does not support comparing those databases. At this point we have established two things – first that in this user’s case our software will pay off for itself right away (in fact it has likely paid off already during the first two weeks) and second that this user can certainly afford it:)
So how has this model worked for us? We can only say that we are very glad we did it this way – the “A friend told me” is the second most frequent answer (google being first) to our “Where did you learn about us” question – now that is telling!

A few words about the tools discussed above: xSQL Object allows programmers and database administrators that work with SQL Server to compare the structures (schemas) of two databases, see where the differences are, generate the change script that synchronizes the structures and execute the script. It supports SQL Server 2005, SQL Server 2000 and will soon support SQL Server 2008. All objects are supported – tables, views, stored procedures, user defined functions, users, permissions, roles, assemblies, service brokers, synonyms, assemblies etc. xSQL Data Compare provides for comparing and synchronizing the data in two SQL Server databases.

Saturday, April 19, 2008

Extending the trial period of a software

I ran across this page where someone had explained different ways of extending the trial period of a software and also listed a bunch of software (likely malware) that presumably help you extend the trial period.

Extending the trial period of a product without permission is an immoral shameless act of stealing that does not merit any discussion but what caught my attention was one of this idiot’s assumed reasons as to why one would want to go through the trouble of engaging in such activity. Says he: “Or you may be decided that the shareware is not worth to pay…”! Truly astounding! In today’s World we are constantly trading – trading our time and energy for money, our money for goods and services we need etc., and we make hundreds of “is it worth decisions” but most of us understand that worthiness is relative and the decision we make in that regard simply determines whether we choose to engage in the trade or not but it does not, it can not, entitle us to anything.

Monday, April 14, 2008

xSQL Software to give $100K in software to non-profit organizations

We are giving away $100K in software to non-profit organizations around the World whose primary objective is to support or engage in activities of public interest. You can read the complete press release here: http://www.xsql.com/News/press18.aspx

If you work for such organization and would like to obtain a license please contact us.

Wednesday, April 9, 2008

xSQL Profiler released - enhanced SQL Server profiling

We are very excited to announce the beta release of xSQL Profiler, a significantly enhanced SQL Server profiling tool for monitoring multiple SQL Servers from a central location. You can use xSQL Profiler for performance, auditing and compliance related tasks. You can read more about xSQL Profiler on our website at: http://www.xsql.com/products/sql_server_profiler/ but here is a quick list of what this new tool brings:
  • Trace multiple SQL Servers - no agents to install
  • Use predefined events or define custom events
  • Powerful filtering capability, precise tracing
  • Schedule traces to run when and where you want
  • Flexible reporting interface
  • Support for SQL Server 2008/2005/2000

Download a copy of the xSQL Profiler from: http://www.xsql.com/download/sql_server_profiler/ and help us make this a great tool by telling us of any issues you may discover as well as any suggestions you may have - post your suggestions/issues at: http://www.xsql.com/suggestfeature.aspx

Tuesday, April 8, 2008

College degree better than experience...

Short of finding someone who has both the degree and the experience would you hire someone with a degree and no experience or someone with experience but no degree?

Is there a rational behind the equivalency of a degree with certain number of years of experience?

To make those questions more specific and relevant for this audience: would you rather hire someone with 5 years of programming experience but no degree or someone with a Computer Science degree but no programming experience? How many years of programming experience does it take to make up for a computer science degree?

Before attempting to answer such questions it is critical to identify and analyze the differences between a degree (the work to obtain one) and the real life experience.

The most fundamental difference between the two is the focus that each has. The real life experience focuses on HOW things work – years of experience will help one become a master of a given trade and remain a master for as long as that trade does not experience any radical changes. A college degree on the other hand focuses on WHY things work the way they work. The HOW part of a degree is generalized – how things should work but not necessarily how they work in a given implementation.

An analogy that makes the difference clearer would be that of the experienced mechanic versus the mechanical engineer. A mechanic that has spent 5 years working on fixing and maintaining BMWs is likely a master of the trade – he can diagnose and fix BMW problems very quickly and efficiently. A mechanical engineer on the other side may have no clue of the particular BMW implementation – he knows how cars in general are put together and why they are put together that way but not how to fix a BMW.

Now we can begin to answer the questions we posed at the beginning.

Which one would you hire? Clearly the answer is: it depends! If you need someone to handle a well defined task that does not require creativity but simply diligence and efficiency then an experienced person is clearly better. But, if you need someone that can easily adapt to different scenarios, if you need someone who can learn new technologies faster and consequently have lower probability of becoming obsolete despite the evolution of the trade in question, if creativity is important to the job then the degree has a clear edge over the experience.

Can one make up for a degree with number of years of experience? No, it is not possible! Please do not confuse this with the case when an individual dedicates an equivalent amount of time to studying the trade in question, in essence doing the work that is required to obtain a degree – I consider such person a degreed person regardless of whether a formal degree was obtained or not. When I say ‘No’ I am speaking strictly in terms of work experience. A mason can spend a lifetime laying bricks and never learn how to calculate the load on a load bearing wall or beam. Experience provides one with what I call “superficial knowledge” that lacks the foundation and can not be used to derive new knowledge – for example: you know that if you touch an electrical wire (household voltage) with a dry wooden pole you will not be electrocuted but you can not extrapolate from that the new knowledge that if you get on top of an wooden chair you can safely touch a single wire with your bare hands (remember, a single wire only – if you grab two you will be the light bulb!). A degree provides solid knowledge that can be used for generating new knowledge – experience teaches you that touching the wire with a dry wooden pole is safe whereas school teaches you what the electricity is and how it works. An electrical engineer does not need to be told about the dry wooden pole he can deduct that knowledge and a lot more from the foundational knowledge that he has obtained in school.

There, I have made my point.

Before you react to this please keep in mind that:

  • I am comparing degree versus experience on a specific trade;
  • A degree does not necessarily mean a formal degree – but rather that one has paid his dues in time and energy spent studying the trade;
  • I am comparing two individuals with similar levels of intelligence/aptitude.

Feel free to leave your comments here.